name: CI on: pull_request: branches: [main] push: branches: [main] permissions: contents: read concurrency: group: ci-${{ github.ref }} cancel-in-progress: true jobs: build-and-test: runs-on: nixos timeout-minutes: 15 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '22' cache: 'npm' - name: Install dependencies run: npm ci - name: Build run: npm run build env: NODE_OPTIONS: --max-old-space-size=12288 - name: Unit tests run: npm run test:unit env: NODE_OPTIONS: --max-old-space-size=12288 - name: Tool inventory smoke test run: npm run test:smoke env: NODE_OPTIONS: --max-old-space-size=12288 - name: Auth gating and rate-limit integration tests run: npm run test:integration:auth - name: Signer smoke test run: npm run test:smoke:signer env: NODE_OPTIONS: --max-old-space-size=12288 typecheck: runs-on: ubuntu-latest timeout-minutes: 15 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '22' cache: 'npm' - name: Install dependencies run: npm ci - name: Typecheck run: npm run typecheck env: NODE_OPTIONS: --max-old-space-size=12288