mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-26 04:15:48 -06:00
fix(ci): finalize testbox sessions after setup failures
Ensure Testbox wrapper workflows finalize backend sessions even when setup fails, align the check timeout fallback with the documented 120-minute default, and guard the workflow invariants.
This commit is contained in:
@@ -261,6 +261,6 @@ jobs:
|
||||
|
||||
- name: Run Testbox
|
||||
uses: useblacksmith/run-testbox@3f60ff9ceb2c10c3feefa87dc0c6490cffae059d
|
||||
if: success()
|
||||
if: always()
|
||||
env:
|
||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
|
||||
|
||||
@@ -179,6 +179,6 @@ jobs:
|
||||
|
||||
- name: Run Testbox
|
||||
uses: useblacksmith/run-testbox@5ca05834db1d3813554d1dd109e5f2087a8d7cbc
|
||||
if: success()
|
||||
if: always()
|
||||
env:
|
||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
|
||||
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
contents: read
|
||||
name: "check"
|
||||
runs-on: blacksmith-32vcpu-ubuntu-2404
|
||||
timeout-minutes: ${{ fromJSON(inputs.timeout_minutes || '30') }}
|
||||
timeout-minutes: ${{ fromJSON(inputs.timeout_minutes || '120') }}
|
||||
steps:
|
||||
- name: Begin Testbox
|
||||
uses: useblacksmith/begin-testbox@233448af4bfdc6fca509a7f0974411ac6d8a8043
|
||||
@@ -168,6 +168,6 @@ jobs:
|
||||
|
||||
- name: Run Testbox
|
||||
uses: useblacksmith/run-testbox@3f60ff9ceb2c10c3feefa87dc0c6490cffae059d
|
||||
if: success()
|
||||
if: always()
|
||||
env:
|
||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
|
||||
|
||||
@@ -1254,17 +1254,30 @@ describe("package artifact reuse", () => {
|
||||
).toHaveLength(2);
|
||||
});
|
||||
|
||||
it("fails Testbox changed-check delegation when the remote command fails", () => {
|
||||
it("finalizes Testbox delegation even when setup or the remote command fails", () => {
|
||||
const workflow = readFileSync(CI_CHECK_TESTBOX_WORKFLOW, "utf8");
|
||||
const runTestboxStep = workflowJob(CI_CHECK_TESTBOX_WORKFLOW, "check").steps?.find(
|
||||
(step) => step.name === "Run Testbox",
|
||||
const checkTestboxJob = workflowJob(CI_CHECK_TESTBOX_WORKFLOW, "check");
|
||||
const runTestboxStep = workflowStep(checkTestboxJob, "Run Testbox");
|
||||
const runArmTestboxStep = workflowStep(
|
||||
workflowJob(CI_CHECK_ARM_TESTBOX_WORKFLOW, "check-arm"),
|
||||
"Run Testbox",
|
||||
);
|
||||
const runBuildArtifactsTestboxStep = workflowStep(
|
||||
workflowJob(CI_BUILD_ARTIFACTS_TESTBOX_WORKFLOW, "build-artifacts"),
|
||||
"Run Testbox",
|
||||
);
|
||||
|
||||
expect(workflow).toContain('PNPM_CONFIG_STORE_DIR: "/tmp/openclaw-pnpm-store"');
|
||||
expect(workflow).not.toContain("PNPM_CONFIG_MODULES_DIR");
|
||||
expect(workflow).not.toContain("PNPM_CONFIG_VIRTUAL_STORE_DIR");
|
||||
expect(runTestboxStep?.uses).toContain("useblacksmith/run-testbox@");
|
||||
expect(runTestboxStep?.["continue-on-error"]).toBeUndefined();
|
||||
expect(checkTestboxJob["timeout-minutes"]).toBe(
|
||||
"${{ fromJSON(inputs.timeout_minutes || '120') }}",
|
||||
);
|
||||
expect(runTestboxStep.uses).toContain("useblacksmith/run-testbox@");
|
||||
expect(runTestboxStep.if).toBe("always()");
|
||||
expect(runArmTestboxStep.if).toBe("always()");
|
||||
expect(runBuildArtifactsTestboxStep.if).toBe("always()");
|
||||
expect(runTestboxStep["continue-on-error"]).toBeUndefined();
|
||||
});
|
||||
|
||||
it("allows the Telegram lane to run from reusable package acceptance artifacts", () => {
|
||||
|
||||
Reference in New Issue
Block a user