name: CI on: push: branches: [main] pull_request: branches: [main] # Cancel in-progress runs for the same ref so a fresh push supersedes them. concurrency: group: ci-${{ github.ref }} cancel-in-progress: true jobs: build: name: typecheck + build (turbo) runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v5 - name: Set up Bun uses: oven-sh/setup-bun@v2 with: bun-version: "1.3.14" - name: Install dependencies run: bun install --frozen-lockfile # Real build: typecheck + turbo run build across all workspace packages # (incl. the Next.js web app). A green run means the whole monorepo # compiles and the web app prerenders. - name: Typecheck run: bun run typecheck - name: Build run: bun run build # Smoke: verify the MCP server + resources load and the indexer/module # graph resolves. Requires no external services (Redis/Postgres) — pure # module load + in-memory smoke test. - name: MCP smoke test run: bun --cwd apps/mcp run smoke # Unit tests across all packages + apps. CI has no Postgres/Redis, so # tests use bun:test module mocking to stub @mcpedia/db, @mcpedia/queue, # and @mcpedia/embeddings — no live I/O. - name: Test run: bun run test