fix(ci): restore Z.AI API Platform validation (#112171)

This commit is contained in:
Dallin Romney
2026-07-21 15:44:41 +09:00
committed by GitHub
parent f1d2565714
commit 8a03f414ce
6 changed files with 34 additions and 29 deletions

View File

@@ -748,6 +748,7 @@ jobs:
add_profile_suite native-live-src-gateway-profiles-opencode-go-smoke "stable"
add_profile_suite native-live-src-gateway-profiles-openrouter "full"
add_profile_suite native-live-src-gateway-profiles-xai "full"
add_profile_suite native-live-src-gateway-profiles-zai "full"
add_profile_suite native-live-src-gateway-backends "stable full"
add_profile_suite native-live-src-infra "stable full"
add_profile_suite native-live-test "stable full"
@@ -765,7 +766,7 @@ jobs:
add_profile_suite live-gateway-advisory-docker "full"
add_profile_suite live-gateway-advisory-docker-deepseek-fireworks "full"
add_profile_suite live-gateway-advisory-docker-opencode-openrouter "full"
add_profile_suite live-gateway-advisory-docker-xai "full"
add_profile_suite live-gateway-advisory-docker-xai-zai "full"
add_profile_suite live-cli-backend-docker "stable full"
add_profile_suite live-acp-bind-docker "stable full"
add_profile_suite live-codex-harness-docker "stable full"
@@ -828,17 +829,6 @@ jobs:
RELEASE_TEST_PROFILE: ${{ inputs.release_test_profile }}
run: node scripts/plan-release-workflow-matrix.mjs >> "$GITHUB_OUTPUT"
- name: Record temporary Z.AI API Platform omission
if: inputs.include_live_suites
shell: bash
run: |
{
echo
echo "### Temporary provider omission"
echo
echo "Z.AI API Platform validation is temporarily disabled while its CI account is unavailable. Z.AI Coding Plan validation remains enabled."
} >> "$GITHUB_STEP_SUMMARY"
validate_release_live_cache:
needs: validate_selected_ref
if: inputs.include_live_suites && !inputs.live_models_only && (inputs.live_suite_filter == '' || inputs.live_suite_filter == 'live-cache')
@@ -3158,6 +3148,13 @@ jobs:
profile_env_only: false
advisory: true
profiles: full
- suite_id: native-live-src-gateway-profiles-zai
label: Native live gateway profiles Z.ai
command: OPENCLAW_LIVE_GATEWAY_PROVIDERS=zai node .release-harness/scripts/test-live-shard.mjs native-live-src-gateway-profiles
timeout_minutes: 30
profile_env_only: false
advisory: true
profiles: full
- suite_id: native-live-src-gateway-backends
label: Native live gateway backends
command: OPENCLAW_LIVE_CODEX_HARNESS=1 OPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-key node .release-harness/scripts/test-live-shard.mjs native-live-src-gateway-backends
@@ -3415,10 +3412,10 @@ jobs:
profile_env_only: false
advisory: true
profiles: full
- suite_id: live-gateway-advisory-docker-xai
- suite_id: live-gateway-advisory-docker-xai-zai
suite_group: live-gateway-advisory-docker
label: Docker live gateway advisory xAI
command: OPENCLAW_LIVE_GATEWAY_PROVIDERS=xai OPENCLAW_LIVE_GATEWAY_MAX_MODELS=2 OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS=90000 OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS=180000 OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" timeout --foreground --kill-after=30s 35m bash .release-harness/scripts/test-live-gateway-models-docker.sh
label: Docker live gateway advisory xAI/Z.ai
command: OPENCLAW_LIVE_GATEWAY_PROVIDERS=xai,zai OPENCLAW_LIVE_GATEWAY_MAX_MODELS=2 OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS=90000 OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS=180000 OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" timeout --foreground --kill-after=30s 35m bash .release-harness/scripts/test-live-gateway-models-docker.sh
timeout_minutes: 40
profile_env_only: false
advisory: true

View File

@@ -129,6 +129,11 @@ const LIVE_MODEL_PROVIDERS = [
providers: "xai",
profiles: "full",
},
{
provider_label: "Z.ai",
providers: "zai",
profiles: "full",
},
{
provider_label: "Fireworks",
providers: "fireworks",

View File

@@ -44,7 +44,6 @@ const OPTIONAL_LIVE_SHARD_FILE_ENVS = new Map([
const SKIPPED_ASSERTION_STATUSES = new Set(["disabled", "pending", "skipped", "todo"]);
const QA_RUNTIME_LIVE_TEST = "extensions/qa-lab/src/matrix-channel-driver.lifecycle.live.test.ts";
const QA_RUNTIME_ARTIFACT = "dist/extensions/qa-lab/runtime-api.js";
const ZAI_LIVE_TEST_FILE = "src/agents/zai.live.test.ts";
/** Live-test shards included in release validation. */
export const RELEASE_LIVE_TEST_SHARDS = Object.freeze([
@@ -260,13 +259,12 @@ export function selectLiveShardFiles(shard, files = collectAllLiveTestFiles()) {
case "native-live-src-agents":
return files.filter(
(file) =>
file !== ZAI_LIVE_TEST_FILE &&
(file.startsWith("src/agents/") ||
file.startsWith("src/llm/") ||
file.startsWith("src/skills/")),
file.startsWith("src/agents/") ||
file.startsWith("src/llm/") ||
file.startsWith("src/skills/"),
);
case "native-live-src-agents-zai-coding":
return files.filter((file) => file === ZAI_LIVE_TEST_FILE);
return files.filter((file) => file === "src/agents/zai.live.test.ts");
case "native-live-src-gateway":
return files.filter(
(file) => file.startsWith("src/gateway/") || file.startsWith("src/system-agent/"),

View File

@@ -1752,7 +1752,7 @@ describe("package artifact reuse", () => {
expect(workflow).toContain(
'add_profile_suite live-gateway-advisory-docker-opencode-openrouter "full"',
);
expect(workflow).toContain('add_profile_suite live-gateway-advisory-docker-xai "full"');
expect(workflow).toContain('add_profile_suite live-gateway-advisory-docker-xai-zai "full"');
expect(workflow).toContain('add_profile_suite live-cli-backend-docker "stable full"');
expect(workflow).toContain('add_profile_suite live-subagent-announce-docker "stable full"');
expect(workflow).toContain(
@@ -1762,12 +1762,12 @@ describe("package artifact reuse", () => {
expect(workflow).not.toContain("src/agents/openai-ws-stream.e2e.test.ts");
expect(workflow).toContain("suite_id: live-gateway-advisory-docker-deepseek-fireworks");
expect(workflow).toContain("suite_id: live-gateway-advisory-docker-opencode-openrouter");
expect(workflow).toContain("suite_id: live-gateway-advisory-docker-xai");
expect(workflow).toContain("suite_id: live-gateway-advisory-docker-xai-zai");
expect(workflow).toContain("suite_id: live-subagent-announce-docker");
expect(workflow).toContain("suite_group: live-gateway-advisory-docker");
expect(workflow).toContain("OPENCLAW_LIVE_GATEWAY_PROVIDERS=deepseek,fireworks");
expect(workflow).toContain("OPENCLAW_LIVE_GATEWAY_PROVIDERS=opencode-go,openrouter");
expect(workflow).toContain("OPENCLAW_LIVE_GATEWAY_PROVIDERS=xai");
expect(workflow).toContain("OPENCLAW_LIVE_GATEWAY_PROVIDERS=xai,zai");
expect(workflow).toContain("inputs.live_suite_filter == matrix.suite_group");
expect(workflow).toContain("OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6");
expect(workflow).toContain("OPENCLAW_LIVE_CLI_BACKEND_AUTH=api-key");
@@ -1829,8 +1829,8 @@ describe("package artifact reuse", () => {
expect(workflow).toContain("suite_id: native-live-src-gateway-profiles-opencode-go");
expect(workflow).toContain("suite_id: native-live-src-gateway-profiles-openrouter");
expect(workflow).toContain("suite_id: native-live-src-gateway-profiles-xai");
expect(workflow).not.toContain("suite_id: native-live-src-gateway-profiles-zai");
expect(workflow).toContain("Z.AI API Platform validation is temporarily disabled");
expect(workflow).toContain("suite_id: native-live-src-gateway-profiles-zai");
expect(workflow).not.toContain("Z.AI API Platform validation is temporarily disabled");
expect(workflow).not.toContain(
"OPENCLAW_LIVE_GATEWAY_PROVIDERS=deepseek,opencode-go,openrouter,xai,zai",
);

View File

@@ -134,6 +134,7 @@ const PROFILE_EXPECTATIONS = [
"opencode-go",
"openrouter",
"xai",
"zai",
"fireworks",
],
},
@@ -249,6 +250,7 @@ describe("scripts/plan-release-workflow-matrix.mjs", () => {
"opencode-go",
"openrouter",
"xai",
"zai",
"fireworks",
]);
});
@@ -315,7 +317,7 @@ describe("scripts/plan-release-workflow-matrix.mjs", () => {
});
expect(plan.liveModels.count).toBe(0);
expect(plan.liveModels.omitted).toHaveLength(9);
expect(plan.liveModels.omitted).toHaveLength(10);
expect(plan.liveModels.omitted[0]?.reason).toBe(
"Docker live model matrix disabled by input selection",
);

View File

@@ -48,7 +48,10 @@ describe("scripts/test-live-shard", () => {
expect(allFiles.length).toBeGreaterThan(0);
expect([...new Set(selectedFiles)].toSorted((a, b) => a.localeCompare(b))).toEqual(allFiles);
expect(duplicateFiles).toEqual(["extensions/music-generation-providers.live.test.ts"]);
expect(duplicateFiles).toEqual([
"src/agents/zai.live.test.ts",
"extensions/music-generation-providers.live.test.ts",
]);
expect(musicProviderFanout).toEqual([
"native-live-extensions-media-music-google",
"native-live-extensions-media-music-minimax",
@@ -88,7 +91,7 @@ describe("scripts/test-live-shard", () => {
expect(selectLiveShardFiles("native-live-src-agents", allFiles)).toContain(
"src/skills/workshop/experience-review.live.test.ts",
);
expect(selectLiveShardFiles("native-live-src-agents", allFiles)).not.toContain(
expect(selectLiveShardFiles("native-live-src-agents", allFiles)).toContain(
"src/agents/zai.live.test.ts",
);
expect(selectLiveShardFiles("native-live-src-agents-zai-coding", allFiles)).toEqual([