



















@@ -212,6 +212,26 @@ async function runForeground(label, command, env) {
212212}
213213}
214214215+async function runForegroundGroup(entries, env) {
216+const results = await Promise.allSettled(
217+entries.map(async ([label, command]) => {
218+await runForeground(label, command, env);
219+}),
220+);
221+const failures = results
222+.map((result, index) => ({ result, entry: entries[index] }))
223+.filter(({ result }) => result.status === "rejected");
224+if (failures.length > 0) {
225+throw new Error(
226+failures
227+.map(
228+({ result, entry }) => `${entry[0]}: ${result.reason?.message ?? String(result.reason)}`,
229+)
230+.join("\n"),
231+);
232+}
233+}
234+215235async function prepareBundledChannelPackage(baseEnv, logDir) {
216236if (baseEnv.OPENCLAW_BUNDLED_CHANNEL_PACKAGE_TGZ) {
217237console.log(`==> Bundled channel package: ${baseEnv.OPENCLAW_BUNDLED_CHANNEL_PACKAGE_TGZ}`);
@@ -427,10 +447,14 @@ async function main() {
427447console.log(`==> Fail fast: ${failFast ? "yes" : "no"}`);
428448console.log(`==> Live-test bundled plugin deps: ${baseEnv.OPENCLAW_DOCKER_BUILD_EXTENSIONS}`);
429449430-await runForeground("Build shared live-test image once", "pnpm test:docker:live-build", baseEnv);
431-await runForeground(
432-`Build shared Docker E2E image once: ${baseEnv.OPENCLAW_DOCKER_E2E_IMAGE}`,
433-"pnpm test:docker:e2e-build",
450+await runForegroundGroup(
451+[
452+["Build shared live-test image once", "pnpm test:docker:live-build"],
453+[
454+`Build shared Docker E2E image once: ${baseEnv.OPENCLAW_DOCKER_E2E_IMAGE}`,
455+"pnpm test:docker:e2e-build",
456+],
457+],
434458baseEnv,
435459);
436460await prepareBundledChannelPackage(baseEnv, logDir);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。