Skip to content

fix(ci): authenticate cosign + lowercase image ref so v0.2.0 signs - #41

Merged
AYDEV-FR merged 1 commit into
mainfrom
fix/release-signing-auth
Jun 21, 2026
Merged

fix(ci): authenticate cosign + lowercase image ref so v0.2.0 signs#41
AYDEV-FR merged 1 commit into
mainfrom
fix/release-signing-auth

Conversation

@AYDEV-FR

Copy link
Copy Markdown
Owner

Context

The first v0.2.0 tag triggered the release pipeline. Every artifact published successfully (GitHub Release, binaries, api/operator images, and the OCI chart), but both cosign signing steps failed:

Workflow Failure
chart.yml UNAUTHORIZED when cosign pushed the chart signature
release.yml could not parse reference: ghcr.io/AYDEV-FR/dploy:0.2.0

Root causes & fixes

chart.yml — cosign had no credentials. cosign reads ~/.docker/config.json, but the job only ran helm registry login, which writes to Helm's own credential store. So helm push worked, but the signature push was unauthenticated. Fix: add docker/login-action alongside the Helm login so both stores are populated.

release.yml — uppercase OCI reference. The cosign step signed ghcr.io/${{ github.repository }} = ghcr.io/AYDEV-FR/dploy. OCI references must be lowercase, so cosign rejected it. Fix: lowercase the reference and sign the build's immutable @sha256:… digest instead of the mutable tag.

Both changes touch only the signing steps — the artifacts themselves were already published.

Not addressed here

release.yml's "Deploy to GitHub Pages" step also failed (ENOENT docs/build). That's a pre-existing, unrelated docs-deploy issue — left out of this PR to keep it scoped.

Re-running v0.2.0

Once merged, the v0.2.0 tag will be re-pointed at the new HEAD to re-run the pipeline; signing is idempotent against the already-pushed artifacts.

https://claude.ai/code/session_01M4Dd5oASBGHwr6ts6wTnYn

The first v0.2.0 release pushed every artifact but failed both cosign
signing steps:

- chart.yml: cosign reads ~/.docker/config.json, but the job only ran
  `helm registry login` (Helm's own credential store), so the signature
  push got UNAUTHORIZED. Add docker/login-action alongside the Helm login
  to populate both stores.
- release.yml: the cosign step signed `ghcr.io/${{ github.repository }}`,
  which is mixed-case (AYDEV-FR/dploy); OCI refs must be lowercase, so
  cosign failed with "could not parse reference". Lowercase the ref and
  sign the build's immutable digest instead of the mutable tag.

Both fixes only affect signing — the chart and images themselves were
already published successfully.

Claude-Session: https://claude.ai/code/session_01M4Dd5oASBGHwr6ts6wTnYn
@AYDEV-FR
AYDEV-FR merged commit 3e13150 into main Jun 21, 2026
11 checks passed
@AYDEV-FR
AYDEV-FR deleted the fix/release-signing-auth branch June 21, 2026 08:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant