From 1d8877c2c8fee09cd8be09949895063e777f5824 Mon Sep 17 00:00:00 2001 From: rithviknishad Date: Sun, 12 Apr 2026 08:19:30 +0530 Subject: [PATCH] mcp server on cf workers and d1 --- .github/workflows/deploy-mcp.yaml | 57 ++++++++++++++++++++++++++++++ .github/workflows/scrape-data.yaml | 19 ++++++++++ 2 files changed, 76 insertions(+) create mode 100644 .github/workflows/deploy-mcp.yaml diff --git a/.github/workflows/deploy-mcp.yaml b/.github/workflows/deploy-mcp.yaml new file mode 100644 index 0000000000..002695e437 --- /dev/null +++ b/.github/workflows/deploy-mcp.yaml @@ -0,0 +1,57 @@ +name: Deploy MCP Server + +on: + workflow_dispatch: + +concurrency: + group: deploy-mcp-server + cancel-in-progress: true + +permissions: + contents: read + +jobs: + deploy: + name: Deploy MCP Server to Cloudflare Workers + runs-on: ubuntu-latest + environment: prod-db + env: + LEADERBOARD_PATH: ${{ github.workspace }}/leaderboard + + steps: + - name: 📥 Checkout Leaderboard + uses: actions/checkout@v6 + with: + repository: ohcnetwork/leaderboard + path: ${{ env.LEADERBOARD_PATH }} + fetch-depth: 1 + + - name: 📦 Setup pnpm + uses: pnpm/action-setup@v5 + with: + version: 10 + run_install: false + + - name: 📦 Setup Node.js + uses: actions/setup-node@v6 + with: + node-version: "24" + cache: "pnpm" + cache-dependency-path: | + ${{ env.LEADERBOARD_PATH }}/pnpm-lock.yaml + + - name: 📦 Install Dependencies + working-directory: ${{ env.LEADERBOARD_PATH }} + run: pnpm install + + - name: 🛠️ Build Packages + working-directory: ${{ env.LEADERBOARD_PATH }} + run: pnpm build:packages + + - name: 🚀 Deploy MCP Server to Cloudflare Workers + uses: cloudflare/wrangler-action@v3 + with: + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + workingDirectory: ${{ env.LEADERBOARD_PATH }}/packages/mcp-server + command: deploy --d1 DB=${{ vars.CLOUDFLARE_D1_DATABASE_ID }} diff --git a/.github/workflows/scrape-data.yaml b/.github/workflows/scrape-data.yaml index 92ddc4d3f9..35d6040588 100644 --- a/.github/workflows/scrape-data.yaml +++ b/.github/workflows/scrape-data.yaml @@ -130,3 +130,22 @@ jobs: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} command: r2 object put leaderboard-data/data.db --file data.db --content-type application/octet-stream + + upload-db-d1: + name: Upload Database to Cloudflare D1 + needs: scrape-data + runs-on: ubuntu-latest + environment: prod-db + steps: + - name: 📦 Download Database from GitHub Artifacts + uses: actions/download-artifact@v7 + with: + name: data-${{ github.run_id }}.db + path: . + + - name: 📦 Import Database to Cloudflare D1 + uses: cloudflare/wrangler-action@v3 + with: + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + command: d1 import ${{ vars.CLOUDFLARE_D1_DATABASE_NAME }} --file .leaderboard.db