Add deterministic native-terminal load/budget harness (test-only) #28
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: Packaged Bun runtime | |
| on: | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - ".github/workflows/windows-conpty-package.yml" | |
| - "electrobun.config.ts" | |
| - "package.json" | |
| - "scripts/fixtures/windows-conpty-package/**" | |
| - "scripts/build-windows-terminal-host.ts" | |
| - "scripts/verify-packaged-windows-conpty.ts" | |
| - "scripts/verify-windows-conpty-update-archive.ts" | |
| - "src/bun/native-terminal-host/**" | |
| - "src/shared/native-terminal-runtime.ts" | |
| - "src/bun/prototypes/detached-pty/**" | |
| - "src/bun/native-terminal-registry/**" | |
| - "src/bun/native-terminal-adapter/**" | |
| - "src/bun/terminal-parity/**" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| package-runtime: | |
| strategy: | |
| matrix: | |
| os: [windows-latest, macos-latest, ubuntu-latest] | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Setup build Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: "1.3.14" | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Native shell launch pure tests | |
| run: bun run test:native-shell-launch | |
| # Real-runtime lifecycle regression for the persistent native-session | |
| # registry — runs on native Windows + POSIX with the pinned Bun 1.3.14. | |
| - name: Native-session registry lifecycle E2E | |
| run: bun run test:native-registry-e2e | |
| # Seq 1236 force-kills only the recorded host while journal/parser writes | |
| # are active, then proves owned-tree death and token-matched recovery. | |
| - name: Native-session host crash recovery E2E | |
| run: bun run test:native-crash-e2e | |
| # Seq 1237 writer/observer proof. The same real-runtime lifecycle runs on | |
| # native Windows and POSIX: concurrent attach, claim races, reconnect, and resize. | |
| - name: Native-session two-client lifecycle E2E | |
| run: bun run test:native-multi-client-e2e | |
| # Seq 1247 app-restart proof. Two separate short-lived controller processes: | |
| # controller A starts + marks + exits; controller B (a clean process) | |
| # rediscovers and reattaches to the same host/shell/session/pane + state, | |
| # with a deterministic single writer and honest lost-session results. | |
| - name: Native-session app-restart reattach E2E | |
| run: bun run test:native-app-restart-e2e | |
| # Seq 1254 single-view adapter parity. Drives the shared backend-neutral | |
| # parity corpus against the native adapter on native Windows + POSIX with | |
| # the pinned Bun 1.3.14 (single-view live + pure scenarios; multi-view | |
| # deferred to LAY-003/LAY-004). Expected final line: ALL CHECKS PASSED. | |
| # Completes in ~20s; the step timeout turns a future non-exiting run into a | |
| # fast, obvious failure instead of eating the job's whole 20-minute budget. | |
| - name: Native single-view adapter parity E2E | |
| timeout-minutes: 5 | |
| run: bun run test:native-parity-e2e | |
| - name: Explicit Windows shell launch matrix | |
| if: runner.os == 'Windows' | |
| shell: powershell | |
| run: | | |
| & .\src\bun\native-terminal-registry\__tests__\run-windows-shell-matrix.ps1 ` | |
| -OutDir "${{ runner.temp }}\dev3-windows-shell-matrix" | |
| - name: Upload Windows shell launch evidence | |
| if: always() && runner.os == 'Windows' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: windows-shell-launch-matrix | |
| path: ${{ runner.temp }}\dev3-windows-shell-matrix\ | |
| # Seq 1228 live-parser proof. Gates ONLY the deferred path; `callback` | |
| # mode is printed as evidence and is EXPECTED to fail on Windows | |
| # Bun 1.3.14 (the preserved seq 1185 reproduction, decision 146). | |
| - name: Live-parser regression probe (callback vs deferred) | |
| run: bun src/bun/native-terminal-registry/regression-probe.ts both | |
| - name: Live-parser lifecycle E2E | |
| run: bun run test:native-live-parser-e2e | |
| - name: Bundle terminal host entrypoint | |
| if: runner.os == 'Windows' | |
| run: bun run build:native | |
| - name: Build packaged runtime tracer | |
| working-directory: scripts/fixtures/windows-conpty-package | |
| run: bun ../../../node_modules/electrobun/bin/electrobun.cjs build --env=canary | |
| - name: Upload package and proof | |
| if: runner.os == 'Windows' | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: windows-conpty-package | |
| path: | | |
| scripts/fixtures/windows-conpty-package/artifacts/ |