mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 12:20:44 +00:00
test: narrow live Docker ACP changed gate
This commit is contained in:
@@ -19,6 +19,14 @@ import { resolveChangedTestTargetPlan } from "./test-projects.test-support.mjs";
|
||||
export const CHANGED_CHECK_VITEST_NO_OUTPUT_TIMEOUT_MS = "600000";
|
||||
const VITEST_NO_OUTPUT_TIMEOUT_ENV_KEY = "OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS";
|
||||
const VITEST_NO_OUTPUT_RETRY_ENV_KEY = "OPENCLAW_VITEST_NO_OUTPUT_RETRY";
|
||||
const LIVE_DOCKER_AUTH_SHELL_TARGETS = [
|
||||
"scripts/lib/live-docker-auth.sh",
|
||||
"scripts/test-live-acp-bind-docker.sh",
|
||||
"scripts/test-live-cli-backend-docker.sh",
|
||||
"scripts/test-live-codex-harness-docker.sh",
|
||||
"scripts/test-live-gateway-models-docker.sh",
|
||||
"scripts/test-live-models-docker.sh",
|
||||
];
|
||||
|
||||
export function createChangedCheckChildEnv(baseEnv = process.env) {
|
||||
const resolvedBaseEnv = resolveLocalHeavyCheckEnv(baseEnv);
|
||||
@@ -67,6 +75,15 @@ export function createChangedCheckPlan(result, options = {}) {
|
||||
commands.push({ name, args, ...(env ? { env } : {}) });
|
||||
}
|
||||
};
|
||||
const addCommand = (name, bin, args, env) => {
|
||||
if (
|
||||
!commands.some(
|
||||
(command) => command.name === name && command.bin === bin && sameArgs(command.args, args),
|
||||
)
|
||||
) {
|
||||
commands.push({ name, bin, args, ...(env ? { env } : {}) });
|
||||
}
|
||||
};
|
||||
const addTypecheck = (name, args) => add(name, args, createSparseTsgoSkipEnv(baseEnv));
|
||||
const addLint = (name, args) => add(name, args, baseEnv);
|
||||
|
||||
@@ -138,10 +155,17 @@ export function createChangedCheckPlan(result, options = {}) {
|
||||
if (lanes.core || lanes.coreTests) {
|
||||
addLint("lint core", ["lint:core"]);
|
||||
}
|
||||
if (
|
||||
lanes.liveDockerTooling &&
|
||||
result.paths.some((changedPath) => changedPath.startsWith("src/"))
|
||||
) {
|
||||
addTypecheck("typecheck core tests", ["tsgo:core:test"]);
|
||||
addLint("lint core", ["lint:core"]);
|
||||
}
|
||||
if (lanes.extensions || lanes.extensionTests) {
|
||||
addLint("lint extensions", ["lint:extensions"]);
|
||||
}
|
||||
if (lanes.tooling) {
|
||||
if (lanes.tooling || lanes.liveDockerTooling) {
|
||||
addLint("lint scripts", ["lint:scripts"]);
|
||||
}
|
||||
if (lanes.apps) {
|
||||
@@ -157,6 +181,21 @@ export function createChangedCheckPlan(result, options = {}) {
|
||||
add("pairing account guard", ["lint:auth:pairing-account-scope"]);
|
||||
}
|
||||
|
||||
if (lanes.liveDockerTooling) {
|
||||
addCommand("live Docker shell syntax", "bash", ["-n", ...LIVE_DOCKER_AUTH_SHELL_TARGETS]);
|
||||
addCommand("live Docker scheduler dry run", "node", ["scripts/test-docker-all.mjs"], {
|
||||
...baseEnv,
|
||||
OPENCLAW_DOCKER_ALL_DRY_RUN: "1",
|
||||
OPENCLAW_DOCKER_ALL_LIVE_MODE: "only",
|
||||
});
|
||||
add(
|
||||
"ACP bind unit tests",
|
||||
["test", "src/gateway/live-agent-probes.test.ts", "src/agents/acp-spawn.test.ts"],
|
||||
createChangedCheckVitestEnv(baseEnv),
|
||||
);
|
||||
add("ACPX extension tests", ["test:extension", "acpx"], createChangedCheckVitestEnv(baseEnv));
|
||||
}
|
||||
|
||||
const testPlan = resolveChangedTestTargetPlan(result.paths);
|
||||
const runExtensionTests = result.extensionImpactFromCore;
|
||||
const testTargets = runExtensionTests
|
||||
@@ -197,7 +236,7 @@ export async function runChangedCheck(result, options = {}) {
|
||||
|
||||
const timings = [];
|
||||
for (const command of plan.commands) {
|
||||
const status = await runPnpm(command, timings);
|
||||
const status = await runPlanCommand(command, timings);
|
||||
if (status !== 0) {
|
||||
printSummary(timings, options);
|
||||
return status;
|
||||
@@ -291,6 +330,13 @@ async function runPnpm(command, timings) {
|
||||
return await runCommand({ ...command, bin: "pnpm" }, timings);
|
||||
}
|
||||
|
||||
async function runPlanCommand(command, timings) {
|
||||
if (command.bin) {
|
||||
return await runCommand(command, timings);
|
||||
}
|
||||
return await runPnpm(command, timings);
|
||||
}
|
||||
|
||||
async function runCommand(command, timings) {
|
||||
const startedAt = performance.now();
|
||||
console.error(`\n[check:changed] ${command.name}`);
|
||||
@@ -338,6 +384,9 @@ function parseArgs(argv) {
|
||||
],
|
||||
{
|
||||
onUnhandledArg(arg, target) {
|
||||
if (arg === "--") {
|
||||
return "handled";
|
||||
}
|
||||
target.paths.push(normalizeChangedPath(arg));
|
||||
return "handled";
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user