Repository navigation
Clear the second review's findings, though it approved #33
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: | |
| push: | |
| pull_request: | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.nvmrc' | |
| cache: 'npm' | |
| # ffmpeg with libx264 encodes the synthetic clips the video tests use (D35); | |
| # the tests skip themselves with a message when it is missing. | |
| - run: sudo apt-get update && sudo apt-get install -y --no-install-recommends ffmpeg | |
| - run: npm ci | |
| - run: npm run lint | |
| - run: npm run typecheck | |
| - run: npm test | |
| - run: npm run build | |
| # Separate job with no `needs:`, so a browser failure never turns `build` red | |
| # (D36). It is not marked continue-on-error: an always-green job would hide | |
| # the result this is here to record. | |
| browser-smoke: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.nvmrc' | |
| cache: 'npm' | |
| - run: npm ci | |
| # The spec serves the built dist/ as well as the dev server. | |
| - run: npm run build | |
| # `channel: 'chrome'` drives the installed Google Chrome, never a | |
| # downloaded browser, so a runner without it skips rather than fails. | |
| - name: Find Google Chrome | |
| id: chrome | |
| run: | | |
| if command -v google-chrome >/dev/null 2>&1 || command -v google-chrome-stable >/dev/null 2>&1; then | |
| echo "present=true" >> "$GITHUB_OUTPUT" | |
| else | |
| echo "present=false" >> "$GITHUB_OUTPUT" | |
| echo "::notice::Google Chrome is not installed on this runner; the browser smoke test was skipped." | |
| fi | |
| - if: steps.chrome.outputs.present == 'true' | |
| run: npx playwright test tests/browser/app-smoke.spec.ts | |
| - if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: browser-smoke-results | |
| path: test-results/ | |
| if-no-files-found: ignore | |
| retention-days: 7 |