name: CI on: pull_request: branches: - main workflow_dispatch: permissions: read-all jobs: test: runs-on: ubuntu-latest if: ${{ github.event_name == 'pull_request' }} strategy: matrix: node: [ 20, 21, 22 ] name: Node ${{ matrix.node }} test steps: - name: Git Checkout uses: actions/checkout@v4 - name: Run linting rules and tests uses: actions/setup-node@v4 with: node-version: ${{ matrix.node }} - name: Node Version run: node --version - name: NPM Install run: npm ci - name: NPM ESLint run: npm run lint - name: NPM Test run: npm run test auto-approve: runs-on: ubuntu-latest needs: [test] permissions: pull-requests: write issues: write steps: - name: Auto Approve PR uses: actions/github-script@v7 with: script: | github.rest.pulls.createReview({ owner: context.repo.owner, repo: context.repo.repo, pull_number: context.issue.number, event: "APPROVE" })