Big 🫏 PR: IAP-gated single-image deploy with a fully mediated data plane #10
Workflow file for this run
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: UI Tests | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| pull_request: | |
| branches: [ "main" ] | |
| jobs: | |
| ui: | |
| name: UI build, lint, and unit tests | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: ui | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| cache-dependency-path: ui/package-lock.json | |
| - name: Install dependencies | |
| run: npm ci --legacy-peer-deps | |
| - name: Generate env.ts (CI placeholder values; not a real deploy) | |
| # ui/src/env.ts is rendered from env.template.txt by deploy.sh and is | |
| # gitignored, so CI must generate it before any compile/build/test. The | |
| # values only need to be type-valid; CI never runs the app. | |
| env: | |
| UI_CONTROL_PLANE_MODE: none | |
| UI_MEDIA_MODE: mediated | |
| UI_DATA_PLANE_MODE: mediated | |
| PROJECT: ci | |
| FIRESTORE_DB_UI: ci | |
| FIREBASE_API_KEY: '' | |
| FIREBASE_AUTH_DOMAIN: '' | |
| GCS_BUCKET: '' | |
| run: envsubst < src/env.template.txt > src/env.ts | |
| - name: Type-check | |
| run: npm run compile | |
| - name: Lint | |
| run: npm run lint | |
| - name: Type-check specs | |
| # The bare-vitest harness (vitest.config.mts) emits each spec with | |
| # prog.emit() and never surfaces semantic diagnostics, so `npx vitest run` | |
| # passes even when the specs have type errors. tsc -p tsconfig.spec.json | |
| # --noEmit is the gate that actually fails the build on those errors. | |
| run: npm run typecheck:spec | |
| - name: Unit tests | |
| run: npx vitest run | |
| - name: Production build | |
| run: npx ng build --configuration production |