This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch release/v1.1.0-incubating
in repository https://gitbox.apache.org/repos/asf/texera.git
The following commit(s) were added to refs/heads/release/v1.1.0-incubating by
this push:
new 7bf1a3992e feat(ci): skip non-frontend stacks on frontend-only PRs
(#4626)
7bf1a3992e is described below
commit 7bf1a3992e24bdc89433359b49b395fe0304d076
Author: Yicong Huang <[email protected]>
AuthorDate: Sat May 2 01:59:36 2026 +0000
feat(ci): skip non-frontend stacks on frontend-only PRs (#4626)
### 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) <[email protected]>
(backported from commit 1e996cd90bef0c7e0b8034ef16fc79c182a62d4b)
---
.github/workflows/required-checks.yml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/.github/workflows/required-checks.yml
b/.github/workflows/required-checks.yml
index 2f858cd951..d9100fc06c 100644
--- a/.github/workflows/required-checks.yml
+++ b/.github/workflows/required-checks.yml
@@ -107,10 +107,15 @@ jobs:
}
const SKIP_ONLY = new Set(["docs", "dev"]);
+ const FRONTEND_ONLY_ALLOWED = new Set(["frontend", "docs", "dev"]);
const onlySkippable =
eventName === "pull_request" &&
labels.length > 0 &&
labels.every((l) => SKIP_ONLY.has(l));
+ const frontendOnly =
+ eventName === "pull_request" &&
+ labels.includes("frontend") &&
+ labels.every((l) => FRONTEND_ONLY_ALLOWED.has(l));
let runFrontend = true;
let runScala = true;
@@ -120,6 +125,9 @@ jobs:
if (onlySkippable) {
runFrontend = runScala = runPython = runAgentService = false;
core.info("Labels are docs/dev only; skipping all build
stacks.");
+ } else if (frontendOnly) {
+ runScala = runPython = runAgentService = false;
+ core.info("Labels touch only frontend; skipping non-frontend
stacks.");
} else if (eventName === "pull_request" &&
!labels.includes("frontend")) {
runFrontend = false;
core.info("No frontend label; skipping frontend stack.");