name: Build & Push Docker Image on: push: branches: [master] env: REGISTRY: git.mischlabs.de jobs: build-and-push: 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 uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Lowercase image name run: echo "IMAGE_NAME=$(echo '${{ github.repository }}' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV - name: Build and push Docker image uses: docker/build-push-action@v5 with: context: . push: true tags: | ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}