name: build on: push: pull_request: types: [opened, reopened, ready_for_review, review_requested] jobs: test: name: Build, lint, and test on Node.js ${{ matrix.node }} runs-on: ubuntu-latest strategy: matrix: node: [18, 20] steps: - uses: actions/checkout@v4 - name: Setup Node.js ${{ matrix.node }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node }} cache: npm - name: Install dependencies run: npm ci # Running this after `npm ci` because `npm ci` removes `node_modules`: - name: Download Turborepo cache uses: actions/cache@v3 with: path: node_modules/.cache/turbo key: ${{ runner.os }}-node-${{ matrix.node }}-turbo-${{ hashFiles('node_modules/.cache/turbo') }} restore-keys: | ${{ runner.os }}-node-${{ matrix.node }}-turbo- - name: Check types run: npm run tsc - name: Build packages run: npm run build - name: Run tests run: npm run test -- --ci --coverage --maxWorkers=2 --reporters=default --reporters=github-actions