name: Release

on:
  release:
    types: [published]

jobs:
  build-mcpb:
    runs-on: ubuntu-latest
    permissions:
      contents: write

    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "20"
          cache: "npm"

      - name: Install dependencies
        run: npm ci

      - name: Build
        run: npm run build

      - name: Update manifest version
        run: |
          VERSION="${{ github.event.release.tag_name }}"
          # Remove 'v' prefix if present
          VERSION="${VERSION#v}"
          jq --arg v "$VERSION" '.version = $v' manifest.json > manifest.tmp.json
          mv manifest.tmp.json manifest.json

      - name: Install mcpb CLI
        run: npm install -g @anthropic-ai/mcpb

      - name: Create mcpb bundle
        run: mcpb pack . math-svg-mcp.mcpb

      - name: Upload mcpb to release
        uses: softprops/action-gh-release@v2
        with:
          files: math-svg-mcp.mcpb

  publish-npm:
    runs-on: ubuntu-latest
    environment: npm
    permissions:
      contents: read
      id-token: write

    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "20"
          cache: "npm"
          registry-url: "https://registry.npmjs.org"

      - name: Install dependencies
        run: npm ci

      - name: Build
        run: npm run build

      - name: Upgrade npm for OIDC support
        run: npm install -g npm@latest

      - name: Publish to npm
        run: npm publish --provenance --access public

  publish-mcp-registry:
    runs-on: ubuntu-latest
    needs: publish-npm
    permissions:
      contents: read
      id-token: write

    steps:
      - uses: actions/checkout@v4

      - name: Install mcp-publisher
        run: |
          curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_Linux_x86_64.tar.gz" | tar xz

      - name: Authenticate to MCP Registry
        run: ./mcp-publisher login github-oidc

      - name: Publish to MCP Registry
        run: ./mcp-publisher publish
