From 814618b0b6fdc9ae9f334972ed103dfc2c783459 Mon Sep 17 00:00:00 2001 From: Yicong Huang <17627829+Yicong-Huang@users.noreply.github.com> Date: Fri, 1 May 2026 17:04:44 -0700 Subject: [PATCH] fix(ci): treat skipped backport jobs as green in Direct Backport Push After #4622 the precheck step legitimately skips build stacks based on PR labels (e.g., a PR without the frontend label skips frontend). The backport caller propagates these toggles, so the corresponding backport (target) / frontend (...) job ends with conclusion=skipped. The discovery filter required every matching job to be success, so those legitimately-skipped jobs caused the whole target to be classified as not-green and push-backports was silently skipped. Match the Required Checks aggregator's logic by accepting both success and skipped. Closes #4628 Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/direct-backport-push.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/direct-backport-push.yml b/.github/workflows/direct-backport-push.yml index c291fc18879..4ec64836452 100644 --- a/.github/workflows/direct-backport-push.yml +++ b/.github/workflows/direct-backport-push.yml @@ -156,7 +156,14 @@ jobs: greenTargets = requestedTargets.filter((target) => { const prefix = `backport (${target}) / `; const targetJobs = allJobs.filter((job) => job.name.startsWith(prefix)); - return targetJobs.length > 0 && targetJobs.every((job) => job.conclusion === "success"); + // Treat skipped as green: precheck legitimately skips stacks + // based on PR labels, matching the Required Checks aggregator. + return ( + targetJobs.length > 0 && + targetJobs.every( + (job) => job.conclusion === "success" || job.conclusion === "skipped" + ) + ); }); }