- Add workflow_dispatch to deploy.yml for manual deployment triggers - Document that releases don't auto-deploy to production - Add instructions for deploying releases to production - Add verification steps for deployment 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2.6 KiB
2.6 KiB
Release Guide
Creating a Release
- Go to GitHub: Navigate to https://github.com/modelcontextprotocol/registry/releases
- Click "Draft a new release"
- Choose a tag: Click "Choose a tag" and type a new semantic version that follows the last one available (e.g.,
v1.0.0) - Generate notes: Click "Generate release notes" to auto-populate the name and description
- Publish: Click "Publish release"
The release workflow will automatically:
- Build binaries for 6 platforms (Linux, macOS, Windows × amd64, arm64)
- Create and push Docker images with
:latestand:vX.Y.Ztags - Attach all artifacts to the GitHub release
- Generate checksums and signatures
After Release
The release workflow will automatically:
- Build and publish Docker images:
ghcr.io/modelcontextprotocol/registry:latest- Latest stable releaseghcr.io/modelcontextprotocol/registry:vX.Y.Z- Specific release version
- Binaries will be available on the GitHub release page
Important: Creating a release does not automatically deploy to production. Production deployments are triggered by pushes to the main branch.
Deploying the Release to Production
After creating a release, you need to ensure production pulls the new :latest Docker image. You have two options:
-
Recommended: Merge a commit to
main(e.g., a changelog update or version bump). This will trigger the deployment workflow which will:- Build and push a new
:mainDocker image - Deploy to staging
- Deploy to production (which uses
:latestand will pull the new image)
- Build and push a new
-
Manual restart (requires kubectl access):
kubectl rollout restart deployment/mcp-registry -n default
Verifying the Deployment
After deployment completes, verify the changes are live:
- Check the deployment workflow succeeded: https://github.com/modelcontextprotocol/registry/actions/workflows/deploy.yml
- Test the API endpoint to confirm schema changes are applied
- Check migrations ran successfully in the pod logs
Docker Image Tags
The registry publishes different Docker image tags for different use cases:
:latest- Latest stable release (updated only on releases):vX.Y.Z- Specific release versions (e.g.,:v1.0.0):main- Rolling tag updated on every push to main branch (continuous deployment):main-YYYYMMDD-sha- Specific development builds from main branch
Versioning
We use semantic versioning (SemVer):
v1.0.0- Major release with breaking changesv1.1.0- Minor release with new featuresv1.0.1- Patch release with bug fixes