-
Notifications
You must be signed in to change notification settings - Fork 172
chore: fix publish workflow for MCP registry #786
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
Pull Request Test Coverage Report for Build 20130693737Details
💛 - Coveralls |
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.
Pull request overview
This PR fixes the publish workflow to ensure Docker images are available before publishing to the MCP registry. Previously, the MCP registry publish job depended on Docker images that were only built on a schedule or manual dispatch, causing failures during releases.
Key changes:
- Refactored Docker build/push logic into a reusable workflow action
- Added npm package availability check before Docker publishing in the main publish workflow
- Updated dependency chain: publish → wait for npm → docker-push → mcp-publish
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
.github/workflows/publish.yml |
Added npm package availability polling, docker-push job dependency, and renamed mcp-publish job with correct dependencies |
.github/workflows/docker.yml |
Refactored to use new reusable docker-publish action and improved failure handling job |
.github/actions/docker-publish.yml |
New reusable workflow containing extracted Docker build and push logic |
| @@ -0,0 +1,50 @@ | |||
| --- | |||
| name: Build and Push Docker Image | |||
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.
q: should this be a workflow or an action? tbh not sure what pros and cons of each are
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.
They both could be used for reusability. I used the workflow here only because they have better support for credentials masking. I don't have a strong feeling about it though as I only recently found about this and was curious to see this in action.
e2dbdae to
f607e46
Compare
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.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| name: Publish to MCP Registry | ||
| on: | ||
| workflow_call: | ||
| workflow_dispatch: |
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.
nit: I think you only need this on the other one
| workflow_dispatch: |
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 in intentional because we still want to be able to publish to MCP registry manually in case the relevant parts in publish job fails.
Also relevant for the current v1.3.0 release which was never published in MCP registry so this is expected to help with that as well.
cveticm
left a comment
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.
lgtm
Proposed changes
Our publish job which publishes the artifacts to MCP registry depends on the docker image being available already but its not when we publish. The docker images are published on a scheduled basis or on manual dispatch.
This PR changes the publish workflow such that we publish to docker as soon as we have the npm package listed in the registry and then proceed ahead with MCP registry publish.
An example failure - https://github.com/mongodb-js/mongodb-mcp-server/actions/runs/19944234451/job/57189691853
Checklist