Skip to content

ci: de-conflict stable/prerelease workflows for RC builds (MCP-1012)#581

Closed
Dumbris wants to merge 1 commit into
mainfrom
worktree-agent-a016df7dc19189c59
Closed

ci: de-conflict stable/prerelease workflows for RC builds (MCP-1012)#581
Dumbris wants to merge 1 commit into
mainfrom
worktree-agent-a016df7dc19189c59

Conversation

@Dumbris
Copy link
Copy Markdown
Member

@Dumbris Dumbris commented Jun 3, 2026

Problem

release.yml triggers on tags v*, which also matches RC tags like v0.37.0-rc.1. So an RC tag currently fires BOTH the stable release.yml and prerelease.yml workflows. The stable workflow's update-homebrew and publish-linux-repos jobs already guarded with !contains(github.ref_name, '-'), but the rest did not — so a stable GitHub Release would be cut for an RC tag and releases/latest would point at the RC.

Fix: de-conflict (release.yml)

Added && !contains(github.ref_name, '-') to the if: of the stable-only jobs that lacked it, using the exact idiom already in update-homebrew/publish-linux-repos:

Job Change
generate-notes guard added
build guard added
sign-windows guard added
release had no if: — added if: startsWith(github.ref,'refs/tags/v') && !contains(github.ref_name,'-')
deploy-docs guard added (preserving the github.repository == ... condition)
trigger-marketing-update guard added (preserving the github.repository == ... condition)

provenance (needs: [release]) and mcp-registry (needs: release) cascade-skip when release skips. build-docker is if: false. Net effect: the stable workflow no-ops on any prerelease (-) tag; only prerelease.yml runs.

Prerelease completeness (prerelease.yml)

Brought the prerelease build matrix to parity with stable so an RC is a complete downloadable build:

  • Windows now builds natively on windows-latest with cgo: "1" (was cross-compiled on ubuntu-latest with cgo: "0", where the choco install innosetup / pwsh installer steps cannot run).
  • Builds the Windows tray binary (mcpproxy-tray.exe) and includes the tray binary in archives (matching stable).
  • Uses PowerShell Compress-Archive on Windows (the zip CLI isn't available on Windows runners).
  • Added shell: bash to the build + frontend-copy steps so they work on the native Windows runner; aligned the frontend embed-copy with stable (web/frontend/dist + .gitkeep).

Already at parity (unchanged): Linux .deb/.rpm, macOS DMG/PKG signing + notarization, all 6 platform archives, prerelease: true. SignPath Windows-installer signing remains stable-only by design — RCs ship an unsigned installer (the release body already states "use at your own risk").

Validation

  • actionlint + python yaml.safe_load on both files: no syntax/expression errors introduced (remaining reports are pre-existing shellcheck info/style + the matrix.edition fallback warnings).
  • Tag-push smoke test with v0.0.0-rc.1 (see PR checks): only prerelease.yml should run; release.yml jobs skip; releases/latest stays on the prior stable; no Homebrew/Linux-repo publish.

release.yml triggers on tags v* which also matches RC tags (v*-rc.*),
firing BOTH the stable and prerelease workflows for one RC tag. Guard
the stable jobs that lacked the prerelease filter so release.yml no-ops
on any tag containing a '-' (prerelease) component, matching the idiom
already used by update-homebrew/publish-linux-repos:

  - generate-notes
  - build
  - sign-windows
  - release (had no if: at all — added one)
  - deploy-docs
  - trigger-marketing-update

provenance/mcp-registry cascade-skip via needs: release; build-docker
is if: false. Stable github.repository guards preserved.

Also bring prerelease.yml to platform parity so an RC is a complete
downloadable build: Windows now builds natively on windows-latest with
cgo=1 (was cross-compiled on ubuntu, where choco/Inno Setup can't run),
builds the Windows tray binary, includes the tray in archives, and uses
PowerShell Compress-Archive on Windows. SignPath signing of Windows
installers remains stable-only (RCs ship unsigned, as documented).
@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying mcpproxy-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 64386f2
Status: ✅  Deploy successful!
Preview URL: https://5be587fa.mcpproxy-docs.pages.dev
Branch Preview URL: https://worktree-agent-a016df7dc1918.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!

@Dumbris Dumbris deployed to staging June 3, 2026 19:13 — with GitHub Actions Active
@Dumbris
Copy link
Copy Markdown
Member Author

Dumbris commented Jun 3, 2026

Duplicate of #582 (which is the complete change incl. docs). Closing in favor of #582.

@Dumbris Dumbris closed this Jun 3, 2026
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