goutamadwant opened a new pull request, #12467:
URL: https://github.com/apache/seatunnel/pull/12467

   ### Purpose of this pull request
   
   `backend.yml` is a reusable workflow with one top-level concurrency group:
   
   ```yaml
   concurrency:
     group: backend-${{ github.event.pull_request.number || github.ref }}
     cancel-in-progress: true
   ```
   
   It is called by `build_main.yml` (push) and by `schedule_backend.yml` (the 
nightly, `TEST_IN_PR=false`). Both callers run on `refs/heads/dev`, so both 
resolve to `backend-refs/heads/dev`, and whichever run starts later cancels the 
other. The nightly's own `cancel-in-progress: false` in `schedule_backend.yml` 
does not help, because the group inside the called workflow is shared.
   
   **Before** (from `gh run list --workflow schedule_backend.yml` and 
`--workflow build_main.yml --branch dev`, 2026-08-22 to 2026-09-24):
   
   - 10 nightly runs were cancelled a few seconds after a dev push build 
started. Examples:
     - 
[35886457185](https://github.com/apache/seatunnel/actions/runs/35886457185) 
started 16:06:48 and was cancelled 16:06:54, by push build 
[35886465482](https://github.com/apache/seatunnel/actions/runs/35886465482) 
created 16:06:52.
     - 
[35751822291](https://github.com/apache/seatunnel/actions/runs/35751822291) was 
cancelled at 16:59:57, three seconds after push build 
[35757774130](https://github.com/apache/seatunnel/actions/runs/35757774130) was 
created.
     - 
[35623409860](https://github.com/apache/seatunnel/actions/runs/35623409860) was 
cancelled at 16:23:43, four seconds after push build 
[35625308814](https://github.com/apache/seatunnel/actions/runs/35625308814) was 
created.
   - 17 dev push builds were cancelled within about a minute of the nightly 
starting, with no newer push in between. For example, 
[35744532059](https://github.com/apache/seatunnel/actions/runs/35744532059) ran 
from 15:02 and was cancelled at 16:06:04, four seconds after nightly 
[35751822291](https://github.com/apache/seatunnel/actions/runs/35751822291) 
started.
   - The last 40 nightly runs have no success (16 cancelled, 24 failure).
   
   **After:** the group also includes `github.event_name`, so the two callers 
get separate groups:
   
   - push builds of `dev`: `backend-push-refs/heads/dev`
   - nightly: `backend-schedule-refs/heads/dev`
   
   Push builds still cancel older push builds of the same branch, as they do 
today. A nightly no longer cancels a push build, and a push no longer cancels 
the nightly. In the reusable workflow, `github` is the caller's context, so 
`github.event_name` is `push` or `schedule` here.
   
   This helps PR authors indirectly. `dev` gets full post-merge and nightly 
runs that can finish, so a regression or new flake shows up there first, 
instead of first appearing as an unexplained red build on unrelated PRs.
   
   ### Does this PR introduce _any_ user-facing change?
   
   No. CI only.
   
   ### How was this patch tested?
   
   - `actionlint` 1.7.7 on `backend.yml`: no findings. YAML parsed with PyYAML.
   - The workflow change does not trigger the connector or engine matrix on a 
fork push (`.github/workflows/` is lightweight in 
`tools/update_modules_check/ci_scope.py`).
   - The fork run of this branch only shows that the workflow still starts and 
routes as before. A fork cannot reproduce the push/schedule overlap. The fix 
shows up on `dev`: after merge, the next nightly that overlaps a merge should 
run to completion, and neither run should be cancelled.
   
   Not changed here: nightly jobs also hit their `timeout-minutes`. With 
`TEST_IN_PR=false`, every engine container runs (10 instead of 7). Examples: 
`kafka-connector-it` at 210 min, `all-connectors-it-1/3/4` at 150, and 
`jdbc-connectors-it-part-1` and `mysql-cdc-connector-it` at 120. Those same 
jobs take 106–187 min on dev push builds. In nightly 
[36025021304](https://github.com/apache/seatunnel/actions/runs/36025021304), 23 
jobs ended at their timeout. Sizing those budgets needs measured nightly 
durations, which only become available once the nightly stops being cancelled. 
I would propose that separately.
   
   ### Check list
   
   * [ ] If any new Jar binary package adding in your PR, please add License 
Notice according
     [New License 
Guide](https://github.com/apache/seatunnel/blob/dev/docs/en/developer/new-license.md)
   * [ ] If necessary, please update the documentation to describe the new 
feature. https://github.com/apache/seatunnel/tree/dev/docs
   * [ ] If necessary, please update `incompatible-changes.md` to describe the 
incompatibility caused by this PR.
   * [ ] If you are contributing the connector code, please check that the 
following files are updated:
     1. Update 
[plugin-mapping.properties](https://github.com/apache/seatunnel/blob/dev/plugin-mapping.properties)
 and add new connector information in it
     2. Update the pom file of 
[seatunnel-dist](https://github.com/apache/seatunnel/blob/dev/seatunnel-dist/pom.xml)
     3. Add ci label in 
[label-scope-conf](https://github.com/apache/seatunnel/blob/dev/.github/workflows/labeler/label-scope-conf.yml)
     4. Add e2e testcase in 
[seatunnel-e2e](https://github.com/apache/seatunnel/tree/dev/seatunnel-e2e/seatunnel-connector-v2-e2e/)
     5. Update connector 
[plugin_config](https://github.com/apache/seatunnel/blob/dev/config/plugin_config)
   


-- 
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]

Reply via email to