This is an automated email from the ASF dual-hosted git repository.
HeartSaVioR pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/master by this push:
new 35395613033e [SPARK-58538][INFRA] Add branch-4.3 CI scheduler and
release integration
35395613033e is described below
commit 35395613033ed46df2b0ad67efbddd17188fc532
Author: Jungtaek Lim <[email protected]>
AuthorDate: Wed Aug 5 04:31:05 2026 +0900
[SPARK-58538][INFRA] Add branch-4.3 CI scheduler and release integration
### What changes were proposed in this pull request?
Add the CI and release plumbing that `master` maintains for each active
release branch, for the newly cut `branch-4.3`:
- add `.github/workflows/branch43_scheduler.yml`, modelled on
`branch42_scheduler.yml`, dispatching the eight per-branch build workflows
against `--ref branch-4.3`;
- add `branch-4.3` to both branch lists in `publish_snapshot.yml` (the
`workflow_dispatch` input default and the strategy matrix default, which the
file marks as needing to stay in sync);
- add a `branch-4.3` badge row to `README.md`, following the release-branch
pattern (which includes `build_main.yml`, unlike the rolling `branch-4.x`).
Cron hours are staggered against the existing schedulers to spread runner
load: branch-4.3 uses 0, 1, 6, 8, 10, 14, 20 and 23 UTC.
`dev/create-release/release-util.sh` needs no change: it derives the latest
release branch by excluding `master` and `branch-4.x` and taking the highest
remaining, which already resolves to `branch-4.3`.
### Why are the changes needed?
Since we cut the branch for 4.3, we need to setup new CI schedule for this
branch.
### Does this PR introduce _any_ user-facing change?
No.
### How was this patch tested?
CI schedule will confirm.
### Was this patch authored or co-authored using generative AI tooling?
Generated-by: Claude Opus 5
Closes #57741 from HeartSaVioR/branch43-ci-infra.
Authored-by: Jungtaek Lim <[email protected]>
Signed-off-by: Jungtaek Lim <[email protected]>
---
.github/workflows/branch43_scheduler.yml | 114 +++++++++++++++++++++++++++++++
.github/workflows/publish_snapshot.yml | 4 +-
README.md | 9 +++
3 files changed, 125 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/branch43_scheduler.yml
b/.github/workflows/branch43_scheduler.yml
new file mode 100644
index 000000000000..85c0ab74a421
--- /dev/null
+++ b/.github/workflows/branch43_scheduler.yml
@@ -0,0 +1,114 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+name: "Branch-4.3 CI Scheduler"
+
+on:
+ schedule:
+ - cron: '0 0 */2 * *'
+ - cron: '0 1 */2 * *'
+ - cron: '0 6 */2 * *'
+ - cron: '0 8 */2 * *'
+ - cron: '0 10 */2 * *'
+ - cron: '0 14 */2 * *'
+ - cron: '0 20 */2 * *'
+ - cron: '0 23 */2 * *'
+ workflow_dispatch:
+ inputs:
+ target:
+ description: Target workflow to run
+ required: true
+ type: choice
+ default: all
+ options:
+ - all
+ - maven
+ - maven_java21
+ - java17
+ - java21
+ - java25
+ - non_ansi
+ - python_3.11
+ - python_3.14
+
+jobs:
+ schedule:
+ if: github.repository == 'apache/spark'
+ runs-on: ubuntu-latest
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ permissions:
+ actions: write
+ steps:
+ - name: Maven Build
+ if: >-
+ github.event.schedule == '0 10 */2 * *' ||
+ (github.event_name == 'workflow_dispatch' &&
+ (inputs.target == 'maven' || inputs.target == 'all'))
+ run: |
+ gh workflow run build_maven.yml --repo ${{ github.repository }}
--ref branch-4.3
+ - name: Maven Java 21 Build
+ if: >-
+ github.event.schedule == '0 14 */2 * *' ||
+ (github.event_name == 'workflow_dispatch' &&
+ (inputs.target == 'maven_java21' || inputs.target == 'all'))
+ run: |
+ gh workflow run build_maven_java21.yml --repo ${{ github.repository
}} --ref branch-4.3
+ - name: Java 17 Build
+ if: >-
+ github.event.schedule == '0 8 */2 * *' ||
+ (github.event_name == 'workflow_dispatch' &&
+ (inputs.target == 'java17' || inputs.target == 'all'))
+ run: |
+ gh workflow run build_java17.yml --repo ${{ github.repository }}
--ref branch-4.3
+ - name: Java 21 Build
+ if: >-
+ github.event.schedule == '0 1 */2 * *' ||
+ (github.event_name == 'workflow_dispatch' &&
+ (inputs.target == 'java21' || inputs.target == 'all'))
+ run: |
+ gh workflow run build_java21.yml --repo ${{ github.repository }}
--ref branch-4.3
+ - name: Java 25 Build
+ if: >-
+ github.event.schedule == '0 6 */2 * *' ||
+ (github.event_name == 'workflow_dispatch' &&
+ (inputs.target == 'java25' || inputs.target == 'all'))
+ run: |
+ gh workflow run build_java25.yml --repo ${{ github.repository }}
--ref branch-4.3
+ - name: Non-ANSI Build
+ if: >-
+ github.event.schedule == '0 0 */2 * *' ||
+ (github.event_name == 'workflow_dispatch' &&
+ (inputs.target == 'non_ansi' || inputs.target == 'all'))
+ run: |
+ gh workflow run build_non_ansi.yml --repo ${{ github.repository }}
--ref branch-4.3
+ - name: Python 3.11 Build
+ if: >-
+ github.event.schedule == '0 20 */2 * *' ||
+ (github.event_name == 'workflow_dispatch' &&
+ (inputs.target == 'python_3.11' || inputs.target == 'all'))
+ run: |
+ gh workflow run build_python_3.11.yml --repo ${{ github.repository
}} --ref branch-4.3
+ - name: Python 3.14 Build
+ if: >-
+ github.event.schedule == '0 23 */2 * *' ||
+ (github.event_name == 'workflow_dispatch' &&
+ (inputs.target == 'python_3.14' || inputs.target == 'all'))
+ run: |
+ gh workflow run build_python_3.14.yml --repo ${{ github.repository
}} --ref branch-4.3
diff --git a/.github/workflows/publish_snapshot.yml
b/.github/workflows/publish_snapshot.yml
index 224f3c3207c0..80f450ba7995 100644
--- a/.github/workflows/publish_snapshot.yml
+++ b/.github/workflows/publish_snapshot.yml
@@ -28,7 +28,7 @@ on:
description: 'list of branches to publish (JSON)'
required: true
# keep in sync with default value of strategy matrix 'branch'
- default: '["master", "branch-4.x", "branch-4.2", "branch-4.1",
"branch-4.0", "branch-3.5"]'
+ default: '["master", "branch-4.x", "branch-4.3", "branch-4.2",
"branch-4.1", "branch-4.0", "branch-3.5"]'
jobs:
publish-snapshot:
@@ -39,7 +39,7 @@ jobs:
max-parallel: 20
matrix:
# keep in sync with default value of workflow_dispatch input 'branch'
- branch: ${{ fromJSON( inputs.branch || '["master", "branch-4.x",
"branch-4.2", "branch-4.1", "branch-4.0", "branch-3.5"]' ) }}
+ branch: ${{ fromJSON( inputs.branch || '["master", "branch-4.x",
"branch-4.3", "branch-4.2", "branch-4.1", "branch-4.0", "branch-3.5"]' ) }}
steps:
- name: Checkout Spark repository
uses: actions/checkout@v6
diff --git a/README.md b/README.md
index 717822ef4203..3d79bf2d5da2 100644
--- a/README.md
+++ b/README.md
@@ -62,6 +62,15 @@ This README file only contains basic setup instructions.
| | [](https://github.com/apache/spark/actions/workflows/build_maven_java21.yml?query=branch%3Abranch-4.x)
|
| | [](https://github.com/apache/spark/actions/workflows/build_python_3.11.yml?query=branch%3Abranch-4.x)
|
| | [](https://github.com/apache/spark/actions/workflows/build_python_3.14.yml?query=branch%3Abranch-4.x)
|
+| branch-4.3 | [](https://github.com/apache/spark/actions/workflows/build_main.yml?query=branch%3Abranch-4.3)
|
+| | [](https://github.com/apache/spark/actions/workflows/build_java17.yml?query=branch%3Abranch-4.3)
|
+| | [](https://github.com/apache/spark/actions/workflows/build_java21.yml?query=branch%3Abranch-4.3)
|
+| | [](https://github.com/apache/spark/actions/workflows/build_java25.yml?query=branch%3Abranch-4.3)
|
+| | [](https://github.com/apache/spark/actions/workflows/build_non_ansi.yml?query=branch%3Abranch-4.3)
|
+| | [](https://github.com/apache/spark/actions/workflows/build_maven.yml?query=branch%3Abranch-4.3)
|
+| | [](https://github.com/apache/spark/actions/workflows/build_maven_java21.yml?query=branch%3Abranch-4.3)
|
+| | [](https://github.com/apache/spark/actions/workflows/build_python_3.11.yml?query=branch%3Abranch-4.3)
|
+| | [](https://github.com/apache/spark/actions/workflows/build_python_3.14.yml?query=branch%3Abranch-4.3)
|
| branch-4.2 | [](https://github.com/apache/spark/actions/workflows/build_main.yml?query=branch%3Abranch-4.2)
|
| | [](https://github.com/apache/spark/actions/workflows/build_java17.yml?query=branch%3Abranch-4.2)
|
| | [](https://github.com/apache/spark/actions/workflows/build_java21.yml?query=branch%3Abranch-4.2)
|
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]