Skip to content

ci: pin cosign to v2.4.3 so release signing works - #70

Closed
MPV wants to merge 1 commit into
masterfrom
claude/versioning-distribution-patterns-rwembk
Closed

ci: pin cosign to v2.4.3 so release signing works#70
MPV wants to merge 1 commit into
masterfrom
claude/versioning-distribution-patterns-rwembk

Conversation

@MPV

@MPV MPV commented Aug 8, 2026

Copy link
Copy Markdown
Owner

What

Fixes the failure on the first real release run (v0.3.0). GoReleaser built binaries, SBOMs, and checksums successfully, then aborted at signing:

signing dist/checksums.txt: create bundle file: open : no such file or directory
release failed ... could not sign artifact  cmd=cosign  artifact=checksums.txt

with the tell:

Flag --output-signature has been deprecated ... will be ignored (using --new-bundle-format)

Why

cosign-installer pulled a cosign ≥ 2.5.0, and 2.5.0 changed sign-blob to default to the new Sigstore bundle format — which ignores the --output-signature/--output-certificate flags in .goreleaser.yaml and then fails because no --bundle path is set.

Fix

Pin cosign to the last 2.4.x (v2.4.3) via cosign-installer's cosign-release input, so the existing, proven signing config produces the .sig/.pem detached artifacts again. Renovate's github-actions manager tracks the action digest, not this input, so it won't silently bump it back.

Typed ci: — release tooling, non-releasing.

Getting binaries onto a release

Follow-up (separate, testable)

Migrate the .goreleaser.yaml signs block to the modern --bundle format so we can un-pin cosign and stay current — validated with goreleaser release --skip=publish --clean before relying on it.

🤖 Generated with Claude Code

https://claude.ai/code/session_016RJcNXwJdwhtEgsfLfYKtv


Generated by Claude Code

The first real release (v0.3.0) built binaries, SBOMs, and checksums fine but
GoReleaser failed at the signing step:

    signing dist/checksums.txt: create bundle file: open : no such file or directory
    error=could not sign artifact cmd=cosign artifact=checksums.txt

cosign 2.5.0 changed `sign-blob` to default to the new Sigstore bundle format,
which ignores the --output-signature/--output-certificate flags the
.goreleaser.yaml passes and then aborts because no --bundle path is set.
cosign-installer had installed a >=2.5 cosign.

Pin cosign to the last 2.4.x (v2.4.3) so the existing, proven signing config
produces the .sig/.pem detached artifacts again. Migrating the config to the
new --bundle format is a separate, testable follow-up.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016RJcNXwJdwhtEgsfLfYKtv
MPV pushed a commit that referenced this pull request Aug 8, 2026
The first release run (v0.3.0) built binaries, SBOMs, checksums, and the image
fine but failed at cosign signing: cosign >= 2.5.0 changed sign-blob to the new
bundle format, which ignores the --output-signature/--output-certificate flags
and aborts. So v0.3.0 published a tag/release but no assets.

Comment out the `signs` and `docker_signs` blocks so the release job goes green
and starts publishing binaries + image + SBOMs + checksums (unsigned). Signing
is additive hardening and shouldn't block getting downloadable artifacts out.

Signing will be restored as a follow-up via one of:
  - pin cosign to 2.4.x with the existing config (PR #70), or
  - roll forward to the `--bundle` format and keep cosign current,
validated with a CI dry-run before it gates a real release.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016RJcNXwJdwhtEgsfLfYKtv
@MPV MPV closed this Aug 8, 2026
@MPV
MPV deleted the claude/versioning-distribution-patterns-rwembk branch August 8, 2026 21:44
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.

2 participants