This is an automated email from the ASF dual-hosted git repository.

gaogaotiantian 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 0713f23d2e3c [SPARK-57702][INFRA] Move scheduled CIs for 3.5 to 
branch-3.5
0713f23d2e3c is described below

commit 0713f23d2e3c0218ec064d173f1e41c96534e265
Author: Tian Gao <[email protected]>
AuthorDate: Mon Jun 29 13:28:15 2026 -0700

    [SPARK-57702][INFRA] Move scheduled CIs for 3.5 to branch-3.5
    
    ### What changes were proposed in this pull request?
    
    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`.
    
    This follows the same approach as SPARK-56990 (#56046) for `branch-4.x`, 
SPARK-57327 (#56379) for `branch-4.1`, and SPARK-57483 (#56530) for 
`branch-4.0`. SPARK-57621 (#56679) already laid the ground on `branch-3.5` by 
making the build workflows self-contained and dispatchable, so this PR only 
needs to change the `master` scheduled tasks.
    
    The scheduler triggers the following targets on `branch-3.5` (also exposed 
via `workflow_dispatch`): `build_scala213`, `build_python_3.9`. The cron 
schedule preserves the original `0 11 */4 * *` time and `*/4` frequency from 
the `build_branch35*.yml` files (both builds shared `0 11`, as before).
    
    `README.md` is 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.5` related CIs should 
only rely on files on `branch-3.5`, with the exception of this new scheduler 
file which is needed on `master` to 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_dispatch` once 
merged.
    
    ### Was this patch authored or co-authored using generative AI tooling?
    
    Generated-by: Claude Code (Claude Opus 4.8)
    
    Closes #56783 from gaogaotiantian/branch35-scheduler.
    
    Authored-by: Tian Gao <[email protected]>
    Signed-off-by: Tian Gao <[email protected]>
---
 .github/workflows/branch35_scheduler.yml           | 59 ++++++++++++++++++++++
 ...ld_branch35_python.yml => build_python_3.9.yml} | 34 +++++--------
 .../{build_branch35.yml => build_scala213.yml}     | 41 +++++----------
 README.md                                          |  5 +-
 4 files changed, 87 insertions(+), 52 deletions(-)

diff --git a/.github/workflows/branch35_scheduler.yml 
b/.github/workflows/branch35_scheduler.yml
new file mode 100644
index 000000000000..f0dbbdbf5041
--- /dev/null
+++ b/.github/workflows/branch35_scheduler.yml
@@ -0,0 +1,59 @@
+#
+# 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-3.5 CI Scheduler"
+
+on:
+  schedule:
+    - cron: '0 11 */4 * *'
+  workflow_dispatch:
+    inputs:
+      target:
+        description: Target workflow to run
+        required: true
+        type: choice
+        default: all
+        options:
+          - all
+          - scala213
+          - python_3.9
+
+jobs:
+  schedule:
+    if: github.repository == 'apache/spark'
+    runs-on: ubuntu-latest
+    env:
+      GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+    permissions:
+      actions: write
+    steps:
+      - name: Scala 2.13 Build
+        if: >-
+          github.event.schedule == '0 11 */4 * *' ||
+          (github.event_name == 'workflow_dispatch' &&
+            (inputs.target == 'scala213' || inputs.target == 'all'))
+        run: |
+          gh workflow run build_scala213.yml --repo ${{ github.repository }} 
--ref branch-3.5
+      - name: Python 3.9 Build
+        if: >-
+          github.event.schedule == '0 11 */4 * *' ||
+          (github.event_name == 'workflow_dispatch' &&
+            (inputs.target == 'python_3.9' || inputs.target == 'all'))
+        run: |
+          gh workflow run build_python_3.9.yml --repo ${{ github.repository }} 
--ref branch-3.5
diff --git a/.github/workflows/build_branch35_python.yml 
b/.github/workflows/build_python_3.9.yml
similarity index 59%
rename from .github/workflows/build_branch35_python.yml
rename to .github/workflows/build_python_3.9.yml
index 09d4e1d4ebd7..80e3ea0b6323 100644
--- a/.github/workflows/build_branch35_python.yml
+++ b/.github/workflows/build_python_3.9.yml
@@ -17,31 +17,21 @@
 # under the License.
 #
 
-name: "Build / Python-only (branch-3.5)"
+# This is a placeholder. Python 3.9 is not built on master, which targets newer
+# Python versions. The file exists here only so that the README build status
+# badge, which resolves a workflow by its path on the default branch, renders
+# for the branches that still run it (e.g. branch-3.5). The actual build is
+# defined in the same file on those branches.
+
+name: "Build / Python-only (Python 3.9)"
 
 on:
-  schedule:
-    - cron: '0 11 */4 * *'
   workflow_dispatch:
 
 jobs:
-  run-build:
-    permissions:
-      packages: write
-    name: Run
-    uses: ./.github/workflows/build_and_test.yml
+  noop:
     if: github.repository == 'apache/spark'
-    with:
-      java: 8
-      branch: branch-3.5
-      hadoop: hadoop3
-      envs: >-
-        {
-          "PYSPARK_IMAGE_TO_TEST": "",
-          "PYTHON_TO_TEST": ""
-        }
-      jobs: >-
-        {
-          "pyspark": "true",
-          "pyspark-pandas": "true"
-        }
+    runs-on: ubuntu-latest
+    steps:
+      - name: No-op
+        run: echo "Python 3.9 is not built on this branch. See branches that 
still support it (e.g. branch-3.5)."
diff --git a/.github/workflows/build_branch35.yml 
b/.github/workflows/build_scala213.yml
similarity index 54%
rename from .github/workflows/build_branch35.yml
rename to .github/workflows/build_scala213.yml
index bb856605b5f4..acdc6bea4f90 100644
--- a/.github/workflows/build_branch35.yml
+++ b/.github/workflows/build_scala213.yml
@@ -17,37 +17,22 @@
 # under the License.
 #
 
-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
+# separate scheduled Scala 2.13 build here. The file exists only so that the
+# README build status badge, which resolves a workflow by its path on the
+# default branch, renders for the branches that still run it as a separate
+# build (e.g. branch-3.5). The actual build is defined in the same file on
+# those branches.
+
+name: "Build / Java8 (Scala 2.13, JDK 8)"
 
 on:
-  schedule:
-    - cron: '0 11 */4 * *'
   workflow_dispatch:
 
 jobs:
-  run-build:
-    permissions:
-      packages: write
-    name: Run
-    uses: ./.github/workflows/build_and_test.yml
+  noop:
     if: github.repository == 'apache/spark'
-    with:
-      java: 8
-      branch: branch-3.5
-      hadoop: hadoop3
-      envs: >-
-        {
-          "SCALA_PROFILE": "scala2.13",
-          "PYSPARK_IMAGE_TO_TEST": "",
-          "PYTHON_TO_TEST": "",
-          "ORACLE_DOCKER_IMAGE_NAME": "gvenzl/oracle-xe:21.3.0"
-        }
-      jobs: >-
-        {
-          "build": "true",
-          "sparkr": "true",
-          "tpcds-1g": "true",
-          "docker-integration-tests": "true",
-          "k8s-integration-tests": "true",
-          "lint" : "true"
-        }
+    runs-on: ubuntu-latest
+    steps:
+      - name: No-op
+        run: echo "Scala 2.13 is the default on master and is not built 
separately. See branches that run it as a separate build (e.g. branch-3.5)."
diff --git a/README.md b/README.md
index 0a998223b6d1..711722cae7ba 100644
--- a/README.md
+++ b/README.md
@@ -88,8 +88,9 @@ This README file only contains basic setup instructions.
 |            | [![GitHub Actions 
Build](https://github.com/apache/spark/actions/workflows/build_maven_java21.yml/badge.svg?branch=branch-4.0)](https://github.com/apache/spark/actions/workflows/build_maven_java21.yml?query=branch%3Abranch-4.0)
       |
 |            | [![GitHub Actions 
Build](https://github.com/apache/spark/actions/workflows/build_python_3.11.yml/badge.svg?branch=branch-4.0)](https://github.com/apache/spark/actions/workflows/build_python_3.11.yml?query=branch%3Abranch-4.0)
                   |
 |            | [![GitHub Actions 
Build](https://github.com/apache/spark/actions/workflows/build_python_pypy3.10.yml/badge.svg?branch=branch-4.0)](https://github.com/apache/spark/actions/workflows/build_python_pypy3.10.yml?query=branch%3Abranch-4.0)
 |
-| branch-3.5 | [![GitHub Actions 
Build](https://github.com/apache/spark/actions/workflows/build_branch35.yml/badge.svg)](https://github.com/apache/spark/actions/workflows/build_branch35.yml)
                                 |
-|            | [![GitHub Actions 
Build](https://github.com/apache/spark/actions/workflows/build_branch35_python.yml/badge.svg)](https://github.com/apache/spark/actions/workflows/build_branch35_python.yml)
                   |
+| branch-3.5 | [![GitHub Actions 
Build](https://github.com/apache/spark/actions/workflows/build_main.yml/badge.svg?branch=branch-3.5)](https://github.com/apache/spark/actions/workflows/build_main.yml?query=branch%3Abranch-3.5)
                                 |
+|            | [![GitHub Actions 
Build](https://github.com/apache/spark/actions/workflows/build_scala213.yml/badge.svg?branch=branch-3.5)](https://github.com/apache/spark/actions/workflows/build_scala213.yml?query=branch%3Abranch-3.5)
                   |
+|            | [![GitHub Actions 
Build](https://github.com/apache/spark/actions/workflows/build_python_3.9.yml/badge.svg?branch=branch-3.5)](https://github.com/apache/spark/actions/workflows/build_python_3.9.yml?query=branch%3Abranch-3.5)
                   |
 
 
 ## Building Spark


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

Reply via email to