Repository navigation
Geargrafx 1.7.11 #19
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Publish MCP Server | |
| on: | |
| workflow_dispatch: | |
| release: | |
| types: [released] | |
| env: | |
| NAME_LOWER: geargrafx | |
| NAME_UPPER: Geargrafx | |
| jobs: | |
| publish_mcp: | |
| name: Publish to MCP Registry | |
| runs-on: ubuntu-latest | |
| if: github.repository_owner == 'drhelius' | |
| permissions: | |
| contents: read | |
| id-token: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Get release tag | |
| id: release_info | |
| run: | | |
| if [ "${{ github.event_name }}" = "release" ]; then | |
| TAG="${{ github.event.release.tag_name }}" | |
| else | |
| TAG=$(gh release list --limit 1 --exclude-drafts --exclude-pre-releases --json tagName --jq '.[0].tagName') | |
| fi | |
| echo "tag=$TAG" >> $GITHUB_OUTPUT | |
| echo "Release tag: $TAG" | |
| env: | |
| GITHUB_TOKEN: ${{ github.TOKEN }} | |
| - name: Download MCPB packages from release | |
| run: | | |
| mkdir -p mcpb-packages | |
| cd mcpb-packages | |
| gh release download ${{ steps.release_info.outputs.tag }} --pattern "*.mcpb" | |
| env: | |
| GITHUB_TOKEN: ${{ github.TOKEN }} | |
| - name: Calculate SHA256 hashes for MCPB packages | |
| run: | | |
| cd mcpb-packages | |
| TAG="${{ steps.release_info.outputs.tag }}" | |
| echo "SHA256_MACOS_ARM64=$(sha256sum "${NAME_UPPER}-${TAG}-mcpb-macos-arm64.mcpb" | cut -d' ' -f1)" >> $GITHUB_ENV | |
| echo "SHA256_MACOS_X64=$(sha256sum "${NAME_UPPER}-${TAG}-mcpb-macos-x64.mcpb" | cut -d' ' -f1)" >> $GITHUB_ENV | |
| echo "SHA256_WINDOWS_ARM64=$(sha256sum "${NAME_UPPER}-${TAG}-mcpb-windows-arm64.mcpb" | cut -d' ' -f1)" >> $GITHUB_ENV | |
| echo "SHA256_WINDOWS_X64=$(sha256sum "${NAME_UPPER}-${TAG}-mcpb-windows-x64.mcpb" | cut -d' ' -f1)" >> $GITHUB_ENV | |
| echo "SHA256_LINUX_X64=$(sha256sum "${NAME_UPPER}-${TAG}-mcpb-linux-x64.mcpb" | cut -d' ' -f1)" >> $GITHUB_ENV | |
| echo "SHA256_LINUX_ARM64=$(sha256sum "${NAME_UPPER}-${TAG}-mcpb-linux-arm64.mcpb" | cut -d' ' -f1)" >> $GITHUB_ENV | |
| - name: Generate MCP server.json | |
| run: | | |
| TAG="${{ steps.release_info.outputs.tag }}" | |
| cp platforms/shared/desktop/mcp/server.json.template server.json | |
| sed -i "s/{{NAME_LOWER}}/${NAME_LOWER}/g" server.json | |
| sed -i "s/{{NAME_UPPER}}/${NAME_UPPER}/g" server.json | |
| sed -i "s/{{VERSION}}/${TAG}/g" server.json | |
| sed -i "s/{{SHA256_MACOS_ARM64}}/${SHA256_MACOS_ARM64}/g" server.json | |
| sed -i "s/{{SHA256_MACOS_X64}}/${SHA256_MACOS_X64}/g" server.json | |
| sed -i "s/{{SHA256_WINDOWS_ARM64}}/${SHA256_WINDOWS_ARM64}/g" server.json | |
| sed -i "s/{{SHA256_WINDOWS_X64}}/${SHA256_WINDOWS_X64}/g" server.json | |
| sed -i "s/{{SHA256_LINUX_X64}}/${SHA256_LINUX_X64}/g" server.json | |
| sed -i "s/{{SHA256_LINUX_ARM64}}/${SHA256_LINUX_ARM64}/g" server.json | |
| echo "Generated server.json:" | |
| cat server.json | |
| - name: Install mcp-publisher | |
| run: | | |
| case "$(uname -m)" in | |
| arm64|aarch64) | |
| ARCH="arm64" | |
| ;; | |
| x86_64) | |
| ARCH="amd64" | |
| ;; | |
| *) | |
| echo "Unsupported architecture: $(uname -m)" | |
| exit 1 | |
| ;; | |
| esac | |
| curl --fail --location --retry 3 \ | |
| "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_linux_${ARCH}.tar.gz" \ | |
| --output mcp-publisher.tar.gz | |
| mkdir -p mcp-publisher-bin | |
| tar -xzf mcp-publisher.tar.gz -C mcp-publisher-bin | |
| BINARY="$(find mcp-publisher-bin -type f -name mcp-publisher | head -n 1)" | |
| test -n "$BINARY" | |
| sudo install -m 0755 "$BINARY" /usr/local/bin/mcp-publisher | |
| - name: Login to MCP Registry | |
| run: mcp-publisher login github-oidc | |
| - name: Publish to MCP Registry | |
| run: mcp-publisher publish |