a11oy / .github /workflows /cosign.yml
betterwithage's picture
sync(space): full source mirror — resolve all GitHub<->Space drift (CTO)
a6a5d8e verified
Raw
History Blame
1.44 kB
name: Cosign keyless OIDC release signing
on:
release:
types: [published]
push:
tags:
- 'v*'
permissions:
contents: read
packages: write
id-token: write # Required for OIDC keyless signing
jobs:
sign:
name: Sign container image (keyless OIDC)
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Install cosign
uses: sigstore/cosign-installer@6f9f17788090df1f26f669e9d70d6ae9567deba6 # v4.1.2
- name: Log in to GHCR
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Sign container image (keyless)
env:
COSIGN_EXPERIMENTAL: "1"
run: |
IMAGE="ghcr.io/${{ github.repository }}:${{ github.ref_name }}"
echo "Signing ${IMAGE}"
cosign sign --yes "${IMAGE}"
- name: Verify signature
env:
COSIGN_EXPERIMENTAL: "1"
run: |
IMAGE="ghcr.io/${{ github.repository }}:${{ github.ref_name }}"
cosign verify \
--certificate-identity-regexp="https://github.com/${{ github.repository }}" \
--certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
"${IMAGE}"