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