name: Release on: push: tags: - 'v*' permissions: contents: write packages: write jobs: ci: uses: ./.github/workflows/ci.yml release: name: Build & Push Docker Image runs-on: ubuntu-latest needs: ci steps: - uses: actions/checkout@v4 - name: Extract version from tag id: version run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Container Registry if: env.REGISTRY_URL != '' uses: docker/login-action@v3 with: registry: ${{ secrets.REGISTRY_URL }} username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_TOKEN }} env: REGISTRY_URL: ${{ secrets.REGISTRY_URL }} - name: Build and push Docker image uses: docker/build-push-action@v6 with: context: . push: ${{ secrets.REGISTRY_URL != '' }} tags: | ${{ secrets.REGISTRY_URL && format('{0}/crumbs:{1}', secrets.REGISTRY_URL, steps.version.outputs.VERSION) || '' }} ${{ secrets.REGISTRY_URL && format('{0}/crumbs:latest', secrets.REGISTRY_URL) || '' }} cache-from: type=gha cache-to: type=gha,mode=max - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: generate_release_notes: true