fix: make the lockfile installable outside a China mirror #6
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, master] | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| check: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node: [18, 20, 22] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # No `version:` here on purpose — pnpm/action-setup@v4 refuses to run when | |
| # the version is pinned both here and in package.json's packageManager, | |
| # which is the single source of truth. | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - run: pnpm typecheck | |
| - run: pnpm lint | |
| - run: pnpm exec prettier --check 'src/**/*.ts' 'tests/**/*.ts' | |
| - run: pnpm test:unit | |
| - run: pnpm test:integration | |
| # e2e drives the built binary, so it has to come after the build. | |
| - run: pnpm build | |
| - run: pnpm test:e2e | |
| - name: Verify the version constant matches package.json | |
| run: node scripts/sync-version.mjs --check |