mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-14 14:40:46 +00:00
fix(release): repair full validation gates
This commit is contained in:
@@ -390,7 +390,6 @@ jobs:
|
||||
|
||||
if [[ "$LIVE_MODELS_ONLY" != "true" ]]; then
|
||||
add_suite live-cache
|
||||
add_suite openai-ws-stream-live-e2e
|
||||
|
||||
add_profile_suite native-live-src-agents "stable full"
|
||||
add_profile_suite native-live-src-gateway-core "minimum stable full"
|
||||
@@ -531,7 +530,7 @@ jobs:
|
||||
|
||||
validate_special_e2e:
|
||||
needs: validate_selected_ref
|
||||
if: (inputs.include_repo_e2e || (inputs.include_live_suites && !inputs.live_models_only)) && (inputs.live_suite_filter == '' || inputs.live_suite_filter == 'openshell-e2e' || inputs.live_suite_filter == 'openai-ws-stream-live-e2e')
|
||||
if: inputs.include_repo_e2e && (inputs.live_suite_filter == '' || inputs.live_suite_filter == 'openshell-e2e')
|
||||
runs-on: blacksmith-8vcpu-ubuntu-2404
|
||||
timeout-minutes: ${{ matrix.timeout_minutes }}
|
||||
strategy:
|
||||
@@ -544,12 +543,6 @@ jobs:
|
||||
timeout_minutes: 120
|
||||
requires_repo_e2e: true
|
||||
requires_live_suites: false
|
||||
- suite_id: openai-ws-stream-live-e2e
|
||||
label: OpenAI WebSocket live E2E
|
||||
command: pnpm test:e2e src/agents/openai-ws-stream.e2e.test.ts
|
||||
timeout_minutes: 90
|
||||
requires_repo_e2e: false
|
||||
requires_live_suites: true
|
||||
env:
|
||||
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
||||
OPENCLAW_E2E_WORKERS: "1"
|
||||
@@ -583,9 +576,7 @@ jobs:
|
||||
run: |
|
||||
set -euo pipefail
|
||||
case "${{ matrix.suite_id }}" in
|
||||
openai-ws-stream-live-e2e)
|
||||
echo "OPENAI_LIVE_TEST=1" >> "$GITHUB_ENV"
|
||||
echo "OPENCLAW_LIVE_TEST=1" >> "$GITHUB_ENV"
|
||||
openshell-e2e)
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -595,11 +586,7 @@ jobs:
|
||||
run: |
|
||||
set -euo pipefail
|
||||
case "${{ matrix.suite_id }}" in
|
||||
openai-ws-stream-live-e2e)
|
||||
[[ -n "${OPENAI_API_KEY:-}" ]] || {
|
||||
echo "OPENAI_API_KEY is required for the OpenAI WebSocket live E2E suite." >&2
|
||||
exit 1
|
||||
}
|
||||
openshell-e2e)
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
@@ -145,10 +145,7 @@ final class OnboardingWizardModel {
|
||||
self.sessionId = res.sessionid
|
||||
self.status = wizardStatusString(res.status) ?? (res.done ? "done" : "running")
|
||||
self.errorMessage = res.error
|
||||
self.currentStep = decodeWizardStep(res.step)
|
||||
if self.currentStep == nil, res.step != nil {
|
||||
onboardingWizardLogger.error("wizard step decode failed")
|
||||
}
|
||||
self.currentStep = res.step
|
||||
if res.done { self.currentStep = nil }
|
||||
self.restartAttempts = 0
|
||||
}
|
||||
@@ -157,10 +154,7 @@ final class OnboardingWizardModel {
|
||||
let status = wizardStatusString(res.status)
|
||||
self.status = status ?? self.status
|
||||
self.errorMessage = res.error
|
||||
self.currentStep = decodeWizardStep(res.step)
|
||||
if self.currentStep == nil, res.step != nil {
|
||||
onboardingWizardLogger.error("wizard step decode failed")
|
||||
}
|
||||
self.currentStep = res.step
|
||||
if res.done { self.currentStep = nil }
|
||||
if res.done || status == "done" || status == "cancelled" || status == "error" {
|
||||
self.sessionId = nil
|
||||
|
||||
@@ -63,6 +63,8 @@ describe("transcodeAudioBufferToOpus", () => {
|
||||
"48000",
|
||||
"-ac",
|
||||
"1",
|
||||
"-f",
|
||||
"opus",
|
||||
capturedOutputPath,
|
||||
],
|
||||
{ timeoutMs: 1234 },
|
||||
|
||||
@@ -85,6 +85,8 @@ export async function transcodeAudioBufferToOpus(params: {
|
||||
String(params.sampleRateHz ?? DEFAULT_OPUS_SAMPLE_RATE_HZ),
|
||||
"-ac",
|
||||
String(params.channels ?? DEFAULT_OPUS_CHANNELS),
|
||||
"-f",
|
||||
"opus",
|
||||
outputPath,
|
||||
],
|
||||
{ timeoutMs: params.timeoutMs },
|
||||
|
||||
@@ -429,6 +429,13 @@ function filterManifestRegistryForInstalledIndex(params: {
|
||||
};
|
||||
}
|
||||
|
||||
function createPluginPlanningTestEnv(overrides: NodeJS.ProcessEnv = {}): NodeJS.ProcessEnv {
|
||||
return {
|
||||
OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY: "1",
|
||||
...overrides,
|
||||
};
|
||||
}
|
||||
|
||||
function useManifestRegistryFixture(
|
||||
registry: PluginManifestRegistry = createManifestRegistryFixture(),
|
||||
) {
|
||||
@@ -451,7 +458,7 @@ function expectStartupPluginIds(params: {
|
||||
? { activationSourceConfig: params.activationSourceConfig }
|
||||
: {}),
|
||||
workspaceDir: "/tmp",
|
||||
env: params.env ?? process.env,
|
||||
env: createPluginPlanningTestEnv(params.env),
|
||||
}),
|
||||
).toEqual(params.expected);
|
||||
expect(loadPluginManifestRegistry).toHaveBeenCalled();
|
||||
@@ -1156,18 +1163,18 @@ describe("resolveGatewayStartupPluginIds", () => {
|
||||
|
||||
expectStartupPluginIdsCase({
|
||||
config,
|
||||
env: {
|
||||
env: createPluginPlanningTestEnv({
|
||||
DEMO_CHANNEL_ANYTHING: "1",
|
||||
} as NodeJS.ProcessEnv,
|
||||
}),
|
||||
expected: ["demo-channel", "browser", "memory-core"],
|
||||
});
|
||||
expect(
|
||||
resolveConfiguredDeferredChannelPluginIds({
|
||||
config,
|
||||
workspaceDir: "/tmp",
|
||||
env: {
|
||||
env: createPluginPlanningTestEnv({
|
||||
DEMO_CHANNEL_ANYTHING: "1",
|
||||
} as NodeJS.ProcessEnv,
|
||||
}),
|
||||
}),
|
||||
).toStrictEqual([]);
|
||||
});
|
||||
@@ -1187,7 +1194,7 @@ describe("resolveGatewayStartupPluginIds", () => {
|
||||
},
|
||||
} as OpenClawConfig,
|
||||
workspaceDir: "/tmp",
|
||||
env: {},
|
||||
env: createPluginPlanningTestEnv(),
|
||||
}),
|
||||
).toEqual(["workspace-demo-channel-plugin"]);
|
||||
});
|
||||
@@ -1204,7 +1211,7 @@ describe("resolveGatewayStartupPluginIds", () => {
|
||||
allow: ["browser"],
|
||||
},
|
||||
} as OpenClawConfig,
|
||||
env: {},
|
||||
env: createPluginPlanningTestEnv(),
|
||||
expected: ["demo-channel", "browser"],
|
||||
});
|
||||
});
|
||||
@@ -1219,7 +1226,7 @@ describe("resolveGatewayStartupPluginIds", () => {
|
||||
},
|
||||
},
|
||||
} as OpenClawConfig,
|
||||
env: {},
|
||||
env: createPluginPlanningTestEnv(),
|
||||
expected: ["browser", "memory-core"],
|
||||
});
|
||||
});
|
||||
@@ -1235,9 +1242,9 @@ describe("resolveGatewayStartupPluginIds", () => {
|
||||
|
||||
expectStartupPluginIdsCase({
|
||||
config: {} as OpenClawConfig,
|
||||
env: {
|
||||
env: createPluginPlanningTestEnv({
|
||||
OPENCLAW_STATE_DIR: "/tmp/openclaw-with-persisted-demo-channel",
|
||||
} as NodeJS.ProcessEnv,
|
||||
}),
|
||||
expected: ["browser", "memory-core"],
|
||||
});
|
||||
});
|
||||
@@ -1260,9 +1267,9 @@ describe("resolveGatewayStartupPluginIds", () => {
|
||||
},
|
||||
} as OpenClawConfig,
|
||||
workspaceDir: "/tmp",
|
||||
env: {
|
||||
env: createPluginPlanningTestEnv({
|
||||
OPENCLAW_STATE_DIR: "/tmp/openclaw-with-persisted-demo-channel",
|
||||
} as NodeJS.ProcessEnv,
|
||||
}),
|
||||
}),
|
||||
).toStrictEqual([]);
|
||||
});
|
||||
@@ -1282,7 +1289,7 @@ describe("resolveGatewayStartupPluginIds", () => {
|
||||
},
|
||||
} as OpenClawConfig,
|
||||
workspaceDir: "/tmp",
|
||||
env: {},
|
||||
env: createPluginPlanningTestEnv(),
|
||||
});
|
||||
|
||||
expect(plan.channelPluginIds).toContain("demo-channel");
|
||||
@@ -1309,7 +1316,7 @@ describe("resolveGatewayStartupPluginIds", () => {
|
||||
},
|
||||
} as OpenClawConfig,
|
||||
workspaceDir: "/tmp",
|
||||
env: {},
|
||||
env: createPluginPlanningTestEnv(),
|
||||
}),
|
||||
).toStrictEqual([]);
|
||||
});
|
||||
|
||||
@@ -359,6 +359,8 @@ describe("package artifact reuse", () => {
|
||||
expect(workflow).toContain(
|
||||
"inputs.live_suite_filter == '' || inputs.live_suite_filter == matrix.suite_id",
|
||||
);
|
||||
expect(workflow).not.toContain("openai-ws-stream-live-e2e");
|
||||
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-zai");
|
||||
|
||||
Reference in New Issue
Block a user