Files
orca/.github/workflows/win-orcad-serve-switch-e2e.yml
Neil 2f217b4d0d refactor(daemon): group endpoint, provider, session and transport owners (#38462)
* refactor(daemon): group transport, provider, endpoint, and terminal owners

* refactor(daemon): consolidate owner imports and preserve pinned baseline sources

* refactor(daemon): import termination budgets from their defining owner

* fix(ci): retain serve mode coverage for extracted orcad startup

* fix daemon build smoke to load concrete argument owner

* read daemon protocol facts from historical defining paths

* route protocol revision owners through compatibility checks
2026-11-05 01:54:51 -08:00

107 lines
4.1 KiB
YAML

name: Windows packaged orcad serve switch E2E
# D7 packaged Windows proof: relocated desktop daemon survives orcad serve adoption and desktop reattach, with settings writes after data-root ACL. Run install only on disposable CI; unpackaged E2E cannot exercise relocation.
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review, converted_to_draft]
paths:
- 'src/main/daemon/**'
- '!src/main/daemon/**/*.test.ts'
- '!src/main/daemon/emulation/testing/serialize-grid-roundtrip.ts'
- '!src/main/daemon/pty-subprocess/testing/mock-descendant-sweep.ts'
- '!src/main/daemon/executable-host/windows/testing/daemon-host-relocation.test-fixture.ts'
- '!src/main/daemon/endpoint/publication/testing/daemon-endpoint-reachability-test-harness.ts'
# D7 packages production entries; the unit jobs own these test roots.
- 'src/main/orcad/**'
- '!src/main/orcad/**/*.test.ts'
- 'src/cli/runtime/**'
- '!src/cli/runtime/**/*.test.ts'
- 'src/shared/orcad-local-serve-selection.ts'
- 'tests/tools/win-update-e2e/**'
- '.github/workflows/win-orcad-serve-switch-e2e.yml'
workflow_dispatch:
permissions:
contents: read
concurrency:
group: win-orcad-serve-switch-e2e-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
serve-switch:
name: packaged Windows Electron/orcad serve switch (D7)
if: github.event_name != 'pull_request' || github.event.pull_request.draft != true
runs-on: windows-2022
timeout-minutes: 75
env:
NODE_OPTIONS: --max-old-space-size=4096
ORCA_BACKGROUND_LAUNCH: '1'
steps:
- name: Checkout
uses: actions/checkout@v6
with:
persist-credentials: false
- uses: ./.github/actions/install-node-dependencies
with:
native-runtime: node
- uses: ./.github/actions/install-mobile-dependencies
- uses: ./.github/actions/prepare-windows-agent-hook
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version-file: config/.bun-version
no-cache: true
# Before the template exists: packaging verifies a present template for every target.
# Uncached: a src/**-keyed installer hit ~0.3% of runs while each 173 MB save evicted shared caches.
- name: Build Windows installer (unsigned)
shell: bash
env:
ORCA_REUSE_PREPARED_NATIVE_RUNTIME: '1'
run: |
node config/scripts/native-build/node-addons/ensure-native-runtime.mjs --runtime=electron
pnpm run build:desktop:ci
pnpm exec electron-builder --config config/electron-builder.config.cjs --win --publish never
# The win32-x64 template the harness drops into the install, which is where serve looks.
- uses: ./.github/actions/prepare-orcad-prebuilds
with:
resolve-windows-cache: 'true'
restore-windows-cache: 'true'
- uses: ./.github/actions/prepare-windows-cli-launcher
with:
arches: x64
- uses: ./.github/actions/build-mobile-web-bundle
- name: Build the win32-x64 orcad template
shell: bash
env:
ORCA_REUSE_PREPARED_WINDOWS_SECURITY: 'true'
run: |
node config/scripts/native-build/node-addons/ensure-native-runtime.mjs --runtime=node
node config/scripts/native-build/windows/build-windows-process-tree-addon.mjs --arch=x64 --reuse-prepared-runtime
node config/scripts/orcad-distribution/template/build-orcad-template.mjs --targets win32-x64
- name: Switch serve hosts on the installed app's profile
shell: bash
run: |
mkdir -p artifacts
node tests/tools/win-update-e2e/serve-switch.mjs \
--installer dist/orca-windows-setup.exe \
--template out/orcad-template 2>&1 | tee artifacts/serve-switch.log
exit "${PIPESTATUS[0]}"
- name: Upload serve switch output
if: always()
uses: actions/upload-artifact@v7
with:
name: win-orcad-serve-switch-output
path: artifacts/
retention-days: 7
if-no-files-found: warn