name: CI on: workflow_dispatch: schedule: - cron: '0 2 * * 1' pull_request: push: branches: - main - master jobs: verify: name: Verify on Node ${{ matrix.node-version }} runs-on: ubuntu-latest strategy: fail-fast: false matrix: node-version: [16.13.0, 18.x, 20.x] steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: npm - name: Install dependencies run: npm ci - name: Verify run: npm run verify mutation: name: Mutation tests runs-on: ubuntu-latest if: github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 20.x cache: npm - name: Install dependencies run: npm ci - name: Run mutation tests run: npm run test:mutation audit: name: Dependency audit runs-on: ubuntu-latest continue-on-error: true steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 20.x cache: npm - name: Install dependencies run: npm ci - name: Audit production dependencies run: npm audit --omit=dev --audit-level=critical