





















@@ -6,6 +6,7 @@ const LIVE_E2E_WORKFLOW = ".github/workflows/openclaw-live-and-e2e-checks-reusab
66const NPM_TELEGRAM_WORKFLOW = ".github/workflows/npm-telegram-beta-e2e.yml";
77const RELEASE_CHECKS_WORKFLOW = ".github/workflows/openclaw-release-checks.yml";
88const FULL_RELEASE_VALIDATION_WORKFLOW = ".github/workflows/full-release-validation.yml";
9+const QA_LIVE_TRANSPORTS_WORKFLOW = ".github/workflows/qa-live-transports-convex.yml";
9101011describe("package acceptance workflow", () => {
1112it("resolves candidate package sources before reusing Docker E2E lanes", () => {
@@ -138,6 +139,8 @@ describe("package artifact reuse", () => {
138139'OPENCLAW_LIVE_CLI_BACKEND_ARGS=["exec","--json","--color","never","--sandbox","danger-full-access","--skip-git-repo-check"]',
139140);
140141expect(workflow).toContain("bash .release-harness/scripts/ci-live-command-retry.sh");
142+expect(workflow).toMatch(/validate_repo_e2e:[\s\S]*?runs-on: blacksmith-8vcpu-ubuntu-2404/u);
143+expect(workflow).toMatch(/validate_special_e2e:[\s\S]*?runs-on: blacksmith-8vcpu-ubuntu-2404/u);
141144expect(workflow).toMatch(
142145/validate_live_provider_suites:[\s\S]*?runs-on: blacksmith-8vcpu-ubuntu-2404/u,
143146);
@@ -349,4 +352,41 @@ describe("package artifact reuse", () => {
349352expect(workflow).not.toContain("workflow_ref:");
350353expect(workflow).not.toContain("inputs.workflow_ref");
351354});
355+356+it("keeps release QA and repo E2E lanes off scarce 32-core runners", () => {
357+const releaseChecksWorkflow = readFileSync(RELEASE_CHECKS_WORKFLOW, "utf8");
358+const qaWorkflow = readFileSync(QA_LIVE_TRANSPORTS_WORKFLOW, "utf8");
359+360+for (const jobName of [
361+"qa_lab_parity_lane_release_checks",
362+"qa_lab_parity_report_release_checks",
363+"qa_live_matrix_release_checks",
364+"qa_live_telegram_release_checks",
365+]) {
366+expect(releaseChecksWorkflow).toMatch(
367+new RegExp(`${jobName}:[\\s\\S]*?runs-on: blacksmith-8vcpu-ubuntu-2404`, "u"),
368+);
369+}
370+371+for (const jobName of [
372+"run_mock_parity",
373+"run_live_matrix",
374+"run_live_matrix_sharded",
375+"run_live_telegram",
376+"run_live_discord",
377+]) {
378+expect(qaWorkflow).toMatch(
379+new RegExp(`${jobName}:[\\s\\S]*?runs-on: blacksmith-8vcpu-ubuntu-2404`, "u"),
380+);
381+}
382+});
383+384+it("summarizes queue time separately from execution time in full validation", () => {
385+const workflow = readFileSync(FULL_RELEASE_VALIDATION_WORKFLOW, "utf8");
386+387+expect(workflow).toContain("### Slowest jobs: ${label}");
388+expect(workflow).toContain("### Longest queues: ${label}");
389+expect(workflow).toContain("| Job | Result | Queue minutes | Run minutes |");
390+expect(workflow).toContain('gh run view "$run_id" --json createdAt,jobs');
391+});
352392});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。