feat: rework client configuration to make DX better #197
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
workflow_call: | |
pull_request: | |
branches: | |
- main | |
jobs: | |
lints: | |
name: Lints | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup pnpm | |
uses: pnpm/action-setup@ac5bf11548bf5e19b8aadb8182072616590fa4a6 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 'lts/*' | |
cache: 'pnpm' | |
- name: Install dependencies | |
run: pnpm install | |
- name: Prettier check | |
run: pnpm test:prettier | |
- name: Verify the integrity of provenance attestations and registry signatures for installed dependencies | |
run: pnpm npm audit signatures | |
- name: Verify the package for publishing performing all checks and validations | |
run: pnpm dlx jsr publish --dry-run | |
node: | |
name: Node | |
needs: lints | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node: [18, 20, 21] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup pnpm | |
uses: pnpm/action-setup@ac5bf11548bf5e19b8aadb8182072616590fa4a6 | |
- name: Set up Node.js ${{matrix.node}} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{matrix.node}} | |
cache: 'pnpm' | |
- name: Install dependencies | |
run: pnpm install | |
- name: Run unit tests | |
run: pnpm test -- --environment=node | |
env: | |
GOOGLE_SAFE_BROWSING_API_KEY: ${{ secrets.GOOGLE_SAFE_BROWSING_API_KEY }} | |
edge: | |
name: Edge Runtime | |
needs: lints | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup pnpm | |
uses: pnpm/action-setup@ac5bf11548bf5e19b8aadb8182072616590fa4a6 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 'lts/*' | |
cache: 'pnpm' | |
- name: Install dependencies | |
run: pnpm install | |
- name: Run unit tests | |
run: pnpm test -- --environment=edge-runtime | |
env: | |
GOOGLE_SAFE_BROWSING_API_KEY: ${{ secrets.GOOGLE_SAFE_BROWSING_API_KEY }} | |
analytics: | |
name: Analytics | |
needs: [node, edge] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup pnpm | |
uses: pnpm/action-setup@ac5bf11548bf5e19b8aadb8182072616590fa4a6 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 'lts/*' | |
cache: 'pnpm' | |
- name: Install dependencies | |
run: pnpm install | |
- name: Run unit tests | |
run: pnpm test -- --coverage.enabled | |
env: | |
GOOGLE_SAFE_BROWSING_API_KEY: ${{ secrets.GOOGLE_SAFE_BROWSING_API_KEY }} | |
- name: Generate ESLint report | |
run: | | |
pnpm test:eslint | |
sed -i 's|${{ github.workspace }}/||g' lints/eslint-report.json | |
- name: SonarCloud Scan | |
uses: SonarSource/sonarcloud-github-action@9f9bba2c7aaf7a55eac26abbac906c3021d211b2 | |
env: | |
SONAR_TOKEN: ${{ secrets. SONAR_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
deno: | |
name: Deno | |
needs: lints | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Deno | |
uses: denoland/setup-deno@1c4873e05d8d88a39d049245691fc43056ef5969 | |
- name: Type-check the dependencies | |
run: deno check src/index.ts |