From 06e3a09bd8a5163553a8465e05a4a20d6ebd4365 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Thu, 16 Jul 2026 11:56:00 +0100 Subject: [PATCH] fix(ci): preserve advisory release checks --- .github/workflows/full-release-validation.yml | 15 +++++++++++++++ test/scripts/package-acceptance-workflow.test.ts | 2 ++ 2 files changed, 17 insertions(+) diff --git a/.github/workflows/full-release-validation.yml b/.github/workflows/full-release-validation.yml index 482a67bc8211..eea727fdc0d2 100644 --- a/.github/workflows/full-release-validation.yml +++ b/.github/workflows/full-release-validation.yml @@ -927,6 +927,21 @@ jobs: fetch_child_jobs | jq -s '[.[] | select(.status == "completed" and .conclusion != "success" and .conclusion != "skipped")]' )" + if [[ "$workflow" == "openclaw-release-checks.yml" ]]; then + # These jobs are continue-on-error in the child workflow. Let its + # status-artifact verifier decide whether their evidence is usable. + failed_jobs_json="$( + jq '[.[] | select( + ((.name | startswith("Run QA Lab parity lane (")) + or .name == "Run QA Lab parity report" + or (.name | startswith("Run QA Lab runtime parity tier (")) + or .name == "Run QA Lab runtime parity lane" + or .name == "Run QA Lab live Discord lane" + or .name == "Run QA Lab live WhatsApp lane" + or .name == "Run QA Lab live Slack lane") + | not)]' <<< "$failed_jobs_json" + )" + fi if [[ "$workflow" == "openclaw-release-checks.yml" && "$RELEASE_PROFILE" == "beta" ]]; then # Beta treats live-provider suites as advisory (live_advisory in # openclaw-live-and-e2e-checks-reusable.yml); their failures must diff --git a/test/scripts/package-acceptance-workflow.test.ts b/test/scripts/package-acceptance-workflow.test.ts index 20c707f3c276..5cbfa4d372d4 100644 --- a/test/scripts/package-acceptance-workflow.test.ts +++ b/test/scripts/package-acceptance-workflow.test.ts @@ -2911,6 +2911,8 @@ describe("package artifact reuse", () => { "Verify release checks accepted Tideclaw alpha advisory lanes", "release_checks_advisory_only", "release_check_blocking_job", + 'or (.name | startswith("Run QA Lab runtime parity tier ("))', + 'or .name == "Run QA Lab live Discord lane"', "is a package-safety Tideclaw alpha release-check lane", '"Run package acceptance" | \\', '"Run package acceptance / "*)',