ci: de-conflict stable/prerelease workflows for RC builds (MCP-1012)#581
Closed
Dumbris wants to merge 1 commit into
Closed
ci: de-conflict stable/prerelease workflows for RC builds (MCP-1012)#581Dumbris wants to merge 1 commit into
Dumbris wants to merge 1 commit into
Conversation
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).
Deploying mcpproxy-docs with
|
| 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 |
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Member
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
release.ymltriggers on tagsv*, which also matches RC tags likev0.37.0-rc.1. So an RC tag currently fires BOTH the stablerelease.ymlandprerelease.ymlworkflows. The stable workflow'supdate-homebrewandpublish-linux-reposjobs already guarded with!contains(github.ref_name, '-'), but the rest did not — so a stable GitHub Release would be cut for an RC tag andreleases/latestwould point at the RC.Fix: de-conflict (release.yml)
Added
&& !contains(github.ref_name, '-')to theif:of the stable-only jobs that lacked it, using the exact idiom already inupdate-homebrew/publish-linux-repos:generate-notesbuildsign-windowsreleaseif:— addedif: startsWith(github.ref,'refs/tags/v') && !contains(github.ref_name,'-')deploy-docsgithub.repository == ...condition)trigger-marketing-updategithub.repository == ...condition)provenance(needs: [release]) andmcp-registry(needs: release) cascade-skip whenreleaseskips.build-dockerisif: false. Net effect: the stable workflow no-ops on any prerelease (-) tag; onlyprerelease.ymlruns.Prerelease completeness (prerelease.yml)
Brought the prerelease build matrix to parity with stable so an RC is a complete downloadable build:
windows-latestwithcgo: "1"(was cross-compiled onubuntu-latestwithcgo: "0", where thechoco install innosetup/pwshinstaller steps cannot run).mcpproxy-tray.exe) and includes the tray binary in archives (matching stable).Compress-Archiveon Windows (thezipCLI isn't available on Windows runners).shell: bashto 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_loadon both files: no syntax/expression errors introduced (remaining reports are pre-existing shellcheck info/style + thematrix.editionfallback warnings).v0.0.0-rc.1(see PR checks): onlyprerelease.ymlshould run;release.ymljobs skip;releases/lateststays on the prior stable; no Homebrew/Linux-repo publish.