name: CI on: push: branches: [main] pull_request: branches: [main] workflow_dispatch: permissions: contents: read concurrency: group: "ci-${{ github.ref }}" cancel-in-progress: ${{ github.event_name == 'pull_request' }} jobs: build: name: Build runs-on: ubuntu-latest timeout-minutes: 5 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - name: Use Node.js uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e with: node-version: "lts/*" cache: "npm" - name: Install dependencies run: npm ci - name: Check formatting run: npm run format:check - name: Run linter run: npm run lint - name: Build run: npm run build - name: Run tests run: npm run test:run