Skip to content

feat(ci): skip non-frontend stacks on frontend-only PRs#4626

Merged
Yicong-Huang merged 4 commits into
apache:mainfrom
Yicong-Huang:feat/skip-non-frontend-on-frontend-only-pr
May 2, 2026
Merged

feat(ci): skip non-frontend stacks on frontend-only PRs#4626
Yicong-Huang merged 4 commits into
apache:mainfrom
Yicong-Huang:feat/skip-non-frontend-on-frontend-only-pr

Conversation

@Yicong-Huang
Copy link
Copy Markdown
Contributor

What changes were proposed in this PR?

Skip the non-frontend stacks (scala, python, agent-service) when a PR's labels are a subset of {frontend, docs, dev} and frontend is present. Mirror of the existing "skip frontend if no frontend label" rule from #4622.

Updated precheck decision table:

PR labels frontend scala python agent-service
only docs and/or dev skip skip skip skip
frontend (with optional docs / dev) run skip skip skip
no frontend label skip run run run
any other combination run run run run

The backport matrix automatically inherits the same skip decisions through the existing run_* plumbing in required-checks.yml.

Any related issues, documentation, discussions?

Closes #4625. Builds on #4622 (this PR is stacked on feat/label-based-stack-routing).

How was this PR tested?

To exercise after merge: open a frontend-only PR (only frontend/** files, labels: just frontend); precheck should set run_frontend=true and the other three to false. Open a docs-only PR for the all-skip path; open a python-only PR for the existing "skip frontend" path.

Was this PR authored or co-authored using generative AI tooling?

Generated-by: Claude Opus 4.7

@github-actions github-actions Bot added feature ci changes related to CI labels May 1, 2026
@Yicong-Huang Yicong-Huang added the release/v1.1.0-incubating back porting to release/v1.1.0-incubating label May 1, 2026
Mirror of the existing "skip frontend if no `frontend` label" rule.
When the PR's labels are a subset of {frontend, docs, dev} and the
`frontend` label is present, skip scala / python / agent-service so
a pure frontend change does not pay the ~30 minutes for stacks it
cannot affect.

Decision table:

| labels                                     | frontend | scala | python | agent-service |
| ------------------------------------------ | -------- | ----- | ------ | ------------- |
| only docs / dev                            | skip     | skip  | skip   | skip          |
| frontend (with optional docs/dev)          | run      | skip  | skip   | skip          |
| no frontend label                          | skip     | run   | run    | run           |
| any other combination                      | run      | run   | run    | run           |

Closes apache#4625

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Yicong-Huang Yicong-Huang force-pushed the feat/skip-non-frontend-on-frontend-only-pr branch from 50a23f6 to 5c1e571 Compare May 1, 2026 23:56
@Yicong-Huang Yicong-Huang requested a review from aglinxinyuan May 2, 2026 01:07
Copy link
Copy Markdown
Contributor

@aglinxinyuan aglinxinyuan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@Yicong-Huang Yicong-Huang enabled auto-merge (squash) May 2, 2026 01:28
@Yicong-Huang Yicong-Huang disabled auto-merge May 2, 2026 01:39
@Yicong-Huang Yicong-Huang merged commit 1e996cd into apache:main May 2, 2026
22 checks passed
github-actions Bot pushed a commit that referenced this pull request May 2, 2026
### What changes were proposed in this PR?

Skip the non-frontend stacks (`scala`, `python`, `agent-service`) when a
PR's labels are a subset of `{frontend, docs, dev}` and `frontend` is
present. Mirror of the existing "skip frontend if no `frontend` label"
rule from #4622.

Updated `precheck` decision table:

| PR labels | frontend | scala | python | agent-service |
|---|---|---|---|---|
| only `docs` and/or `dev` | skip | skip | skip | skip |
| `frontend` (with optional `docs` / `dev`) | **run** | **skip** |
**skip** | **skip** |
| no `frontend` label | skip | run | run | run |
| any other combination | run | run | run | run |

The backport matrix automatically inherits the same skip decisions
through the existing `run_*` plumbing in `required-checks.yml`.

### Any related issues, documentation, discussions?

Closes #4625. Builds on #4622 (this PR is stacked on
`feat/label-based-stack-routing`).

### How was this PR tested?

To exercise after merge: open a frontend-only PR (only `frontend/**`
files, labels: just `frontend`); precheck should set `run_frontend=true`
and the other three to `false`. Open a docs-only PR for the all-skip
path; open a python-only PR for the existing "skip frontend" path.

### Was this PR authored or co-authored using generative AI tooling?

Generated-by: Claude Opus 4.7

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

(backported from commit 1e996cd)
SarahAsad23 pushed a commit to SarahAsad23/texera that referenced this pull request May 4, 2026
### What changes were proposed in this PR?

Skip the non-frontend stacks (`scala`, `python`, `agent-service`) when a
PR's labels are a subset of `{frontend, docs, dev}` and `frontend` is
present. Mirror of the existing "skip frontend if no `frontend` label"
rule from apache#4622.

Updated `precheck` decision table:

| PR labels | frontend | scala | python | agent-service |
|---|---|---|---|---|
| only `docs` and/or `dev` | skip | skip | skip | skip |
| `frontend` (with optional `docs` / `dev`) | **run** | **skip** |
**skip** | **skip** |
| no `frontend` label | skip | run | run | run |
| any other combination | run | run | run | run |

The backport matrix automatically inherits the same skip decisions
through the existing `run_*` plumbing in `required-checks.yml`.

### Any related issues, documentation, discussions?

Closes apache#4625. Builds on apache#4622 (this PR is stacked on
`feat/label-based-stack-routing`).

### How was this PR tested?

To exercise after merge: open a frontend-only PR (only `frontend/**`
files, labels: just `frontend`); precheck should set `run_frontend=true`
and the other three to `false`. Open a docs-only PR for the all-skip
path; open a python-only PR for the existing "skip frontend" path.

### Was this PR authored or co-authored using generative AI tooling?

Generated-by: Claude Opus 4.7

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci changes related to CI feature release/v1.1.0-incubating back porting to release/v1.1.0-incubating

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Skip non-frontend stacks on frontend-only PRs

2 participants