Skip to content

fix(pr-list): stop the Working chip reading as a queue state #919

fix(pr-list): stop the Working chip reading as a queue state

fix(pr-list): stop the Working chip reading as a queue state #919

Workflow file for this run

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