comphead opened a new pull request, #5784:
URL: https://github.com/apache/datafusion-comet/pull/5784

   ## Which issue does this PR close?
   
   Closes #5007.
   
   ## Rationale for this change
   
   `ci.yml` fires on `pull_request.types: [labeled]`, and GitHub cannot filter 
that trigger by label name. `preflight` guarded itself with an `if:` on the 
four gating labels, so any other label started a run in which `Preflight`, 
`Detect changes` and all 12 heavy jobs reported `skipped`.
   
   A job held back by `if:` still publishes a check run under its own name, and 
the newest check run for a name is what the merge box, `gh pr checks` and 
required-status-check evaluation read. An unrelated label therefore overwrote 
the commit run's real `Preflight` verdict with `skipped`. Of the 170 open PRs 
today, 28 report `Preflight: skipped` as their latest verdict, and 14 of those 
had an earlier `success` that is no longer reachable. #5721 is one example: 
green on 2026-09-05, and now every CI row reads skipped.
   
   The same `if:` chain had a second problem. A *gating* label re-ran the whole 
pipeline instead of just the job it gates. Run 
[34126169891](https://github.com/apache/datafusion-comet/actions/runs/34126169891)
 (`run-iceberg-tests` on #5759) rebuilt Linux, macOS, Spark 3.5, Spark 4.1 and 
all four Iceberg jobs at a commit that had just been tested.
   
   ## What changes are included in this PR?
   
   - `preflight` loses its `if:` guard and runs on every event, so `Preflight` 
always reports a real verdict. Cost is about a minute of `ubuntu-slim` per 
label event.
   - Each heavy job now excludes `labeled` events unless the label just added 
is the one it gates, so applying a label no longer duplicates a pipeline.
   - `.github/workflows/README.md`: corrected five stale rows in "What runs 
when", added the missing `iceberg_1_11`, redrew the diagram, and added a "Label 
events" section recording why `preflight` must stay unguarded.
   
   Not addressed here: a non-gating label still starts a run, so the bare 
caller names (`PR Build (Linux)`, ...) still publish `skipped` rows. Those 
names never carry a passing verdict anyway, because a reusable workflow that 
runs publishes only its child jobs. Removing them needs the label trigger split 
into its own workflow.
   
   ## How are these changes tested?
   
   `actionlint --shellcheck=off` and `prettier --check "**/*.md"` pass.
   
   The `if:` expressions were extracted from the finished YAML and evaluated 
against every event scenario:
   
   | scenario                                                | `preflight` | 
always-on heavy | label-gated heavy                |
   | ------------------------------------------------------- | ----------- | 
--------------- | -------------------------------- |
   | push to main                                            | run         | 
run             | run                              |
   | `workflow_dispatch`                                     | run         | 
run             | run                              |
   | PR opened / synchronize                                 | run         | 
run             | only if the PR carries the label |
   | label `performance`                                     | run         | 
skip            | skip                             |
   | label `performance`, PR already has `run-iceberg-tests` | run         | 
skip            | skip                             |
   | label `run-iceberg-tests`                               | run         | 
skip            | `iceberg_1_8/1_9/1_10` only      |
   | label `run-spark-3.4-tests`                             | run         | 
skip            | `spark_3_4` only                 |
   
   push, dispatch, opened and synchronize behave exactly as before.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to