name: Build & Push Docker Image on: push: branches: [master] env: REGISTRY: git.mischlabs.de REGISTRY_IMAGE: git.mischlabs.de/mrdiderot/photography jobs: build-and-push: if: ${{ github.server_url == 'https://git.mischlabs.de' }} runs-on: ubuntu-latest defaults: run: shell: sh permissions: contents: read packages: write steps: - name: Checkout uses: actions/checkout@v4 - name: Install Docker CLI run: | if command -v docker >/dev/null 2>&1; then docker --version exit 0 fi if command -v apt-get >/dev/null 2>&1; then apt-get update apt-get install -y docker.io elif command -v apk >/dev/null 2>&1; then apk add --no-cache docker-cli else echo "No supported package manager found to install Docker CLI" exit 1 fi docker --version - name: Check Docker daemon run: docker version - name: Log in to package registry env: REGISTRY_USER: ${{ secrets.REGISTRY_USER }} REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }} run: | if [ -z "$REGISTRY_USER" ] || [ -z "$REGISTRY_TOKEN" ]; then echo "Missing registry credentials." echo "Create repository secrets REGISTRY_USER and REGISTRY_TOKEN." echo "REGISTRY_TOKEN must be a Gitea access token with package write permission." exit 1 fi echo "$REGISTRY_TOKEN" | docker login "$REGISTRY" -u "$REGISTRY_USER" --password-stdin - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push Docker image uses: docker/build-push-action@v5 with: context: . push: true tags: | ${{ env.REGISTRY_IMAGE }}:latest ${{ env.REGISTRY_IMAGE }}:${{ github.sha }}