Repository navigation
ci: install pnpm after setup-node #90
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 | |
| # Trigger on every push to a feature branch + every PR to main. Without | |
| # the feature-branch push trigger, CI never runs for in-flight branches and | |
| # the only signal a branch is broken is "wait until PR time and see it | |
| # fail" — too late to fix cheaply. The branch list intentionally mirrors | |
| # the conventional-commit prefixes we use, so `chore/*`, `release/*`, | |
| # and `docs/*` all pick up CI too. | |
| on: | |
| pull_request: | |
| branches: [main] | |
| push: | |
| branches: | |
| - main | |
| - 'feat/**' | |
| - 'fix/**' | |
| - 'chore/**' | |
| - 'release/**' | |
| - 'docs/**' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| name: build + vitest (Node ${{ matrix.node-version }}, ${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Match the engines field: >=22.5.0 <25.0.0. CodeGraph uses the | |
| # built-in node:sqlite API, which is only available from Node 22.5+. | |
| node-version: [22] | |
| # Linux is the gating runner — every PR must pass it. Windows is | |
| # advisory: certain tests have pre-existing Windows-only EPERM | |
| # failures documented in CLAUDE.md, so we don't block PRs on it. | |
| # continue-on-error handles the inverse: a Linux failure still | |
| # fails the PR, but a Windows-only failure shows up as a yellow | |
| # check rather than red. | |
| os: [ubuntu-latest, windows-latest] | |
| continue-on-error: ${{ matrix.os == 'windows-latest' }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Node ${{ matrix.node-version }} | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Install pnpm | |
| run: npm install -g pnpm@10.16.1 | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Build (tsc + copy assets) | |
| run: pnpm run build | |
| - name: Run vitest | |
| run: pnpm test | |
| - name: Run E2E regression (extract-vba-realfixtures) | |
| run: pnpm exec vitest run __tests__/extraction-vba-realfixtures.test.ts |