feat(ui): add framework-neutral Vite snapshots, summary and detail re… #176
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
| --- | |
| on: | |
| pull_request: &ignore-paths | |
| paths-ignore: | |
| - ".gitattributes" | |
| - ".gitignore" | |
| - "CHANGELOG.md" | |
| - "docs/**" | |
| - "README.md" | |
| push: *ignore-paths | |
| name: assets | |
| permissions: | |
| contents: read | |
| concurrency: | |
| cancel-in-progress: true | |
| group: assets-${{ github.workflow }}-${{ github.ref }} | |
| jobs: | |
| build: | |
| name: Verify Vite build reproduces dist. | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout. | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| with: | |
| persist-credentials: false | |
| - name: Install node.js. | |
| uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| node-version-file: .nvmrc | |
| cache: npm | |
| cache-dependency-path: package-lock.json | |
| - name: Install dependencies. | |
| run: npm ci | |
| - name: Check formatting. | |
| run: npm run format:check | |
| - name: Lint JavaScript. | |
| run: npm run lint:js | |
| - name: Lint stylesheets. | |
| run: npm run lint:css | |
| - name: Test JavaScript. | |
| run: npm run test:js | |
| - name: Test JavaScript mutations. | |
| run: npm run test:mutation | |
| - name: Build assets. | |
| run: npm run build | |
| - name: Enforce asset size budgets. | |
| run: npm run check:size | |
| - name: Enforce strict token contrast. | |
| run: npm run check:contrast:strict | |
| - name: Validate browser suite discovery. | |
| run: npm run test:e2e:list | |
| - name: Install Playwright Chromium. | |
| run: npx playwright install --with-deps chromium | |
| - name: Test the large-data browser harness. | |
| run: npm run test:perf | |
| - name: Detect dist drift. | |
| run: | | |
| status="$(git status --porcelain --untracked-files=all --ignored=matching -- resources/assets/dist/)" | |
| test -z "$status" || { | |
| printf '%s\n' "$status" | |
| exit 1 | |
| } |