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

zhouyuan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new 4a24955103 [GLUTEN-12288][CI] Move more jobs to nightly (#12814)
4a24955103 is described below

commit 4a249551035d58de9e95c1227e886cf8ca694edb
Author: Yuan <[email protected]>
AuthorDate: Wed Aug 19 08:31:14 2026 +0100

    [GLUTEN-12288][CI] Move more jobs to nightly (#12814)
---
 .github/workflows/velox_backend_x86.yml | 137 +++++++++++++++++++++++++-------
 1 file changed, 108 insertions(+), 29 deletions(-)

diff --git a/.github/workflows/velox_backend_x86.yml 
b/.github/workflows/velox_backend_x86.yml
index 89d759e432..951f55cc9f 100644
--- a/.github/workflows/velox_backend_x86.yml
+++ b/.github/workflows/velox_backend_x86.yml
@@ -38,6 +38,17 @@ on:
       - 'cpp/**'
       - 'dev/**'
       - 'build/mvn'
+  # Nightly full run. PR runs trim the TPC matrices to representative JDKs and
+  # skip the OOM / random-kill chaos jobs unless native code changed (see
+  # detect-changes' `full_run` output); this scheduled run restores the full
+  # breadth once a day, so a combo dropped from the per-PR tier can stay broken
+  # for at most a day. It also gives the default branch a post-merge signal,
+  # which the per-PR-only trigger above never provided. 02:00 avoids the
+  # 00:00 velox_nightly.yml and 05:00 delta_spark_ut.yml slots.
+  schedule:
+    - cron: '0 2 * * *'
+  # On-demand full run (e.g. to re-check an extended combo before a release).
+  workflow_dispatch:
 
 env:
   ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
@@ -67,9 +78,19 @@ jobs:
   #   • gluten-core change  → java=true  → all spark-test jobs run  ✓
   #   • shims/spark35 only  → shims35=true → only spark35 jobs run  ✓
   #   • pure cpp change     → cpp=true   → only native/tpc jobs run ✓
+  #
+  # The `full_run` flag is true on schedule/workflow_dispatch runs: those have 
no
+  # PR diff to filter on, so every path flag is forced true AND the jobs below
+  # widen their matrices to the extended combos that PR runs skip (alternative
+  # JDKs, older Celeborn, chaos tests on java-only changes).
   detect-changes:
+    # Every job chains off this one, so the fork guard here skips the whole
+    # workflow: a fork with Actions enabled would otherwise burn ~1800 runner
+    # minutes nightly on a signal nobody reads.
+    if: github.event_name != 'schedule' || github.repository_owner == 'apache'
     runs-on: ubuntu-22.04
     outputs:
+      full_run: ${{ steps.filter.outputs.full_run }}
       cpp:      ${{ steps.filter.outputs.cpp }}
       java:     ${{ steps.filter.outputs.java }}
       shims33:  ${{ steps.filter.outputs.shims33 }}
@@ -85,6 +106,30 @@ jobs:
       - name: Detect changed paths
         id: filter
         run: |
+          event="${{ github.event_name }}"
+          if [ "$event" = "schedule" ] || [ "$event" = "workflow_dispatch" ]; 
then
+            # schedule / workflow_dispatch: no PR diff to inspect.
+            # For scheduled runs, skip entirely when no commits landed in the
+            # last 24 hours — avoids burning runner minutes on idle days.
+            if [ "$event" = "schedule" ]; then
+              recent=$(git log --oneline --after="24 hours ago" HEAD | wc -l)
+              if [ "$recent" -eq 0 ]; then
+                echo "No commits in the last 24 hours -- skipping nightly run."
+                for flag in cpp java shims33 shims34 shims35 shims40 shims41 
tools_it; do
+                  echo "$flag=false" >> $GITHUB_OUTPUT
+                done
+                echo "full_run=false" >> $GITHUB_OUTPUT
+                exit 0
+              fi
+            fi
+            # Run everything, including the extended matrices PR runs skip.
+            for flag in cpp java shims33 shims34 shims35 shims40 shims41 
tools_it; do
+              echo "$flag=true" >> $GITHUB_OUTPUT
+            done
+            echo "full_run=true" >> $GITHUB_OUTPUT
+            exit 0
+          fi
+          echo "full_run=false" >> $GITHUB_OUTPUT
           BASE=${{ github.event.pull_request.base.sha }}
           HEAD=${{ github.sha }}
           changed=$(git diff --name-only "$BASE" "$HEAD")
@@ -145,8 +190,9 @@ jobs:
       - uses: actions/upload-artifact@v7
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
           if-no-files-found: error
+          retention-days: 1
 
   tpc-test-ubuntu:
     needs: [detect-changes, build-native-lib-centos-7]
@@ -159,7 +205,16 @@ jobs:
       matrix:
         os: [ "ubuntu:22.04" ]
         spark: [ "spark-3.3", "spark-3.4", "spark-3.5", "spark-4.0", 
"spark-4.1"  ]
-        java: [ "java-8", "java-11", "java-17", "java-21", "java-25" ]
+        # PR runs test the primary JDK per Spark line (8 for 3.x, 17 for 4.x --
+        # after the static excludes below that is 6 combos instead of 11). The
+        # alternative-JDK combos (11/21/25) validate build + TPC run under JDKs
+        # that Gluten changes rarely break in a JDK-specific way; the nightly
+        # full_run keeps covering them daily so a break surfaces within a day
+        # instead of costing ~75 runner-minutes on every PR.
+        java: >-
+          ${{ fromJSON(needs.detect-changes.outputs.full_run == 'true'
+          && '["java-8", "java-11", "java-17", "java-21", "java-25"]'
+          || '["java-8", "java-17"]') }}
         # Spark supports JDK17 since 3.3.
         exclude:
           - spark: spark-3.3
@@ -199,7 +254,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Setup tzdata
         run: |
           sed -i 's|http://archive|http://eu.archive|g' /etc/apt/sources.list
@@ -289,10 +344,21 @@ jobs:
       needs.detect-changes.outputs.tools_it == 'true'
     strategy:
       fail-fast: false
+      # This job's per-PR value is OS compatibility of the same native lib and
+      # TPC run that tpc-test-ubuntu already exercises combo-by-combo, so PRs
+      # test one representative combo per Spark line ({3.5, 4.1} x primary JDK
+      # = 2 jobs after the excludes below) and the nightly full_run restores
+      # the whole 7-combo fan-out.
       matrix:
         os: [ "centos:8" ]
-        spark: [ "spark-3.3", "spark-3.4", "spark-3.5", "spark-4.0", 
"spark-4.1" ]
-        java: [ "java-8", "java-11", "java-17" ]
+        spark: >-
+          ${{ fromJSON(needs.detect-changes.outputs.full_run == 'true'
+          && '["spark-3.3", "spark-3.4", "spark-3.5", "spark-4.0", 
"spark-4.1"]'
+          || '["spark-3.5", "spark-4.1"]') }}
+        java: >-
+          ${{ fromJSON(needs.detect-changes.outputs.full_run == 'true'
+          && '["java-8", "java-11", "java-17"]'
+          || '["java-8", "java-17"]') }}
         # Spark supports JDK17 since 3.3.
         exclude:
           - spark: spark-3.4
@@ -320,7 +386,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Update mirror list
         run: |
           if [ "${{ matrix.os }}" = "centos:7" ] || [ "${{ matrix.os }}" = 
"centos:8" ]; then
@@ -386,7 +452,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Build and run TPCH/DS tests
         run: |
           docker pull centos:7
@@ -417,10 +483,13 @@ jobs:
 
   tpc-test-ubuntu-oom:
     needs: [detect-changes, build-native-lib-centos-7]
+    # Chaos/stress tier: this job probes native memory-pressure behaviour, so
+    # per-PR it only runs when native code changed (cpp=true). For java-only
+    # changes its ~60 runner-minutes rarely produce PR-specific signal; the
+    # nightly full_run still exercises it daily.
     if: >-
-      needs.detect-changes.outputs.cpp == 'true' ||
-      needs.detect-changes.outputs.java == 'true' ||
-      needs.detect-changes.outputs.tools_it == 'true'
+      needs.detect-changes.outputs.full_run == 'true' ||
+      needs.detect-changes.outputs.cpp == 'true'
     strategy:
       fail-fast: false
       matrix:
@@ -444,7 +513,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Setup java
         run: |
           sudo apt-get update
@@ -531,10 +600,13 @@ jobs:
 
   tpc-test-ubuntu-randomkill:
     needs: [detect-changes, build-native-lib-centos-7]
+    # Chaos/stress tier (see tpc-test-ubuntu-oom): random task kills mainly
+    # probe native/JNI shutdown robustness, and at 3 shards this is the single
+    # most expensive TPC job (~190 runner-minutes). Per-PR only for native
+    # changes; nightly full_run covers the rest.
     if: >-
-      needs.detect-changes.outputs.cpp == 'true' ||
-      needs.detect-changes.outputs.java == 'true' ||
-      needs.detect-changes.outputs.tools_it == 'true'
+      needs.detect-changes.outputs.full_run == 'true' ||
+      needs.detect-changes.outputs.cpp == 'true'
     strategy:
       fail-fast: false
       matrix:
@@ -559,7 +631,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Setup java
         run: |
           sudo apt-get update
@@ -601,7 +673,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Install Uniffle ${{ matrix.uniffle }}
         run: |
           export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
@@ -641,7 +713,14 @@ jobs:
       fail-fast: false
       matrix:
         spark: [ "spark-3.3" ]
-        celeborn: [ "celeborn-0.6.3", "celeborn-0.5.4"]
+        # Both shuffle writers stay per-PR (they exercise different Gluten
+        # writer code paths); the older Celeborn release is client-compat
+        # coverage that the nightly full_run re-checks daily instead of every
+        # PR paying for both versions.
+        celeborn: >-
+          ${{ fromJSON(needs.detect-changes.outputs.full_run == 'true'
+          && '["celeborn-0.6.3", "celeborn-0.5.4"]'
+          || '["celeborn-0.6.3"]') }}
         writer: ["sort", "hash"]
     runs-on: ubuntu-22.04
     container: centos:8
@@ -651,7 +730,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Update mirror list
         run: |
           sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-* 
|| true
@@ -724,7 +803,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Prepare
         run: |
           dnf module -y install python39 && \
@@ -781,7 +860,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
 
       - name: Build and Run unit test for Spark 3.3.1 (slow tests)
         run: |
@@ -830,7 +909,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Prepare spark.test.home for Spark 3.4.4 (other tests)
         run: |
           dnf module -y install python39 && \
@@ -901,7 +980,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Build and Run unit test for Spark 3.4.4 (slow tests, ${{ 
matrix.suite }})
         run: |
           cd $GITHUB_WORKSPACE/
@@ -955,7 +1034,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Prepare
         run: |
           dnf module -y install python39 && \
@@ -1027,7 +1106,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Prepare
         run: |
           dnf module -y install python39 && \
@@ -1093,7 +1172,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Build and Run unit test for Spark 3.5.5 (slow tests, ${{ 
matrix.suite }})
         run: |
           cd $GITHUB_WORKSPACE/
@@ -1331,7 +1410,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Prepare
         run: |
           dnf module -y install python39 && \
@@ -1397,7 +1476,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Build and Run unit test for Spark 4.0 (slow tests, ${{ 
matrix.suite }})
         run: |
           cd $GITHUB_WORKSPACE/
@@ -1454,7 +1533,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Prepare
         run: |
           dnf install -y python3.11 python3.11-pip python3.11-devel && \
@@ -1526,7 +1605,7 @@ jobs:
         uses: actions/download-artifact@v8
         with:
           name: velox-native-lib-centos-7-${{github.sha}}
-          path: ./cpp/build/
+          path: ./cpp/build/releases/
       - name: Build and Run unit test for Spark 4.1 (slow tests, ${{ 
matrix.suite }})
         run: |
           cd $GITHUB_WORKSPACE/


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

Reply via email to