fix(pr-list): stop the Working chip reading as a queue state #919
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: Test | |
| on: [push, pull_request] | |
| jobs: | |
| test: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [macos-latest, windows-latest, ubuntu-latest] | |
| steps: | |
| - name: Check out Git repository | |
| uses: actions/checkout@v4 | |
| - name: Install Node.js and NPM | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| - name: npm install | |
| run: npm install | |
| - name: Build shared package | |
| run: npm run build -w @talyn/shared | |
| # The desktop renderer imports @talyn/client from dist, so it has to be | |
| # compiled before the desktop build, the typecheck, and jest. | |
| - name: Build client package | |
| run: npm run build -w @talyn/client | |
| - name: Build backend | |
| run: npm run build -w @talyn/backend | |
| - name: Build desktop DLL | |
| run: npm run build:dll -w @talyn/desktop | |
| - name: Build desktop app | |
| run: npm run build -w @talyn/desktop | |
| # A browser bundle is OS-independent, so this doesn't need the 3-OS | |
| # matrix — but it's cheap (~2s) and running it here keeps one gate | |
| # rather than a second workflow. The env vars are the same publishable | |
| # repo variables the desktop build uses; vite.config.ts refuses to build | |
| # a production bundle without them, which is the point. | |
| # | |
| # PLACEHOLDER FALLBACKS, and they are load-bearing for outside | |
| # contributions: GitHub withholds repo VARIABLES from a pull_request run | |
| # raised off a fork, exactly as it withholds secrets, so `vars.*` arrives | |
| # empty and `assertUsableBuildEnv` refuses the build. That guard exists to | |
| # stop a real DEPLOY shipping a white screen (apps/web/buildEnv.ts); here | |
| # the bundle is thrown away the moment it is built, so a placeholder keeps | |
| # the compile + bundle coverage instead of failing every fork PR on env it | |
| # was never going to be given. A push to main still builds with the real | |
| # values, and the actual deploys read Vercel's own env, never this. | |
| - name: Build web app | |
| env: | |
| VITE_TALYN_API_URL: https://prod.talyn.dev | |
| VITE_TALYN_SUPABASE_URL: ${{ vars.TALYN_SUPABASE_URL || 'https://fork-pr.placeholder.invalid' }} | |
| VITE_TALYN_SUPABASE_ANON_KEY: ${{ vars.TALYN_SUPABASE_ANON_KEY || 'fork-pr-placeholder-anon-key' }} | |
| VITE_TALYN_POSTHOG_KEY: ${{ vars.TALYN_POSTHOG_KEY }} | |
| VITE_TALYN_BUILD_SHA: ${{ github.sha }} | |
| run: npm run build -w @talyn/web | |
| # Same reasoning as the web build above, and the same publishable repo | |
| # variables (including the fork-PR placeholders). The console points at | |
| # the same backend and the same Supabase project — what differs is who | |
| # the backend lets in. | |
| - name: Build admin console | |
| env: | |
| VITE_TALYN_API_URL: https://prod.talyn.dev | |
| VITE_TALYN_SUPABASE_URL: ${{ vars.TALYN_SUPABASE_URL || 'https://fork-pr.placeholder.invalid' }} | |
| VITE_TALYN_SUPABASE_ANON_KEY: ${{ vars.TALYN_SUPABASE_ANON_KEY || 'fork-pr-placeholder-anon-key' }} | |
| VITE_TALYN_POSTHOG_KEY: ${{ vars.TALYN_POSTHOG_KEY }} | |
| VITE_TALYN_BUILD_SHA: ${{ github.sha }} | |
| run: npm run build -w @talyn/admin | |
| - name: Typecheck | |
| run: npm run typecheck | |
| - name: Lint | |
| run: npm run lint | |
| - name: Test | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: npm test |