From d1dda17c87795ccd8b9c1450cd50972896f03353 Mon Sep 17 00:00:00 2001 From: Jinwoo-H Date: Wed, 15 Jul 2026 15:06:41 -0400 Subject: [PATCH] ci(ssh): run relay selector tests natively Co-authored-by: Orca --- .github/workflows/ssh-relay-runtime-artifacts.yml | 10 ++++++++++ config/scripts/ssh-relay-runtime-workflow.test.mjs | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/.github/workflows/ssh-relay-runtime-artifacts.yml b/.github/workflows/ssh-relay-runtime-artifacts.yml index 018014e4ee3..e7f4e39eb40 100644 --- a/.github/workflows/ssh-relay-runtime-artifacts.yml +++ b/.github/workflows/ssh-relay-runtime-artifacts.yml @@ -257,6 +257,11 @@ jobs: node --check config/scripts/ssh-relay-runtime-native-signing-rehearsal-workflow.test.mjs node --check config/scripts/ssh-relay-runtime-build-prerequisite.test.mjs pnpm exec vitest run --config config/vitest.config.ts \ + src/main/ssh/ssh-relay-artifact-schema.test.ts \ + src/main/ssh/ssh-relay-manifest-signature.test.ts \ + src/main/ssh/ssh-relay-release-asset.test.ts \ + src/main/ssh/ssh-relay-artifact-selector.test.ts \ + src/main/ssh/ssh-relay-runtime-identity.test.ts \ config/scripts/ssh-relay-runtime-compatibility.test.mjs \ config/scripts/ssh-relay-node-release-verification.test.mjs \ config/scripts/ssh-relay-node-tar-inspection.test.mjs \ @@ -754,6 +759,11 @@ jobs: node --check config/scripts/ssh-relay-runtime-build-prerequisite.test.mjs if ($LASTEXITCODE -ne 0) { throw 'runtime build prerequisite test syntax check failed' } pnpm exec vitest run --config config/vitest.config.ts ` + src/main/ssh/ssh-relay-artifact-schema.test.ts ` + src/main/ssh/ssh-relay-manifest-signature.test.ts ` + src/main/ssh/ssh-relay-release-asset.test.ts ` + src/main/ssh/ssh-relay-artifact-selector.test.ts ` + src/main/ssh/ssh-relay-runtime-identity.test.ts ` config/scripts/ssh-relay-runtime-compatibility.test.mjs ` config/scripts/ssh-relay-node-release-verification.test.mjs ` config/scripts/ssh-relay-node-tar-inspection.test.mjs ` diff --git a/config/scripts/ssh-relay-runtime-workflow.test.mjs b/config/scripts/ssh-relay-runtime-workflow.test.mjs index fb28af32c32..8dff5cdeee6 100644 --- a/config/scripts/ssh-relay-runtime-workflow.test.mjs +++ b/config/scripts/ssh-relay-runtime-workflow.test.mjs @@ -99,6 +99,17 @@ describe('SSH relay runtime artifact workflow', () => { expect(uploadIndex).toBeGreaterThan(buildIndex) expect(source).toContain('verify-ssh-relay-runtime.mjs') expect(source).toContain('ssh-relay-runtime-workflow.test.mjs') + for (const testName of [ + 'ssh-relay-artifact-schema.test.ts', + 'ssh-relay-manifest-signature.test.ts', + 'ssh-relay-release-asset.test.ts', + 'ssh-relay-artifact-selector.test.ts', + 'ssh-relay-runtime-identity.test.ts' + ]) { + // Why: portable desktop selection contracts need proof on every native runner family, not + // only the local client architecture or the generic Linux PR job. + expect(source.split(`src/main/ssh/${testName}`)).toHaveLength(3) + } expect(source).toContain('pnpm install --frozen-lockfile --ignore-scripts') expect(source).toContain('--connect-timeout 20 --max-time 300 --retry 2') expect(source).toContain('mkdir -p "$output_root"')