Skip to content

fix(release): fix retry-sign-release artifact patterns + add missing jobs (MCP-2905)#718

Merged
Dumbris merged 2 commits into
mainfrom
fix/mcp-2905-retry-sign-release-artifact-patterns
Jun 20, 2026
Merged

fix(release): fix retry-sign-release artifact patterns + add missing jobs (MCP-2905)#718
Dumbris merged 2 commits into
mainfrom
fix/mcp-2905-retry-sign-release-artifact-patterns

Conversation

@Dumbris

@Dumbris Dumbris commented Jun 19, 2026

Copy link
Copy Markdown
Member

Problem

.github/workflows/retry-sign-release.yml silently produced an incomplete GitHub Release (6 assets instead of 27). Hit live during v0.41.2.

Root causes:

  1. --pattern 'archive-*' matched nothing — real artifact names are versioned-personal-* and latest-personal-*
  2. linux-packages-* never downloaded → no .deb/.rpm in release
  3. No update-homebrew or publish-linux-repos jobs → Homebrew/apt/rpm stayed on old version
  4. No SBOM, CHANGELOG, checksums, cosign bundle, or SLSA provenance
  5. No asset parity check → failure was silent (job green, release broken)

Changes

retry-sign-release.yml

  • Fix artifact patterns to match what release.yml's build job actually uploads:
    • archive-*versioned-personal-* and latest-personal-*
    • Added linux-packages-* download (was never included)
  • Add Linux packages to Reorganize step (copy .deb/.rpm to release-files/)
  • Add derived artifacts (mirrors release.yml exactly):
    • SBOM (anchore/sbom-action SPDX JSON)
    • CHANGELOG (orhun/git-cliff-action)
    • checksums.txt (sha256sum)
    • checksums.txt.cosign.bundle (cosign keyless, id-token: write added)
  • Asset parity assertion — fails loudly if release-files/ has <22 files before checksums step
  • Add update-homebrew job (copied from release.yml, uses inputs.tag instead of github.ref_name)
  • Add publish-linux-repos job (uses gh run download --pattern linux-packages-* from original run_id, then flattens into release-artifacts/ for publish.sh)
  • Add provenance job (SLSA generator_generic_slsa3 with upload-tag-name: ${{ inputs.tag }})
  • Full Linux download table in release body (was missing from old retry path)

docs/release-runbook.md

  • SPOF 2 recovery: adds Option A (prefer gh run rerun --failed on original run) vs Option B (retry workflow, now documented as complete)
  • Notes asset-count assertion and SLSA caveat

Testing

This is a CI workflow fix — direct execution testing requires a real SignPath timeout scenario. The artifact pattern change is verified by reading the names from release.yml's Upload versioned archive artifact / Upload latest archive artifact / Upload macOS installers artifact / Build Linux .deb and .rpm packages steps.

The update-homebrew and publish-linux-repos jobs are character-for-character copies of the primary workflow's jobs with ${{ github.ref_name }}${{ inputs.tag }} substitutions verified by grep.

Acceptance criteria (from MCP-2905)

  • Retry path downloads all artifact types (versioned + latest archives, linux-packages, installers)
  • Retry path assembles complete asset set (22+ files asserted before release creation)
  • Homebrew + apt/rpm bumped via update-homebrew and publish-linux-repos jobs
  • Incomplete assembly fails loudly (≥22 file assertion)
  • docs/release-runbook.md SPOF 2 recovery steps updated

Closes MCP-2905

…g jobs (MCP-2905)

- Fix stale artifact glob patterns that matched nothing:
    archive-*       → versioned-personal-* and latest-personal-*
    (missing)       → linux-packages-*  (was never downloaded → no .deb/.rpm)
  installers-*  OK but now also copies .deb/.rpm in Reorganize step
- Add missing jobs: update-homebrew, publish-linux-repos (with gh run download
  for linux-packages-* from original run_id)
- Add derived artifacts that primary release.yml produces:
    SBOM (SPDX JSON via anchore/sbom-action)
    CHANGELOG.md (git-cliff)
    checksums.txt (sha256sum)
    checksums.txt.cosign.bundle (cosign keyless)
- Add SLSA provenance job (generator_generic_slsa3 with upload-tag-name)
- Add asset parity assertion: fail loudly if release-files/ has <22 files
  before checksums/cosign steps run
- Add id-token: write permission for cosign + SLSA
- Update release body to include full Linux download table (matches release.yml)
- Update docs/release-runbook.md SPOF 2 recovery: prefer gh run rerun --failed
  (Option A) over the retry workflow; document Option B with corrected behavior

Fixes the v0.41.2 incident where the retry shipped only 6 assets (2 DMGs +
2 EXEs + 2 .pending markers) vs the expected 27.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 19, 2026

Copy link
Copy Markdown

Deploying mcpproxy-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 463053f
Status: ✅  Deploy successful!
Preview URL: https://15f5354b.mcpproxy-docs.pages.dev
Branch Preview URL: https://fix-mcp-2905-retry-sign-rele.mcpproxy-docs.pages.dev

View logs

@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions

Copy link
Copy Markdown

📦 Build Artifacts

Workflow Run: View Run
Branch: fix/mcp-2905-retry-sign-release-artifact-patterns

Available Artifacts

  • archive-darwin-amd64 (28 MB)
  • archive-darwin-arm64 (25 MB)
  • archive-linux-amd64 (16 MB)
  • archive-linux-arm64 (14 MB)
  • archive-windows-amd64 (28 MB)
  • archive-windows-arm64 (25 MB)
  • frontend-dist-pr (0 MB)
  • installer-dmg-darwin-amd64 (21 MB)
  • installer-dmg-darwin-arm64 (19 MB)

How to Download

Option 1: GitHub Web UI (easiest)

  1. Go to the workflow run page linked above
  2. Scroll to the bottom "Artifacts" section
  3. Click on the artifact you want to download

Option 2: GitHub CLI

gh run download 27803374701 --repo smart-mcp-proxy/mcpproxy-go

Note: Artifacts expire in 14 days.

@mcpproxy-gatekeeper mcpproxy-gatekeeper Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APPROVE — Claude Code review: retry-sign artifact patterns now match release.yml uploads; SignPath config identical; asset-count assertion >=22 catches the v0.41.2 6-asset failure; actionlint clean. Non-blocking: prerelease guard dropped (fast-follow filed). MCP-2905.

@Dumbris Dumbris merged commit d578440 into main Jun 20, 2026
35 checks passed
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