name: Check on: push: branches: ['main'] pull_request: branches: ['main'] jobs: check: runs-on: docker steps: - uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: '22.x' check-latest: true # package-lock.json is gitignored, so cache the global npm download cache # keyed on package.json rather than relying on `npm ci` + a lockfile. - name: Cache npm dependencies uses: actions/cache@v4 with: path: ~/.npm key: ${{ runner.os }}-npm-${{ hashFiles('package.json') }} restore-keys: | ${{ runner.os }}-npm- - name: Install dependencies run: npm install - name: Check formatting run: npm run format - name: Lint run: npm run lint - name: Type-check run: npm test - name: Build run: npm run build