setup no longer writes a dead MCP_AUTH_TOKEN secret back to the worker #33
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| env: | |
| COVERAGE_LINE_THRESHOLD: "0.85" | |
| COVERAGE_FUNC_THRESHOLD: "0.75" | |
| jobs: | |
| typecheck: | |
| name: Typecheck | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Run typecheck | |
| run: bun run typecheck | |
| openapi-drift: | |
| name: OpenAPI drift gate | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Regenerate openapi.json | |
| run: bun run openapi:gen | |
| - name: Fail if openapi.json drifted | |
| run: git diff --exit-code openapi.json || (echo "openapi.json is out of date — run 'bun run openapi:gen' locally and commit the result" && exit 1) | |
| test: | |
| name: Test + Coverage | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Run tests with coverage | |
| run: bun test --coverage --coverage-reporter=lcov | |
| - name: Check coverage thresholds | |
| run: node scripts/check-coverage.mjs | |
| env: | |
| COVERAGE_LINE_THRESHOLD: ${{ env.COVERAGE_LINE_THRESHOLD }} | |
| COVERAGE_FUNC_THRESHOLD: ${{ env.COVERAGE_FUNC_THRESHOLD }} | |
| LCOV_PATH: coverage/lcov.info | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| files: coverage/lcov.info | |
| fail_ci_if_error: false | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| cli-test: | |
| name: CLI Test + Coverage | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Run CLI tests with coverage | |
| working-directory: cli | |
| run: bun test --coverage --coverage-reporter=lcov | |
| - name: Check CLI coverage thresholds | |
| run: node scripts/check-coverage-cli.mjs | |
| env: | |
| CLI_LCOV_PATH: cli/coverage/lcov.info | |
| CLI_COVERAGE_LINE_THRESHOLD: "0.80" | |
| CLI_COVERAGE_FUNC_THRESHOLD: "0.70" | |
| integration: | |
| name: Integration + E2E | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Build worker bundle (dry-run) | |
| run: bun run test:integration:build | |
| - name: Run integration tests | |
| run: bun run test:integration | |
| - name: Run e2e tests (test/e2e/) | |
| run: bun test --path-ignore-patterns "" test/e2e/ |