11name : Publish to MCP Registry
22
33on :
4- repository_dispatch :
5- types : [docker-published ] # Triggered after Docker image is published
4+ push :
5+ tags : ["v*" ] # Triggers on version tags like v1.0.0
66 workflow_dispatch : # Allow manual triggering
77
88jobs :
@@ -23,32 +23,28 @@ jobs:
2323
2424 - name : Fetch tags
2525 run : |
26- if [[ "${{ github.event_name }}" == "repository_dispatch" ]]; then
27- echo "Triggered by docker-published event for tag: ${{ github.event.client_payload.tag }}"
28- elif [[ "${{ github.ref_type }}" != "tag" ]]; then
26+ if [[ "${{ github.ref_type }}" != "tag" ]]; then
2927 git fetch --tags
3028 else
3129 echo "Skipping tag fetch - already on tag ${{ github.ref_name }}"
3230 fi
3331
3432 - name : Wait for Docker image
3533 run : |
36- if [[ "${{ github.event_name }}" == "repository_dispatch" ]]; then
37- TAG="${{ github.event.client_payload.tag }}"
38- elif [[ "${{ github.ref_type }}" == "tag" ]]; then
34+ if [[ "${{ github.ref_type }}" == "tag" ]]; then
3935 TAG="${{ github.ref_name }}"
4036 else
4137 TAG=$(git tag --sort=-version:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+' | head -n1)
4238 fi
4339 IMAGE="ghcr.io/github/github-mcp-server:$TAG"
4440
45- for i in {1..6 }; do
41+ for i in {1..10 }; do
4642 if docker manifest inspect "$IMAGE" &>/dev/null; then
4743 echo "✅ Docker image ready: $TAG"
4844 break
4945 fi
50- [ $i -eq 6 ] && { echo "❌ Timeout waiting for $TAG after 3 minutes"; exit 1; }
51- echo "⏳ Waiting for Docker image ($i/6 )..."
46+ [ $i -eq 10 ] && { echo "❌ Timeout waiting for $TAG after 5 minutes"; exit 1; }
47+ echo "⏳ Waiting for Docker image ($i/10 )..."
5248 sleep 30
5349 done
5450
6056
6157 - name : Update server.json version
6258 run : |
63- if [[ "${{ github.event_name }}" == "repository_dispatch" ]]; then
64- TAG_VERSION=$(echo "${{ github.event.client_payload.tag }}" | sed 's/^v//')
65- echo "Using tag from dispatch: ${{ github.event.client_payload.tag }}"
66- elif [[ "${{ github.ref_type }}" == "tag" ]]; then
59+ if [[ "${{ github.ref_type }}" == "tag" ]]; then
6760 TAG_VERSION=$(echo "${{ github.ref_name }}" | sed 's/^v//')
6861 else
6962 LATEST_TAG=$(git tag --sort=-version:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+(-.*)?$' | head -n 1)
0 commit comments