fix: token-goat statusline project extraction on non-Windows CI runners #534
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] | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true' | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - run: npm ci | |
| - name: Lint | |
| run: npm run lint | |
| - name: Type check | |
| run: npm run typecheck | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - run: npm ci | |
| - name: Cache embedding model | |
| uses: actions/cache@v4 | |
| with: | |
| path: node_modules/@xenova/transformers/.cache | |
| key: xenova-model-${{ runner.os }}-${{ hashFiles('package-lock.json') }} | |
| # Retries absorb two known non-code causes of an otherwise-green run failing here: a | |
| # transient Hugging Face CDN block/rate-limit on the embedding model download (the app | |
| # itself now retries+backs off internally too, but a sustained outage outlasts that), and | |
| # a shared-runner "[vitest-worker]: Timeout calling 'onTaskUpdate'" RPC flake with zero | |
| # assertion failures anywhere in the run (vitest.config.ts's CI-only retry also covers | |
| # per-test instances of this). A real regression fails deterministically and still fails | |
| # after 3 attempts. | |
| - name: Test | |
| uses: nick-fields/retry@v3 | |
| with: | |
| timeout_minutes: 15 | |
| max_attempts: 3 | |
| retry_wait_seconds: 30 | |
| command: npm test | |
| test-windows: | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - run: npm ci | |
| - name: Cache embedding model | |
| uses: actions/cache@v4 | |
| with: | |
| path: node_modules/@xenova/transformers/.cache | |
| key: xenova-model-${{ runner.os }}-${{ hashFiles('package-lock.json') }} | |
| - name: Test | |
| uses: nick-fields/retry@v3 | |
| with: | |
| timeout_minutes: 15 | |
| max_attempts: 3 | |
| retry_wait_seconds: 30 | |
| command: npm test |