2 files changed
+12
-9
.github/workflows/release-mcp-registry.yml
+6
-8
@@ -18,20 +18,18 @@ jobs:
18
name: Publish server.json to the MCP Registry
19
runs-on: ubuntu-latest
20
steps:
21
+ # Unlike the other release workflows, this one builds nothing from source:
22
+ # it uploads metadata. So it checks out the branch it was dispatched on
23
+ # rather than the tag — `server.json` may have landed after the tag was
24
+ # cut — and uses the tag input only to pick the version to publish.
25
- name: Checkout
26
uses: actions/checkout@v6
23
- with:
24
- ref: ${{ github.event.inputs.tag || github.ref }}
27
28
- name: Set the release version
29
shell: bash
30
run: |
29
- if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then
30
- release_version="${GITHUB_REF_NAME#v}"
31
- else
32
- release_version="${{ github.event.inputs.tag }}"
33
- release_version="${release_version#v}"
34
- fi
31
+ release_version="${{ github.event.inputs.tag }}"
32
+ release_version="${release_version#v}"
33
34
echo "RELEASE_VERSION=${release_version}" >> "$GITHUB_ENV"
35
docs/mcp-registry.md
+6
-1
@@ -57,9 +57,14 @@ After tagging and running the npm and NuGet release workflows, run the
57
**MCP Registry Release** workflow with the same tag:
58
59
```sh
60
-gh workflow run release-mcp-registry.yml -f tag=v0.4.12
60
+gh workflow run release-mcp-registry.yml --ref development -f tag=v0.4.12
61
```
62
63
+The workflow publishes the `server.json` on the branch you dispatch from, not
64
+the one at the tag — it uploads metadata rather than building from source, and
65
+the metadata can change after a tag is cut. The tag input only selects which
66
+version to publish.
67
+
68
Order matters. The registry fetches the package metadata during publish, so
69
`@smbcloud/cli@<version>` and `SmbCloud.Cli <version>` must already be live —
70
the workflow checks for both and stops early if they aren't.