[SPARK-57702][INFRA] Move scheduled CIs for 3.5 to branch-3.5#56783
[SPARK-57702][INFRA] Move scheduled CIs for 3.5 to branch-3.5#56783gaogaotiantian wants to merge 3 commits into
Conversation
Add a unified entry for all scheduled CIs for branch-3.5 (`branch35_scheduler.yml`). It uses `gh workflow` to trigger the self-contained build workflows on `branch-3.5`, and removes the per-build `build_branch35*.yml` files from `master`. Co-authored-by: Isaac
Add no-op placeholder `build_scala213.yml` and `build_python_3.9.yml` on `master` so the README build status badges (which resolve a workflow by its path on the default branch) render for `branch-3.5`. Neither build runs on `master`: Scala 2.13 is the default there, and master targets newer Python versions. The actual builds are defined in the same files on `branch-3.5`. Co-authored-by: Isaac
Co-authored-by: Isaac
|
@holdenk this PR will trigger scheduled CIs from master then use |
HyukjinKwon
left a comment
There was a problem hiding this comment.
0 blocking, 1 non-blocking, 0 nits.
Correct and consistent with the branch-4.x scheduler pattern — I verified that build_scala213.yml, build_python_3.9.yml, and build_main.yml all exist on branch-3.5 (so the gh workflow run --ref branch-3.5 triggers and the README badges resolve). One description/clarity follow-up.
Design / architecture (1)
- build_scala213.yml:20: description says these files are "removed," but they're renamed to no-op placeholders kept for badge resolution — worth documenting — see inline
PR description suggestions
- Correct: "removes the per-build
build_branch35*.ymlfiles" — they are renamed to no-op placeholders (build_scala213.yml/build_python_3.9.yml), not removed. - Document why the master placeholders are retained: a README badge resolves its workflow by path on the default branch, so a same-named file must exist on master for the
?branch=branch-3.5badge to render (the real build runs on branch-3.5).
| # | ||
|
|
||
| name: "Build (branch-3.5, Scala 2.13, JDK 8)" | ||
| # This is a placeholder. Scala 2.13 is the default on master, so there is no |
There was a problem hiding this comment.
Nice trick, and the comment here explains it well. One gap: the PR description says it "removes the per-build build_branch35*.yml files from master," but they're actually renamed to these no-op placeholders and deliberately kept — because a README badge resolves its workflow by path on the default branch, so the file must exist on master for the ?branch=branch-3.5 badge to render.
Worth stating that in the PR description too: a maintainer who reads "removed" might later delete these no-op files as dead code and silently break the branch-3.5 badges. (Verified build_scala213.yml / build_python_3.9.yml / build_main.yml all exist on branch-3.5, so the scheduler triggers and badges resolve correctly.)
What changes were proposed in this pull request?
Add a unified entry for all scheduled CIs for branch-3.5 (
branch35_scheduler.yml). It usesgh workflowto trigger the self-contained build workflows onbranch-3.5, and removes the per-buildbuild_branch35*.ymlfiles frommaster.This follows the same approach as SPARK-56990 (#56046) for
branch-4.x, SPARK-57327 (#56379) forbranch-4.1, and SPARK-57483 (#56530) forbranch-4.0. SPARK-57621 (#56679) already laid the ground onbranch-3.5by making the build workflows self-contained and dispatchable, so this PR only needs to change themasterscheduled tasks.The scheduler triggers the following targets on
branch-3.5(also exposed viaworkflow_dispatch):build_scala213,build_python_3.9. The cron schedule preserves the original0 11 */4 * *time and*/4frequency from thebuild_branch35*.ymlfiles (both builds shared0 11, as before).README.mdis updated so the branch-3.5 badges point at the self-contained workflows filtered by?branch=branch-3.5.Why are the changes needed?
This is part of decoupling our CIs. All
branch-3.5related CIs should only rely on files onbranch-3.5, with the exception of this new scheduler file which is needed onmasterto trigger scheduled tasks (scheduled workflows only fire from the default branch).Does this PR introduce any user-facing change?
No. CI only.
How was this patch tested?
These workflows can be triggered manually via
workflow_dispatchonce merged.Was this patch authored or co-authored using generative AI tooling?
Generated-by: Claude Code (Claude Opus 4.8)