Files
gutscheintracker/.gitea/workflows/docker.yml
T

54 lines
1.4 KiB
YAML

name: Docker Image
on:
push:
branches: [main]
tags: ["v*"]
workflow_dispatch:
# Nur der jeweils neueste Push läuft; ältere werdende Läufe werden verworfen.
concurrency:
group: docker-${{ github.ref }}
cancel-in-progress: true
env:
REGISTRY: gitea.lokcal.de
IMAGE: gitea.lokcal.de/loki/gutscheintracker
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: npm ci --no-audit --no-fund
- run: npm test -- --run
- run: npx tsc --noEmit
- run: npm run build
image:
runs-on: ubuntu-latest
timeout-minutes: 30
needs: test
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- name: Registry-Login
env:
REGISTRY_USER: ${{ secrets.REGISTRY_USER || github.actor }}
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN || secrets.ACTION_BOT }}
run: |
if [ -z "$REGISTRY_TOKEN" ]; then
echo "Registry login fehlgeschlagen: Secret REGISTRY_TOKEN oder ACTION_BOT fehlt." >&2
exit 1
fi
echo "$REGISTRY_TOKEN" | docker login "$REGISTRY" -u "$REGISTRY_USER" --password-stdin
- run: docker build -t "$IMAGE:latest" -t "$IMAGE:${{ github.sha }}" .
- run: docker push "$IMAGE:latest"
- run: docker push "$IMAGE:${{ github.sha }}"