ci: de-conflict release.yml from RC tags + document RC pre-release channel (MCP-1012)#582
Open
Dumbris wants to merge 1 commit into
Open
ci: de-conflict release.yml from RC tags + document RC pre-release channel (MCP-1012)#582Dumbris wants to merge 1 commit into
Dumbris wants to merge 1 commit into
Conversation
…nnel An RC tag like `v0.37.0-rc.1` matches release.yml's `tags: ["v*"]` trigger, so it currently fires BOTH release.yml and prerelease.yml. Gate every release.yml job that builds or publishes a stable artifact on `!contains(github.ref_name, '-')` so RC/prerelease tags run prerelease.yml exclusively: - generate-notes, build, sign-windows: add the guard - release: add an explicit `if:` (previously relied only on `needs:`) - deploy-docs, trigger-marketing-update: add the guard - mcp-registry: add the guard (never publish an RC to the official registry) update-homebrew and publish-linux-repos already carry the guard. build-docker is disabled (`false &&`); provenance cascade-skips via `needs: [release]`. Docs: add a Release Candidate (RC) section to docs/prerelease-builds.md (semver `-rc.N` scheme, GH pre-release channel, full build matrix with the Windows-SignPath gap called out, stable-channel opt-in via MCPPROXY_ALLOW_PRERELEASE_UPDATES), correct the GitHub Workflows section, and refresh the CLAUDE.md prerelease note (under the 40k gate). Related MCP-1012
Deploying mcpproxy-docs with
|
| Latest commit: |
dfe0eaa
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://8c804804.mcpproxy-docs.pages.dev |
| Branch Preview URL: | https://ci-rc-deconflict-mcp-1012.mcpproxy-docs.pages.dev |
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
📦 Build ArtifactsWorkflow Run: View Run Available Artifacts
How to DownloadOption 1: GitHub Web UI (easiest)
Option 2: GitHub CLI gh run download 26907156570 --repo smart-mcp-proxy/mcpproxy-go
|
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.
Summary
RC (release-candidate) builds: an RC tag like
v0.37.0-rc.1matchesrelease.yml'son: push: tags: ["v*"]trigger, so today it fires bothrelease.ymlandprerelease.yml. This PR de-conflicts the two workflows so av*-rc.*tag runs onlyprerelease.ymland is published as a GitHub pre-release — never to Homebrew, the Linux repos, the MCP registry, docs, or marketing, and never offered on stable update channels.Implements MCP-1012 (steps 1, 2, 5). Step 4 (throwaway tag-push verification) is deferred to a post-merge step — see below.
Changes
release.yml— gate stable-only jobs on!contains(github.ref_name, '-')generate-notesstartsWith(...,'v')+ && !contains(github.ref_name, '-')buildstartsWith(...,'v')+ && !contains(...)sign-windowsstartsWith(...,'v')+ && !contains(...)releaseif:— relied onneeds:)startsWith(...) && !contains(...)deploy-docs... && github.repository == ...+ && !contains(...)trigger-marketing-update... && github.repository == ...+ && !contains(...)mcp-registrystartsWith(...,'v')+ && !contains(...)(beyond the issue's list — must not publish an RC to the official registry)Already guarded (unchanged):
update-homebrew,publish-linux-repos.build-dockeris disabled (false &&).provenancecascade-skips vianeeds: [release].prerelease.yml— confirmed full parity (step 2)Build matrix is identical (linux/windows/darwin × amd64/arm64). macOS is signed and notarized; DMG + PKG + tar.gz; Linux
.deb/.rpm; Windows.zip+ installer.exe; GitHub release created withprerelease: true. Trigger istags: ["v*-rc.*", "v*-next.*"](+nextbranch), so stablev*tags don't match it — clean two-way separation.One deliberate difference (documented, not silently changed):
release.ymlAuthenticode-signs Windows via a dedicated SignPathsign-windowsjob;prerelease.ymlomits it (SignPath adds ~1h/arch), so RC Windows installers are unsigned (SmartScreen prompt). Flagged in docs for the Release owner if signed Windows RCs are later required.Docs (ENG-9)
docs/prerelease-builds.md: new Release Candidate (RC) Builds section (semver-rc.Nscheme, GH pre-release channel, full matrix + Windows-signing note, stable-channel opt-in), corrected GitHub Workflows section.CLAUDE.md: refreshed prerelease note (kept under the 40,000-char CI gate — now 39,960).Provenance
internal/tray/tray.go:1084(MCPPROXY_ALLOW_PRERELEASE_UPDATES, usesreleases/latest) andnative/macos/MCPProxy/MCPProxy/Services/UpdateService.swift:41(releases/latest+ semver downgrade guard).Verification
release.yml+prerelease.ymlparse as valid YAML;actionlintreports zero new findings on the changed lines (only pre-existing shellcheck/edition-property notices in untouchedrun:blocks).v0.0.0-rc.1to confirm onlyprerelease.ymlruns, the release is marked pre-release,releases/latestis unchanged, and no brew/linux/docs/registry jobs ran — then delete the test tag/release. This is most meaningful after this PR lands (a tag against currentmainwould still show the bug). Recommend the Release owner / human run it post-merge, or I can execute it in a follow-up once merged.Not for merge by an agent
Opening only — the human merges at the pre-merge gate after CI is green and reviewers accept.
Related MCP-1012