ci: add multi-platform release workflow for ruvector-mcp#408
Open
namesreallyblank wants to merge 1 commit intoruvnet:mainfrom
Open
ci: add multi-platform release workflow for ruvector-mcp#408namesreallyblank wants to merge 1 commit intoruvnet:mainfrom
namesreallyblank wants to merge 1 commit intoruvnet:mainfrom
Conversation
Mirrors release-rvf-cli.yml's 5-target build matrix (Linux x64/arm64, macOS x64/arm64, Windows MSVC). Triggered by ruvector-mcp-v* tags or manual workflow_dispatch. Each target uploads the binary plus a SHA256 sidecar to the GitHub Release; an aggregated checksums-sha256.txt manifest is also published. Addresses PR ruvnet#406 review feedback from @ruvnet: - One-line header (no stale "template for contributors" preamble) - Scoped tag pattern (ruvector-mcp-v*, not bare v*) so tags do not collide with rvf-v* or hypothetical future component tags - 5-target platform matrix (no longer Windows-only); structure and action versions match release-rvf-cli.yml for consistency - Per-binary SHA256 sidecar attached for verification (rvf-cli ships only an aggregated checksums-sha256.txt; ruvector-mcp publishes both) - File renamed to release-ruvector-mcp.yml to match neighbor naming Note on dtolnay/rust-toolchain@stable: kept unpinned to match the existing release-rvf-cli.yml convention. Pinning to a specific SHA can be done across both workflows in a separate hardening pass. This workflow will only produce working binaries once the workspace tokio io-std fix from a companion PR lands (the ruvector-mcp binary otherwise fails to build).
4 tasks
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
Adds
.github/workflows/release-ruvector-mcp.yml, a release workflow for theruvector-mcpbinary modeled directly on the existingrelease-rvf-cli.yml. Triggered byruvector-mcp-v*tags (or manualworkflow_dispatch); builds five targets in parallel and uploads the binaries plus SHA256 sidecars to a GitHub Release.This is the second half of the PR #406 split per @ruvnet's review. The companion PR is #407 (workspace tokio
io-stdfix) — that fix needs to land before anyruvector-mcp-v*tag will actually build green, since the binary currently fails to compile on a clean workspace.Addresses PR #406 review feedback
v*)ruvector-mcp-v*, mirroring thervf-v*convention used byrelease-rvf-cli.ymlrelease-rvf-cli.ymlexactly*.sha256sidecar uploaded with each artifact; aggregatedchecksums-sha256.txtalso attached to the Releasedtolnay/rust-toolchain@stableis a moving tagrelease-rvf-cli.yml(informational item per review — not a regression)The file is also renamed from
release-windows.ymltorelease-ruvector-mcp.ymlto match the neighbor naming pattern.Structure
The workflow follows
release-rvf-cli.ymlstep-for-step (sameactions/checkout@v4,dtolnay/rust-toolchain@stable,Swatinem/rust-cache@v2,actions/upload-artifact@v4,actions/download-artifact@v4,softprops/action-gh-release@v2). The build job specifiescargo build -p ruvector-cli --bin ruvector-mcp --release --target …sinceruvector-mcpis a binary inside theruvector-clicrate.One intentional deviation from rvf-cli's pattern
release-rvf-cli.ymlships only an aggregatedchecksums-sha256.txtfor the whole release. Per @ruvnet's review point #4, this workflow additionally attaches a per-binary<name>.sha256sidecar with each platform asset (so a user grabbing one binary doesn't need to download the manifest separately). The aggregated manifest is also published, so consumers can use either flow.Test plan
io-std) firstruvector-mcp-v*tag and verify the workflow produces five binaries plus sidecars on the Releaseshasum -a 256 -c <name>.sha256against a downloaded binaryOut of scope
dtolnay/rust-toolchain@stableto a specific SHA — would prefer to do this across bothrelease-rvf-cli.ymlandrelease-ruvector-mcp.ymlin a single hardening pass rather than one-sided here