ci(github-actions): rename workflow #11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | ||
| name: Docker Release | ||
| on: | ||
| docker-release: | ||
| types: [published] | ||
| permissions: | ||
| # Required by sigstore | ||
| id-token: write | ||
| jobs: | ||
| docker-release: | ||
| if: startsWith(github.ref, 'refs/tags/') | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Set IMAGE | ||
| shell: bash | ||
| run: | | ||
| set -euo pipefail | ||
| IFS=$'\n\t' | ||
| echo "IMAGE=${GITHUB_REPOSITORY#*/docker-}" >> "${GITHUB_ENV}" | ||
| - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | ||
| with: | ||
| persist-credentials: false | ||
| - name: Set SOURCE_DATE_EPOCH | ||
| run: | | ||
| set -euo pipefail | ||
| IFS=$'\n\t' | ||
| echo "SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)" >> "${GITHUB_ENV}" | ||
| - uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0 | ||
| - uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 | ||
| - uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0 | ||
| id: meta | ||
| with: | ||
| images: ${{ github.repository_owner }}/${{ env.IMAGE }} | ||
| tags: | | ||
| type=schedule | ||
| type=ref,event=branch | ||
| type=ref,event=pr | ||
| type=semver,pattern={{version}} | ||
| type=semver,pattern={{major}}.{{minor}} | ||
| type=semver,pattern={{major}} | ||
| type=sha | ||
| - uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0 | ||
| with: | ||
| username: ${{ secrets.DOCKERHUB_USERNAME }} | ||
| password: ${{ secrets.DOCKERHUB_TOKEN }} | ||
| - uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 | ||
| id: build | ||
| with: | ||
| # zizmor: ignore[template-injection] no user input | ||
| context: ${{ env.IMAGE }} | ||
| platforms: linux/amd64,linux/arm64 | ||
| pull: true | ||
| push: true | ||
| sbom: true | ||
| tags: ${{ steps.meta.outputs.tags }} | ||
| labels: ${{ steps.meta.outputs.labels }} | ||
| - name: Install cosign | ||
| uses: sigstore/cosign-installer@d58896d6a1865668819e1d91763c7751a165e159 # v3.9.2 | ||
| - name: Sign the Docker image | ||
| working-directory: ${{ env.IMAGE }} | ||
| env: | ||
| DIGEST: ${{ steps.build.outputs.digest }} | ||
| TAGS: ${{ steps.meta.outputs.tags }} | ||
| shell: bash | ||
| run: | | ||
| set -euo pipefail | ||
| IFS=$'\n\t' | ||
| images=() | ||
| for tag in ${TAGS}; do | ||
| images+=("${tag}@${DIGEST}") | ||
| done | ||
| cosign sign --recursive --yes "${images[@]}" | ||