name: CI on: push: branches: - main - next - 'v*' paths-ignore: - 'docs/**' - '*.md' pull_request: paths-ignore: - 'docs/**' - '*.md' permissions: contents: read jobs: dependency-review: name: Dependency Review if: github.event_name == 'pull_request' runs-on: ubuntu-latest permissions: contents: read steps: - name: Check out repo uses: actions/checkout@v5 with: persist-credentials: false - name: Dependency review uses: actions/dependency-review-action@56339e523c0409420f6c2c9a2f4292bbb3c07dd3 # v4.8.0 lint: name: Lint Code runs-on: ubuntu-latest permissions: contents: read steps: - name: Check out repo uses: actions/checkout@v5 with: persist-credentials: false - name: Setup Node uses: actions/setup-node@v5 with: check-latest: true node-version: lts/* - name: Install dependencies run: npm i --ignore-scripts - name: Lint code run: npm run lint browsers: name: Test Browsers runs-on: ubuntu-latest permissions: contents: read steps: - name: Check out repo uses: actions/checkout@v5 with: persist-credentials: false - name: Setup Node uses: actions/setup-node@v5 with: check-latest: true node-version: lts/* - name: Install dependencies run: npm i - name: Install Playwright run: npx playwright install - name: Run tests run: npm run test:browser test: name: Test runs-on: ubuntu-latest permissions: contents: read strategy: matrix: node-version: [20, 22, 24] steps: - name: Check out repo uses: actions/checkout@v5 with: persist-credentials: false - name: Setup Node ${{ matrix.node-version }} uses: actions/setup-node@v5 with: check-latest: true node-version: ${{ matrix.node-version }} - name: Install dependencies run: npm i --ignore-scripts - name: Run tests run: npm run test:unit typescript: name: Test TypeScript runs-on: ubuntu-latest permissions: contents: read steps: - name: Check out repo uses: actions/checkout@v5 with: persist-credentials: false - name: Setup Node uses: actions/setup-node@v5 with: check-latest: true node-version: lts/* - name: Install dependencies run: npm i --ignore-scripts - name: tsd run: npm run test:typescript automerge: name: Automerge Dependabot PRs if: > github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && github.event.pull_request.user.login == 'dependabot[bot]' needs: [browsers, lint, test, typescript] permissions: pull-requests: write contents: write runs-on: ubuntu-latest steps: - uses: fastify/github-action-merge-dependabot@e820d631adb1d8ab16c3b93e5afe713450884a4a # v3.11.1 with: github-token: ${{ secrets.GITHUB_TOKEN }} target: major