feat: package diffing #3233
This file contains hidden or 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: ci | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| push: | |
| branches: | |
| - main | |
| merge_group: | |
| branches: | |
| - main | |
| # cancel in-progress runs on new commits to same PR (gitub.event.number) | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.number || github.sha }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 | |
| - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 | |
| with: | |
| node-version: lts/* | |
| - uses: pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c | |
| name: Install pnpm | |
| # pnpm cache skipped deliberately as the project is not actually installed here | |
| - name: π Lint project | |
| run: node scripts/lint.ts | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 | |
| - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 | |
| with: | |
| node-version: lts/* | |
| - uses: pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c | |
| name: Install pnpm | |
| with: | |
| cache: true | |
| - name: π¦ Install dependencies | |
| run: pnpm install | |
| - name: π Install browser | |
| run: pnpm playwright install chromium-headless-shell | |
| - name: πͺ Type check | |
| run: pnpm test:types | |
| - name: π§ͺ Unit and component tests | |
| run: pnpm vite test run --coverage | |
| - name: Upload coverage reports to Codecov | |
| uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5 | |
| env: | |
| CODECOV_TOKEN: 17b4bed9-d407-4ce2-9c10-2ccd4328a1d9 | |
| browser: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: mcr.microsoft.com/playwright:v1.58.0-noble | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 | |
| - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 | |
| with: | |
| node-version: lts/* | |
| - uses: pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c | |
| name: Install pnpm | |
| with: | |
| cache: true | |
| - name: π¦ Install dependencies | |
| run: pnpm install | |
| - name: ποΈ Build project | |
| run: pnpm build:playwright | |
| - name: π₯οΈ Test project (browser) | |
| run: pnpm test:browser:prebuilt | |
| a11y: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| mode: [dark, light] | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 | |
| - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 | |
| with: | |
| node-version: lts/* | |
| - uses: pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c | |
| name: Install pnpm | |
| with: | |
| cache: true | |
| - name: π¦ Install dependencies | |
| run: pnpm install | |
| - name: ποΈ Build project | |
| run: NODE_ENV=test pnpm build | |
| - name: βΏ Accessibility audit (Lighthouse - ${{ matrix.mode }} mode) | |
| run: ./scripts/lighthouse-a11y.sh | |
| env: | |
| LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }} | |
| LIGHTHOUSE_COLOR_MODE: ${{ matrix.mode }} | |
| knip: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 | |
| - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 | |
| with: | |
| node-version: lts/* | |
| - uses: pnpm/action-setup@1e1c8eafbd745f64b1ef30a7d7ed7965034c486c | |
| name: Install pnpm | |
| with: | |
| cache: true | |
| - name: π¦ Install dependencies | |
| run: pnpm install | |
| - name: π Check for unused code | |
| run: pnpm knip |