| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- name: CI
- on:
- push:
- branches: [main]
- pull_request:
- branches: [main]
- jobs:
- test:
- runs-on: macos-latest
- strategy:
- matrix:
- node-version: [20, 22]
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
- - name: Setup Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4
- with:
- node-version: ${{ matrix.node-version }}
- cache: "npm"
- - name: Install dependencies
- run: npm ci
- - name: Run linter
- run: npm run lint
- - name: Type check
- run: npm run typecheck
- - name: Run tests with coverage
- run: npm run test:coverage
- - name: Upload coverage reports
- if: matrix.node-version == 22
- uses: codecov/codecov-action@v4
- with:
- files: ./coverage/lcov.info
- fail_ci_if_error: false
- continue-on-error: true
- - name: Build
- run: npm run build
- - name: Verify committed build/ matches source
- run: |
- if ! git diff --quiet build/; then
- echo "::error::build/ is out of date. Run 'npm run build' locally and commit the changes."
- git --no-pager diff --stat build/
- exit 1
- fi
|