-
Couldn't load subscription status.
- Fork 13
Build server binaries as part of release automation #189
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. WalkthroughThe pull request extends release automation to build and package genmcp-server binaries alongside CLI binaries for all supported platforms. It introduces a new Makefile target for server builds, updates three release workflow files to execute parallel server builds, and expands configuration files to track server artifacts. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes The changes follow a consistent, repetitive pattern across workflow files (renaming existing step, adding analogous server build step). Logic is straightforward—building an additional binary and including it in release artifacts. No complex interdependencies or conditional logic; mostly additive changes with clear parallelism to existing CLI build patterns. Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Comment |
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
- Add build-server-platform make target for building server binaries per platform - Update create-release.yaml to build and upload server binaries - Update publish-release.yaml to build and upload server binaries - Update nightly-release.yaml to build and upload server binaries - Update .gitignore to ignore platform-specific binaries - Update CHANGELOG.md with release automation changes Co-authored-by: aliok <[email protected]>
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (6)
.github/workflows/create-release.yaml(2 hunks).github/workflows/nightly-release.yaml(2 hunks).github/workflows/publish-release.yaml(2 hunks).gitignore(1 hunks)CHANGELOG.md(1 hunks)Makefile(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/CHANGELOG.md
⚙️ CodeRabbit configuration file
**/CHANGELOG.md: Verify that changelog entries:
- Follow Keep a Changelog format (Added, Changed, Fixed, Removed, etc.)
- Are user-focused (describe impact, not implementation details)
- Include PR references (#XXX)
- Breaking changes are marked with BREAKING prefix
- Are in the correct section under the unreleased/current version
Files:
CHANGELOG.md
🧠 Learnings (1)
📚 Learning: 2025-10-07T17:29:19.445Z
Learnt from: Cali0707
PR: genmcp/gen-mcp#155
File: hack/jsonschemagen/go.mod:3-8
Timestamp: 2025-10-07T17:29:19.445Z
Learning: The gen-mcp project targets Go 1.24+ and does not require backward compatibility with Go 1.21.
Applied to files:
CHANGELOG.md
🔇 Additional comments (5)
.gitignore (1)
25-25: LGTM — Patterns properly cover platform-specific binaries.The wildcard patterns correctly ignore all platform-variant binaries generated by the release workflows without duplicating existing rules.
Also applies to: 29-29
Makefile (1)
63-77: Verify dependency pattern differs intentionally from build-cli-platform.The target mirrors
build-cli-platformwell, but lacks thebuild-server-binariesdependency thatbuild-cli-platformincludes. This appears intentional for platform-specific builds in release workflows, but please confirm this is not an oversight. The release workflows invokebuild-server-platformdirectly without relying onbuild-server-binaries..github/workflows/nightly-release.yaml (1)
155-182: LGTM — Server build step properly integrated.The new server build step follows the CLI build pattern consistently, correctly excludes VERSION_TAG from the server build, and the upload logic properly handles multiple zip artifacts. The Windows .exe handling is correct.
.github/workflows/publish-release.yaml (1)
157-184: LGTM — Consistent server build and upload pattern.The server build step mirrors the implementation in nightly-release.yaml. The upload logic correctly handles both CLI and server zips.
.github/workflows/create-release.yaml (1)
139-166: LGTM — Consistent implementation across all release workflows.The server build step and upload logic are properly integrated and mirror the implementations in nightly and publish workflows. The pattern is cohesive across all three release automation files.
Co-authored-by: aliok <[email protected]>
|
@Cali0707 wanna take a look? |
| build-server-binaries: clean $(BUILD_DIR) | ||
| @echo "Building genmcp-server binaries for all platforms..." | ||
| GOOS=linux GOARCH=amd64 go build -o $(BUILD_DIR)/genmcp-server-linux-amd64 $(SERVER_CMD) | ||
| GOOS=linux GOARCH=arm64 go build -o $(BUILD_DIR)/genmcp-server-linux-arm64 $(SERVER_CMD) | ||
| GOOS=windows GOARCH=amd64 go build -o $(BUILD_DIR)/genmcp-server-windows-amd64.exe $(SERVER_CMD) | ||
| @echo "Server binaries built successfully" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is mostly duplicated by the new make target. Let's aim to clean this up and remove it when we get rid of the embedded binaries as part of #174
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixes #176
Overview
This PR adds
genmcp-serverbinary builds to the release automation workflows. Previously, only the CLI binaries (genmcp) were built and uploaded to releases. Now both CLI and server binaries are built for all supported platforms.Changes
Makefile
build-server-platformtarget for buildinggenmcp-serverbinaries for specific platform combinations (GOOS/GOARCH)build-cli-platformtarget.exeextensionGitHub Workflows
Updated all three release workflows to build and upload server binaries:
Each workflow now builds both CLI and server binaries for all 6 platform combinations:
Other Changes
.gitignoreto ignore platform-specific binary artifactsRelease Artifacts
After this change, each release will include 12 zip files:
genmcp-{platform}-{arch}.zip- CLI binaries (6 total)genmcp-server-{platform}-{arch}.zip- Server binaries (6 total, NEW)This enables the CLI to download and use the appropriate server binary for any platform, supporting the requirements in #174.