name: CI on: push: branches: [main] pull_request: branches: [main] workflow_dispatch: concurrency: group: ci-${{ github.ref }} cancel-in-progress: true jobs: lint-and-test: runs-on: ubuntu-latest strategy: matrix: node-version: [20, 22] steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: npm - run: npm ci - name: Type check run: npm run typecheck - name: Lint run: npm run lint - name: Build run: npm run build - name: Test run: npm test