-
Notifications
You must be signed in to change notification settings - Fork 77
Open
Description
Goal
GitHub Actions workflow that packages the Electron app and verifies it launches without crashing.
Workflow file
.github/workflows/electron-smoke-test.yml
Trigger
on:
push:
branches: [master]
paths: [packages/electron/**]
pull_request:
branches: [master]
paths: [packages/electron/**]Steps
npm ci(root — installs workspaces)cd web && npm ci(web frontend deps)cd packages/electron/desktop && npm ci(desktop frontend deps)npm run build(builds web + tsc)cd packages/electron/desktop && npx vite build(desktop UI)cd packages/electron && npm run build(esbuild bundle)cd packages/electron && node electron/prepare-pack.mjs(copy root resources)cd packages/electron && npx electron-builder --config electron-builder.yml --linux --dir --publish never- Launch with xvfb-run + Playwright `_electron.launch()`, assert window opens, close cleanly
Test file
packages/electron/__tests__/launch-smoke.test.ts (inside electron package, tracked by git)
Hard constraints — violations = auto-reject
- Branch is
master, NOTmain - Package manager is npm — no pnpm/yarn
- Do NOT modify
.gitignoreorelectron-builder.yml - Do NOT bump electron version (keep
^35.7.5) - Do NOT add dependencies to root
package.json— Playwright deps go inpackages/electron/package.jsononly - TypeScript: no
any - ESM project — use
import.meta.dirnamenot__dirname - Runner:
ubuntu-latest - Install Playwright deps:
npx playwright install --with-deps - The test ONLY verifies: app launches → window appears → clean exit. No feature testing.
Reference
- electron-builder config:
packages/electron/electron-builder.yml productName: "Codex Proxy"→ Linux unpacked binary is atpackages/electron/release/linux-unpacked/codex-proxy- Existing 40+ tests in
packages/electron/__tests__/use vitest - Build scripts:
electron/build.mjs,electron/prepare-pack.mjs
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels