Skip to content

Optional CI: skip irrelevant build stacks based on PR labels #4627

@Yicong-Huang

Description

@Yicong-Huang

Task Summary

Umbrella for the "optional CI" line of work: make the Build workflow's main stacks (frontend, scala, python, agent-service) and the per-target backport matrix run only for the stacks a PR actually touches, driven by the labels applied by the Pull Request Labeler.

Motivation

Today every PR pays the full CI matrix (frontend × 3 OS, scala, python × 4 versions, agent-service × 2 OS, plus a backport matrix per release/* label). Pure frontend changes pay the scala/python tax; docs-only PRs wait on sbt; release-labelled docs PRs spawn an entire backport matrix that builds nothing relevant. The labels the Pull Request Labeler already produces are a near-perfect signal for what each PR actually needs to verify.

Future candidates (open as new sub-issues when prioritized)

  • Symmetric rules for python / engine / service only PRs.
  • Skipping individual matrix combinations (e.g. only running frontend on ubuntu-latest for non-frontend PRs that still touch shared infra).
  • Treating ci / dependencies labels explicitly (currently they fall into the catch-all "run everything" branch).

Priority

P2 – Medium

Task Type

  • Code Implementation
  • DevOps / Deployment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions