Skip to content

Commit c4b2183

Browse files
authored
fix(release): repair frozen validation compatibility (#109272)
1 parent 42ff5ec commit c4b2183

6 files changed

Lines changed: 24 additions & 15 deletions

File tree

.github/workflows/ci.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -668,7 +668,10 @@ jobs:
668668
runAndroid
669669
? [
670670
// android-ci-contract-v2: both app variants, Android lint, benchmark, and ktlint.
671-
{ check_name: "android-test-play", task: "test-play" },
671+
{
672+
check_name: "android-test-play",
673+
task: useCompatibleAndroidCi ? "test-play-compat" : "test-play",
674+
},
672675
{ check_name: "android-test-third-party", task: "test-third-party" },
673676
{
674677
check_name: "android-build-play",
@@ -2927,6 +2930,11 @@ jobs:
29272930
:app:testPlayDebugUnitTest \
29282931
:wear-shared:testDebugUnitTest
29292932
;;
2933+
test-play-compat)
2934+
# Frozen targets predate the Wear shared project. Keep their app-owned
2935+
# Play unit tests without importing current Android modules.
2936+
./gradlew --no-daemon --build-cache :app:testPlayDebugUnitTest
2937+
;;
29302938
test-third-party)
29312939
./gradlew --no-daemon --build-cache :app:testThirdPartyDebugUnitTest
29322940
;;

.github/workflows/openclaw-live-and-e2e-checks-reusable.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2837,9 +2837,7 @@ jobs:
28372837
include:
28382838
- suite_id: native-live-src-agents
28392839
label: Native live agents
2840-
# Keep the dedicated Coding Plan suite below while temporarily omitting
2841-
# API Platform calls from the broad agents shard.
2842-
command: ZAI_API_KEY= Z_AI_API_KEY= node .release-harness/scripts/test-live-shard.mjs native-live-src-agents
2840+
command: node .release-harness/scripts/test-live-shard.mjs native-live-src-agents
28432841
timeout_minutes: 60
28442842
profile_env_only: false
28452843
profiles: stable full

scripts/test-live-shard.mjs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ const OPTIONAL_LIVE_SHARD_FILE_ENVS = new Map([
4444
const SKIPPED_ASSERTION_STATUSES = new Set(["disabled", "pending", "skipped", "todo"]);
4545
const QA_RUNTIME_LIVE_TEST = "extensions/qa-lab/src/matrix-channel-driver.lifecycle.live.test.ts";
4646
const QA_RUNTIME_ARTIFACT = "dist/extensions/qa-lab/runtime-api.js";
47+
const ZAI_LIVE_TEST_FILE = "src/agents/zai.live.test.ts";
4748

4849
/** Live-test shards included in release validation. */
4950
export const RELEASE_LIVE_TEST_SHARDS = Object.freeze([
@@ -259,12 +260,13 @@ export function selectLiveShardFiles(shard, files = collectAllLiveTestFiles()) {
259260
case "native-live-src-agents":
260261
return files.filter(
261262
(file) =>
262-
file.startsWith("src/agents/") ||
263-
file.startsWith("src/llm/") ||
264-
file.startsWith("src/skills/"),
263+
file !== ZAI_LIVE_TEST_FILE &&
264+
(file.startsWith("src/agents/") ||
265+
file.startsWith("src/llm/") ||
266+
file.startsWith("src/skills/")),
265267
);
266268
case "native-live-src-agents-zai-coding":
267-
return files.filter((file) => file === "src/agents/zai.live.test.ts");
269+
return files.filter((file) => file === ZAI_LIVE_TEST_FILE);
268270
case "native-live-src-gateway":
269271
return files.filter(
270272
(file) => file.startsWith("src/gateway/") || file.startsWith("src/system-agent/"),

test/scripts/ci-workflow-guards.test.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1571,7 +1571,7 @@ describe("ci workflow guards", () => {
15711571
(step: WorkflowStep) => step.name === "Run Android ${{ matrix.task }}",
15721572
);
15731573

1574-
expect(source).toContain('{ check_name: "android-test-play", task: "test-play" }');
1574+
expect(source).toContain('task: useCompatibleAndroidCi ? "test-play-compat" : "test-play"');
15751575
expect(source).toContain(
15761576
'{ check_name: "android-test-third-party", task: "test-third-party" }',
15771577
);
@@ -2525,6 +2525,7 @@ printf '%s\n' "\${CURL_SUCCESS_IP:-203.0.113.7}"
25252525
(step: WorkflowStep) => step.name === "Run Android ${{ matrix.task }}",
25262526
).run;
25272527
expect(androidRun).toContain("build-play-compat)");
2528+
expect(androidRun).toContain("test-play-compat)");
25282529
expect(androidRun).toContain(":app:assemblePlayDebug");
25292530

25302531
const legacy = runCiManifestFixture({ bundledPlanner: false });
@@ -2539,7 +2540,7 @@ printf '%s\n' "\${CURL_SUCCESS_IP:-203.0.113.7}"
25392540
JSON.parse(expectDefined(legacy.outputs.android_matrix, "legacy Android matrix output"))
25402541
.include,
25412542
).toEqual([
2542-
{ check_name: "android-test-play", task: "test-play" },
2543+
{ check_name: "android-test-play", task: "test-play-compat" },
25432544
{ check_name: "android-test-third-party", task: "test-third-party" },
25442545
{ check_name: "android-build-play", task: "build-play-compat" },
25452546
]);

test/scripts/package-acceptance-workflow.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1604,7 +1604,7 @@ describe("package artifact reuse", () => {
16041604
expect(workflow).toContain("suite_id: native-live-src-agents");
16051605
expect(workflow).toContain("Checkout trusted live shard harness");
16061606
expect(workflow).toContain(
1607-
"command: ZAI_API_KEY= Z_AI_API_KEY= node .release-harness/scripts/test-live-shard.mjs native-live-src-agents",
1607+
"command: node .release-harness/scripts/test-live-shard.mjs native-live-src-agents",
16081608
);
16091609
expect(workflow).toContain("suite_id: native-live-src-agents-zai-coding");
16101610
expect(workflow).toContain(

test/scripts/test-live-shard.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,7 @@ describe("scripts/test-live-shard", () => {
4848

4949
expect(allFiles.length).toBeGreaterThan(0);
5050
expect([...new Set(selectedFiles)].toSorted((a, b) => a.localeCompare(b))).toEqual(allFiles);
51-
expect(duplicateFiles).toEqual([
52-
"src/agents/zai.live.test.ts",
53-
"extensions/music-generation-providers.live.test.ts",
54-
]);
51+
expect(duplicateFiles).toEqual(["extensions/music-generation-providers.live.test.ts"]);
5552
expect(musicProviderFanout).toEqual([
5653
"native-live-extensions-media-music-google",
5754
"native-live-extensions-media-music-minimax",
@@ -91,6 +88,9 @@ describe("scripts/test-live-shard", () => {
9188
expect(selectLiveShardFiles("native-live-src-agents", allFiles)).toContain(
9289
"src/skills/workshop/experience-review.live.test.ts",
9390
);
91+
expect(selectLiveShardFiles("native-live-src-agents", allFiles)).not.toContain(
92+
"src/agents/zai.live.test.ts",
93+
);
9494
expect(selectLiveShardFiles("native-live-src-agents-zai-coding", allFiles)).toEqual([
9595
"src/agents/zai.live.test.ts",
9696
]);

0 commit comments

Comments
 (0)