Skip to content

ci: install pnpm after setup-node #90

ci: install pnpm after setup-node

ci: install pnpm after setup-node #90

Workflow file for this run

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