Skip to content

Geargrafx 1.7.11

Geargrafx 1.7.11 #19

Workflow file for this run

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