Skip to content

Direct Backport Push wrongly skips when a backport stack is intentionally skipped #4628

@Yicong-Huang

Description

@Yicong-Huang

What happened?

direct-backport-push.yml's Discover direct backport targets step considers a backport target green only when every matrix child has conclusion === "success":

return targetJobs.length > 0 && targetJobs.every((job) => job.conclusion === "success");

After #4622, precheck skips build stacks based on PR labels (e.g., a PR without the frontend label skips the frontend stack). The backport caller propagates these toggles, so a legitimately skipped stack appears as conclusion: "skipped" on the corresponding backport (target) / frontend (...) job. The discovery filter then rejects the target and the push is silently skipped, even though the cherry-pick onto release/* would have applied cleanly.

The aggregator job in required-checks.yml already treats skipped as acceptable; the discovery filter should match.

How to reproduce?

  1. Land a PR with a release/* label whose label set causes precheck to skip at least one build stack (e.g., a PR without the frontend label).
  2. Observe the merge to main triggering Direct Backport Push.
  3. The discover job logs Skipping targets without a successful Backport run: release/... and push-backports is skipped.

Concrete example: run 25237976528 for the merge of #4622, where backport (release/v1.1.0-incubating) / frontend (...) was skipped and the push was a no-op.

Version

1.1.0-incubating (Pre-release/Master)

Commit Hash (Optional)

e0547e6

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions