Skip to content

feat: Add Vercel serverless function support for MCP server #116

feat: Add Vercel serverless function support for MCP server

feat: Add Vercel serverless function support for MCP server #116

Workflow file for this run

name: codingbuddy-dev
on:
push:
branches-ignore:
- master
- stag-**
paths:
- 'apps/mcp-server/**'
- 'packages/rules/**'
- '.antigravity/**'
- '.claude/**'
- '.codex/**'
- '.cursor/**'
- 'scripts/**'
- .github/workflows/dev.yml
permissions:
statuses: write
contents: read
jobs:
# ─────────────── Setup Job ───────────────
install-dependencies:
if: github.repository == 'JeremyDev87/codingbuddy'
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Restore dependencies from cache
id: cache
uses: actions/cache@v5
with:
path: |
node_modules
apps/*/node_modules
packages/*/node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: yarn install --immutable
# ─────────────── CI Jobs (parallel) ───────────────
lint-check:
needs: install-dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Restore dependencies from cache
uses: actions/cache@v5
with:
path: |
node_modules
apps/*/node_modules
packages/*/node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
- name: Lint
run: yarn workspace codingbuddy lint
prettier-check:
needs: install-dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Restore dependencies from cache
uses: actions/cache@v5
with:
path: |
node_modules
apps/*/node_modules
packages/*/node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
- name: Format check
run: yarn workspace codingbuddy format:check
type-check:
needs: install-dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Restore dependencies from cache
uses: actions/cache@v5
with:
path: |
node_modules
apps/*/node_modules
packages/*/node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
- name: Type check
run: yarn workspace codingbuddy typecheck
unit-test-check:
needs: install-dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Restore dependencies from cache
uses: actions/cache@v5
with:
path: |
node_modules
apps/*/node_modules
packages/*/node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
- name: Test with coverage
run: yarn workspace codingbuddy test:coverage
circular-check:
needs: install-dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Restore dependencies from cache
uses: actions/cache@v5
with:
path: |
node_modules
apps/*/node_modules
packages/*/node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
- name: Circular dependency check
run: yarn workspace codingbuddy circular
build-check:
needs: install-dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Restore dependencies from cache
uses: actions/cache@v5
with:
path: |
node_modules
apps/*/node_modules
packages/*/node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
- name: Build
run: yarn workspace codingbuddy build
# ─────────────── Rules Validation ───────────────
rules-validation:
needs: install-dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Validate AI Rules
run: |
echo "📋 Validating JSON Schema..."
yarn dlx ajv-cli validate -s packages/rules/.ai-rules/schemas/agent.schema.json -d "packages/rules/.ai-rules/agents/*.json" --spec=draft7
echo ""
echo "📝 Linting Markdown files..."
yarn dlx markdownlint-cli2 "packages/rules/.ai-rules/**/*.md"
echo ""
echo "✅ All rules validation passed!"
# ─────────────── Security Scan ───────────────
security-check:
needs: install-dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup node.js
uses: actions/setup-node@v6
with:
node-version: '24'
- name: Restore dependencies from cache
uses: actions/cache@v5
with:
path: |
node_modules
apps/*/node_modules
packages/*/node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
- name: Security audit
run: yarn workspace codingbuddy npm audit --severity high
continue-on-error: true