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]