Skip to content

Add GitHub Actions workflow for building Rust MCP server containers - #5

Merged
jonpspri merged 1 commit into
mainfrom
rust-test-servers
Jun 29, 2026
Merged

jonpspri merged 1 commit into
mainfrom
rust-test-servers

Conversation

@jonpspri

Copy link
Copy Markdown
Collaborator

Summary

This PR adds automated container builds for all Rust MCP servers using GitHub Actions.

Changes

  • Created .github/workflows/build-rust-mcp-servers.yml workflow
  • Added .gitignore file with common patterns for Rust, Python, IDEs, and OS files

Workflow Features

  • Parallel builds using matrix strategy for all 4 Rust MCP servers:
    • benchmark-server
    • fast-time-server
    • filesystem-server
    • slow-time-server
  • Container Registry: Pushes to GitHub Container Registry (ghcr.io)
  • Image naming: ghcr.io/IBM/contextforge-examples/mcp-<server-name>
  • Automatic tagging: branch name, PR number, SHA, semver, and latest for main branch
  • Docker layer caching for faster subsequent builds
  • Triggers:
    • Push to main branch (when rust server files change)
    • Pull requests to main
    • Manual workflow dispatch

Testing

Once merged, the workflow will automatically build and push container images on the next push to main.

@jonpspri
jonpspri force-pushed the rust-test-servers branch 7 times, most recently from 1d02584 to ea374f8 Compare June 29, 2026 13:40
- Created workflow to build and push container images for all Rust MCP servers
- Native builds on architecture-specific runners (no QEMU emulation):
  * linux/amd64 on ubuntu-24.04
  * linux/arm64 on ubuntu-24.04-arm
  * linux/s390x on ubuntu-24.04-s390x
  * linux/ppc64le on ubuntu-24.04-ppc64le
- Builds all 4 architectures on PRs (cache-only validation)
- Pushes to GitHub Container Registry on main branch
- Creates multi-arch manifests combining all platform images
- Conditional builds: only builds servers with detected changes
- Tags: SHA on all pushes, latest on main, version tags on git tags
- Committed Cargo.lock files for reproducible builds
- Added .gitignore with common patterns

Signed-off-by: Jonathan Springer <jps@s390x.com>
@jonpspri
jonpspri force-pushed the rust-test-servers branch from ea374f8 to 05d0b2c Compare June 29, 2026 13:42
@jonpspri
jonpspri merged commit f74bac3 into main Jun 29, 2026
16 checks passed
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.

1 participant