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 4852291109 [MINOR][CI] Move Delta Spark UT caches to Apache Stash 
(#12820)
4852291109 is described below

commit 48522911095c9b3e39f7ce33a69d7b5c10ee2c0c
Author: Felipe Pessoto <[email protected]>
AuthorDate: Wed Aug 19 09:50:55 2026 -0700

    [MINOR][CI] Move Delta Spark UT caches to Apache Stash (#12820)
---
 .github/workflows/delta_spark_ut.yml | 88 ++++++++++++++++++++++++------------
 1 file changed, 60 insertions(+), 28 deletions(-)

diff --git a/.github/workflows/delta_spark_ut.yml 
b/.github/workflows/delta_spark_ut.yml
index 34f6baff0b..c0fc1211a5 100644
--- a/.github/workflows/delta_spark_ut.yml
+++ b/.github/workflows/delta_spark_ut.yml
@@ -152,14 +152,11 @@ jobs:
     runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v4
-      - name: Get Ccache
-        uses: actions/cache/restore@v4
+      - name: Get Ccache from Apache Stash
+        uses: 
apache/infrastructure-actions/stash/restore@0ba14156c9f4c3cfbe4b0c9f36339ab0f8d81e53
         with:
           path: '${{ env.CCACHE_DIR }}'
-          key: ccache-delta-spark-ut-centos7-release-default-${{github.sha}}
-          restore-keys: |
-            ccache-delta-spark-ut-centos7-release-default
-            ccache-centos7-release-default
+          key: ccache-centos7-release-default-${{ 
hashFiles('ep/build-velox/src/**') }}
       - name: Build Gluten native libraries
         run: |
           docker run -v $GITHUB_WORKSPACE:/work -w /work 
apache/gluten:vcpkg-centos-7-gcc13 bash -c "
@@ -174,12 +171,13 @@ jobs:
             bash dev/ci-velox-buildstatic-centos-7.sh
             ccache -s
           "
-      - name: Save Ccache
+      - name: Save Ccache to Apache Stash
         if: always()
-        uses: actions/cache/save@v4
+        uses: 
apache/infrastructure-actions/stash/save@0ba14156c9f4c3cfbe4b0c9f36339ab0f8d81e53
         with:
           path: '${{ env.CCACHE_DIR }}'
-          key: ccache-delta-spark-ut-centos7-release-default-${{github.sha}}
+          key: ccache-centos7-release-default-${{ 
hashFiles('ep/build-velox/src/**') }}
+          include-hidden-files: true
       - uses: actions/upload-artifact@v4
         with:
           name: delta-spark-ut-native-lib-centos-7-${{github.sha}}
@@ -197,14 +195,25 @@ jobs:
         with:
           name: delta-spark-ut-native-lib-centos-7-${{ github.sha }}
           path: ./cpp/build/
-      - name: Cache Maven repository
-        uses: actions/cache@v4
+      - name: Install Stash restore dependencies
+        run: |
+          set -euo pipefail
+          yum install -y python3
+          case "$(uname -m)" in
+            x86_64) ARCH=amd64 ;;
+            aarch64) ARCH=arm64 ;;
+            *) echo "unsupported arch: $(uname -m)" >&2; exit 1 ;;
+          esac
+          curl -fsSL 
"https://github.com/cli/cli/releases/download/v2.63.2/gh_2.63.2_linux_${ARCH}.tar.gz";
 \
+            | tar -xz -C /usr/local --strip-components=1 
"gh_2.63.2_linux_${ARCH}/bin/gh"
+          curl -fsSL -o /usr/local/bin/jq 
"https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-${ARCH}";
+          chmod +x /usr/local/bin/jq
+          python3 --version && gh --version && jq --version
+      - name: Get Maven repository from Apache Stash
+        uses: 
apache/infrastructure-actions/stash/restore@0ba14156c9f4c3cfbe4b0c9f36339ab0f8d81e53
         with:
           path: /root/.m2/repository
           key: m2-delta-spark-ut-bundle-${{ env.GLUTEN_SPARK_PROFILE }}-${{ 
env.GLUTEN_SCALA_PROFILE }}-${{ hashFiles('pom.xml', '**/pom.xml') }}
-          restore-keys: |
-            m2-delta-spark-ut-bundle-${{ env.GLUTEN_SPARK_PROFILE }}-${{ 
env.GLUTEN_SCALA_PROFILE }}-
-            m2-delta-spark-ut-bundle-
       - name: Build Gluten Velox + Delta bundle
         run: |
           set -euo pipefail
@@ -222,6 +231,12 @@ jobs:
             -P${{ env.GLUTEN_JAVA_PROFILE }} \
             -Pbackends-velox -Pdelta \
             -DskipTests -Dmaven.compiler.release=17
+      - name: Save Maven repository to Apache Stash
+        uses: 
apache/infrastructure-actions/stash/save@0ba14156c9f4c3cfbe4b0c9f36339ab0f8d81e53
+        with:
+          path: /root/.m2/repository
+          key: m2-delta-spark-ut-bundle-${{ env.GLUTEN_SPARK_PROFILE }}-${{ 
env.GLUTEN_SCALA_PROFILE }}-${{ hashFiles('pom.xml', '**/pom.xml') }}
+          include-hidden-files: true
       - name: Stage bundle jar
         run: |
           set -euo pipefail
@@ -304,7 +319,7 @@ jobs:
           name: delta-spark-ut-gluten-bundle-${{github.sha}}
           path: gluten-bundle
 
-      - name: Install minimal tools
+      - name: Install minimal tools and Stash restore dependencies
         run: |
           set -euo pipefail
           # apache/gluten:centos-9-jdk17 already has java-17, git, tar, a POSIX
@@ -313,27 +328,31 @@ jobs:
           # tests may need. We deliberately do NOT install the full `curl`
           # package -- it conflicts with the pre-installed curl-minimal.
           yum install -y java-17-openjdk-devel which findutils gzip python3
+          case "$(uname -m)" in
+            x86_64) ARCH=amd64 ;;
+            aarch64) ARCH=arm64 ;;
+            *) echo "unsupported arch: $(uname -m)" >&2; exit 1 ;;
+          esac
+          curl -fsSL 
"https://github.com/cli/cli/releases/download/v2.63.2/gh_2.63.2_linux_${ARCH}.tar.gz";
 \
+            | tar -xz -C /usr/local --strip-components=1 
"gh_2.63.2_linux_${ARCH}/bin/gh"
+          curl -fsSL -o /usr/local/bin/jq 
"https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-${ARCH}";
+          chmod +x /usr/local/bin/jq
           export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
           export PATH=$JAVA_HOME/bin:$PATH
           java -version
           git --version
           curl --version | head -n 1
+          python3 --version
+          gh --version
+          jq --version
 
-      - name: Cache sbt / Ivy / Coursier
-        uses: actions/cache@v4
+      - name: Get sbt / Ivy / Coursier from Apache Stash
+        uses: 
apache/infrastructure-actions/stash/restore@0ba14156c9f4c3cfbe4b0c9f36339ab0f8d81e53
         with:
-          path: |
-            /root/.sbt
-            /root/.ivy2
-            /root/.cache/coursier
-          # Intentionally NOT keyed by ${{ matrix.shard }} -- all shards share
-          # the same dependency tree, so a single shared cache (with parallel
-          # save races resolved by GH on a first-write-wins basis) gives the
-          # best storage / hit-rate tradeoff.
+          # Stash restore accepts one destination. The save step preserves the
+          # three selected cache paths relative to their common /root 
directory.
+          path: /root
           key: delta-spark-ut-sbt-${{ steps.resolve.outputs.delta_ref }}-${{ 
steps.resolve.outputs.spark_version }}-${{ env.DELTA_SCALA_VERSION }}
-          restore-keys: |
-            delta-spark-ut-sbt-${{ steps.resolve.outputs.delta_ref }}-${{ 
steps.resolve.outputs.spark_version }}-
-            delta-spark-ut-sbt-${{ steps.resolve.outputs.delta_ref }}-
 
       - name: Clone and patch Delta
         run: |
@@ -373,6 +392,19 @@ jobs:
           # gate against the baseline. See 
util/delta-spark-ut/run-delta-tests.sh.
           bash 
"$GITHUB_WORKSPACE/.github/workflows/util/delta-spark-ut/run-delta-tests.sh"
 
+      - name: Save sbt / Ivy / Coursier to Apache Stash
+        # All shards have the same dependencies; one writer avoids matrix jobs
+        # overwriting the same stash artifact.
+        if: ${{ success() && matrix.shard == 0 }}
+        uses: 
apache/infrastructure-actions/stash/save@0ba14156c9f4c3cfbe4b0c9f36339ab0f8d81e53
+        with:
+          path: |
+            /root/.sbt
+            /root/.ivy2
+            /root/.cache/coursier
+          key: delta-spark-ut-sbt-${{ steps.resolve.outputs.delta_ref }}-${{ 
steps.resolve.outputs.spark_version }}-${{ env.DELTA_SCALA_VERSION }}
+          include-hidden-files: true
+
       - name: Compress heap dumps (if any)
         if: ${{ failure() }}
         run: |


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

Reply via email to