From bee762bfaf1209395fc38ad680ec855daed3b04a Mon Sep 17 00:00:00 2001 From: OrcaWin Date: Sat, 19 Sep 2026 00:16:09 -0700 Subject: [PATCH] ci: isolate cloud relay tests from unit shards Run cloud relay integration tests once and exclude them from general shards, while caching the cloud lockfile inputs. --- .github/workflows/unit-tests.yml | 44 +++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index cf7af8fc9a9..4ed5063e318 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -40,13 +40,6 @@ jobs: - name: Install Electron package binary for tests run: node config/scripts/install-electron-package-binary.mjs - # The real two-cell transport test imports cloud relay source and its contracts. - - name: Install relay integration dependencies - working-directory: cloud - run: | - npx --yes pnpm@10.24.0 --filter '@orca-cloud/relay...' install --frozen-lockfile --ignore-scripts - npx --yes pnpm@10.24.0 --filter '@orca-cloud/relay^...' build - - name: Test shard env: ORCA_BALANCE_UNIT_SHARDS: '1' @@ -71,6 +64,8 @@ jobs: --exclude=src/shared/pty-reply-echo-shapes.node-pty.test.ts \ --exclude=src/shared/startup-shell-portability.live-shell.test.ts \ --exclude=src/shared/posix-command-path-lookup.test.ts \ + --exclude=tests/e2e/relay-region-compatibility.unit.test.ts \ + --exclude=tests/e2e/relay-region-correction.unit.test.ts \ --exclude=tests/e2e/cross-version-wire/** \ --shard=${{ matrix.shard }}/${{ matrix.shard_total }} @@ -84,3 +79,38 @@ jobs: path: ci-shards/ retention-days: 14 if-no-files-found: warn + + relay_integration: + name: relay integration node ${{ fromJSON(inputs.node_versions)[0] }} + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v6 + with: + persist-credentials: false + + - uses: ./.github/actions/install-node-dependencies + with: + native-runtime: node + node-version: ${{ fromJSON(inputs.node_versions)[0] }} + cache-electron-package: 'true' + cache-dependency-path: | + pnpm-lock.yaml + cloud/pnpm-lock.yaml + + # These two tests import the cloud relay workspace directly. Keeping them in one job + # avoids installing and building the same workspace once per unit-test shard. + - name: Install relay integration dependencies + working-directory: cloud + run: | + npx --yes pnpm@10.24.0 --filter '@orca-cloud/relay...' install --frozen-lockfile --ignore-scripts + npx --yes pnpm@10.24.0 --filter '@orca-cloud/relay^...' build + + - name: Test relay integration contracts + env: + ORCA_BACKGROUND_LAUNCH: '1' + run: >- + pnpm exec vitest run --config config/vitest.config.ts + tests/e2e/relay-region-compatibility.unit.test.ts + tests/e2e/relay-region-correction.unit.test.ts