From 86f473d8b9e02c6dcef025a9e46d45564a6a07f7 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Wed, 29 Apr 2026 17:03:46 +0100 Subject: [PATCH] ci: isolate moonshot live shard --- .../workflows/openclaw-live-and-e2e-checks-reusable.yml | 6 ++++++ scripts/test-live-shard.mjs | 8 ++++++++ test/scripts/package-acceptance-workflow.test.ts | 1 + test/scripts/test-live-shard.test.ts | 6 ++++++ 4 files changed, 21 insertions(+) diff --git a/.github/workflows/openclaw-live-and-e2e-checks-reusable.yml b/.github/workflows/openclaw-live-and-e2e-checks-reusable.yml index 81558153348..d00acf53bf1 100644 --- a/.github/workflows/openclaw-live-and-e2e-checks-reusable.yml +++ b/.github/workflows/openclaw-live-and-e2e-checks-reusable.yml @@ -1777,6 +1777,12 @@ jobs: timeout_minutes: 90 profile_env_only: false profiles: full + - suite_id: native-live-extensions-moonshot + label: Native live Moonshot plugin + command: node .release-harness/scripts/test-live-shard.mjs native-live-extensions-moonshot + timeout_minutes: 60 + profile_env_only: false + profiles: full - suite_id: native-live-extensions-openai label: Native live OpenAI plugin command: node .release-harness/scripts/test-live-shard.mjs native-live-extensions-openai diff --git a/scripts/test-live-shard.mjs b/scripts/test-live-shard.mjs index c8e3c408e07..5f7ae4528f7 100644 --- a/scripts/test-live-shard.mjs +++ b/scripts/test-live-shard.mjs @@ -14,6 +14,7 @@ export const RELEASE_LIVE_TEST_SHARDS = Object.freeze([ "native-live-test", "native-live-extensions-a-k", "native-live-extensions-l-n", + "native-live-extensions-moonshot", "native-live-extensions-openai", "native-live-extensions-o-z-other", "native-live-extensions-xai", @@ -130,6 +131,10 @@ function isXaiLiveTest(file) { return file.startsWith("extensions/xai/"); } +function isMoonshotLiveTest(file) { + return file.startsWith("extensions/moonshot/"); +} + export function selectLiveShardFiles(shard, files = collectAllLiveTestFiles()) { switch (shard) { case "native-live-src-agents": @@ -158,8 +163,11 @@ export function selectLiveShardFiles(shard, files = collectAllLiveTestFiles()) { (file) => isExtensionInRange(file, "l", "n") && !file.startsWith("extensions/openai/") && + !isMoonshotLiveTest(file) && !isExtensionMediaLiveTest(file), ); + case "native-live-extensions-moonshot": + return files.filter(isMoonshotLiveTest); case "native-live-extensions-openai": return files.filter( (file) => file.startsWith("extensions/openai/") && !isExtensionMediaLiveTest(file), diff --git a/test/scripts/package-acceptance-workflow.test.ts b/test/scripts/package-acceptance-workflow.test.ts index e156db47617..ea131e7535c 100644 --- a/test/scripts/package-acceptance-workflow.test.ts +++ b/test/scripts/package-acceptance-workflow.test.ts @@ -150,6 +150,7 @@ describe("package artifact reuse", () => { ); expect(workflow).toContain("suite_id: native-live-extensions-a-k"); expect(workflow).toContain("suite_id: native-live-extensions-l-n"); + expect(workflow).toContain("suite_id: native-live-extensions-moonshot"); expect(workflow).toContain("suite_id: native-live-extensions-openai"); expect(workflow).toContain("suite_id: native-live-extensions-o-z-other"); expect(workflow).toContain("validate_live_media_provider_suites:"); diff --git a/test/scripts/test-live-shard.test.ts b/test/scripts/test-live-shard.test.ts index 5e67cbfafb1..751e8b2e52b 100644 --- a/test/scripts/test-live-shard.test.ts +++ b/test/scripts/test-live-shard.test.ts @@ -92,6 +92,12 @@ describe("scripts/test-live-shard", () => { expect(selectLiveShardFiles("native-live-extensions-openai", allFiles)).toEqual( expect.arrayContaining(["extensions/openai/openai-provider.live.test.ts"]), ); + expect(selectLiveShardFiles("native-live-extensions-l-n", allFiles)).not.toEqual( + expect.arrayContaining(["extensions/moonshot/moonshot.live.test.ts"]), + ); + expect(selectLiveShardFiles("native-live-extensions-moonshot", allFiles)).toEqual([ + "extensions/moonshot/moonshot.live.test.ts", + ]); }); it("rejects unknown shard names", () => {