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

zuston pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/auron.git


The following commit(s) were added to refs/heads/master by this push:
     new bd36edab [AURON-1139] Setup integration testing with Uniffle (#1222)
bd36edab is described below

commit bd36edab6134d69bdb6df4b0bc2cbf6f03d94dc9
Author: Fei Wang <fwan...@ebay.com>
AuthorDate: Sun Aug 31 18:32:30 2025 -0700

    [AURON-1139] Setup integration testing with Uniffle (#1222)
---
 .github/workflows/tpcds-reusable.yml | 77 ++++++++++++++++++++++++++++++++++--
 .github/workflows/uniffle.yml        | 59 +++++++++++++++++++++++++++
 2 files changed, 133 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/tpcds-reusable.yml 
b/.github/workflows/tpcds-reusable.yml
index e9d64329..d252be8b 100644
--- a/.github/workflows/tpcds-reusable.yml
+++ b/.github/workflows/tpcds-reusable.yml
@@ -42,6 +42,22 @@ on:
         required: false
         type: string
         default: ''
+      unifflever:
+        required: false
+        type: string
+        default: ''
+      uniffleurl:
+        required: false
+        type: string
+        default: ''
+      hadoopver:
+        required: false
+        type: string
+        default: ''
+      hadoopurl:
+        required: false
+        type: string
+        default: ''
       extrabuildopt:
         required: false
         type: string
@@ -216,10 +232,10 @@ jobs:
       - name: Start Celeborn-${{ inputs.celebornver }}
         if: ${{ inputs.celebornver != '' && inputs.celebornurl != '' }}
         run: |
-          mkdir -p /tmp/celeborn/data && mkdir -p /tmp/celeborn/logs && \
+          mkdir -p /tmp/rss/data && mkdir -p /tmp/rss/logs && \
           cd celeborn-bin-${{ inputs.celebornver }} && \
-          bash -c "echo -e 
'CELEBORN_MASTER_MEMORY=4g\nCELEBORN_WORKER_MEMORY=4g\nCELEBORN_WORKER_OFFHEAP_MEMORY=8g\nCELEBORN_LOG_DIR=/tmp/celeborn/logs'
 > ./conf/celeborn-env.sh" && \
-          bash -c "echo -e 'celeborn.worker.storage.dirs 
/tmp/celeborn\nceleborn.worker.storage.workingDir 
data\nceleborn.worker.commitFiles.threads 
128\nceleborn.worker.sortPartition.threads 64' > ./conf/celeborn-defaults.conf" 
&& \
+          bash -c "echo -e 
'CELEBORN_MASTER_MEMORY=4g\nCELEBORN_WORKER_MEMORY=4g\nCELEBORN_WORKER_OFFHEAP_MEMORY=8g\nCELEBORN_LOG_DIR=/tmp/rss/logs'
 > ./conf/celeborn-env.sh" && \
+          bash -c "echo -e 'celeborn.worker.storage.dirs 
/tmp/rss\nceleborn.worker.storage.workingDir 
data\nceleborn.worker.commitFiles.threads 
128\nceleborn.worker.sortPartition.threads 64' > ./conf/celeborn-defaults.conf" 
&& \
           bash ./sbin/start-master.sh && \
           bash ./sbin/start-worker.sh
 
@@ -229,6 +245,53 @@ jobs:
           ls -la celeborn-bin-${{ inputs.celebornver }}/spark
           cp celeborn-bin-${{ inputs.celebornver 
}}/spark/celeborn-client-spark-*_${{ inputs.scalaver }}-*.jar spark-bin-${{ 
inputs.sparkver }}_${{ inputs.scalaver }}/jars/
 
+      - uses: actions/cache@v4
+        if: ${{ inputs.unifflever != '' && inputs.uniffleurl != '' }}
+        id: cache-uniffle-bin
+        with:
+          path: uniffle-bin-${{ inputs.unifflever }}
+          key: uniffle-bin-${{ inputs.unifflever }}
+
+      - name: Setup Uniffle-${{ inputs.unifflever }}
+        id: setup-uniffle-bin
+        if: ${{ inputs.unifflever != '' && inputs.uniffleurl != '' &&  
steps.cache-uniffle-bin.outputs.cache-hit != 'true' }}
+        run: |
+          wget -c ${{ inputs.uniffleurl }} && \
+          mkdir -p uniffle-bin-${{ inputs.unifflever }} && \
+          tar -xf ./apache-uniffle-${{ inputs.unifflever 
}}-incubating-bin.tar.gz -C uniffle-bin-${{ inputs.unifflever }} 
--strip-component=1
+
+      - uses: actions/cache@v4
+        if: ${{ inputs.hadoopver != '' && inputs.hadoopurl != '' }}
+        id: cache-hadoop-bin
+        with:
+          path: hadoop-bin-${{ inputs.hadoopver }}
+          key: hadoop-bin-${{ inputs.hadoopver }}
+
+      - name: Setup hadoop-${{ inputs.hadoopver }}
+        id: setup-hadoop-bin
+        if: ${{ inputs.hadoopver != '' && inputs.hadoopurl != '' &&  
steps.cache-hadoop-bin.outputs.cache-hit != 'true' }}
+        run: |
+          wget -c ${{ inputs.hadoopurl }} && \
+          mkdir -p hadoop-bin-${{ inputs.hadoopver }} && \
+          tar -xf ./hadoop-${{ inputs.hadoopver }}.tar.gz -C hadoop-bin-${{ 
inputs.hadoopver }} --strip-component=1  && \
+          ls -la hadoop-bin-${{ inputs.hadoopver }}
+
+      - name: Start Uniffle-${{ inputs.unifflever }}
+        if: ${{ inputs.unifflever != '' && inputs.uniffleurl != '' }}
+        run: |
+          mkdir -p /tmp/rss/data && mkdir -p /tmp/rss/logs && \
+          cd uniffle-bin-${{ inputs.unifflever }} && \
+          bash -c "echo -e 'XMX_SIZE=16g\nHADOOP_HOME=../hadoop-bin-${{ 
inputs.hadoopver }}\nRSS_LOG_DIR=/tmp/rss/logs' > ./bin/rss-env.sh" && \
+          bash -c "echo -e 'rss.coordinator.shuffle.nodes.max 
1\nrss.rpc.server.port 19999' > ./conf/coordinator.conf" && \
+          bash -c "echo -e 'rss.server.app.expired.withoutHeartbeat 
7200000\nrss.server.heartbeat.delay 3000\nrss.rpc.server.port 
19997\nrss.rpc.server.type GRPC_NETTY\nrss.jetty.http.port 
19996\nrss.server.netty.port 19995\nrss.storage.basePath 
/tmp/rss/data\nrss.storage.type MEMORY_LOCALFILE\nrss.coordinator.quorum 
localhost:19999\nrss.server.flush.thread.alive 
10\nrss.server.single.buffer.flush.threshold 64m' > ./conf/server.conf" && \
+          bash ./bin/start-coordinator.sh && bash ./bin/start-shuffle-server.sh
+
+      - name: Install Uniffle JAR
+        if: ${{ inputs.unifflever != '' && inputs.uniffleurl != '' }}
+        run: |
+          ls -la uniffle-bin-${{ inputs.unifflever }}/jars/client/spark3/
+          cp uniffle-bin-${{ inputs.unifflever }}/jars/client/spark3/*.jar 
spark-bin-${{ inputs.sparkver }}_${{ inputs.scalaver }}/jars/
+
       - name: Run
         run: |
           ls -la
@@ -239,3 +302,11 @@ jobs:
             ${{ inputs.extrasparkconf }} \
             --data-location dev/tpcds_1g \
             --query-filter ${{ matrix.query }}
+
+      - name: Upload RSS log
+        if: ${{ failure() && (inputs.celebornver != '' || inputs.unifflever != 
'') }}
+        uses: actions/upload-artifact@v4
+        with:
+          name: rss-log-${{ inputs.extraidentifier }}
+          path: |
+            /tmp/rss/logs/*
diff --git a/.github/workflows/uniffle.yml b/.github/workflows/uniffle.yml
new file mode 100644
index 00000000..910ea080
--- /dev/null
+++ b/.github/workflows/uniffle.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: Uniffle
+
+on:
+  workflow_dispatch:
+  pull_request:
+    branches:
+      - master
+      - branch-*
+
+concurrency:
+  group: uniffle-${{ github.workflow }}-${{ github.event.pull_request.number 
|| github.ref }}
+  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
+
+jobs:
+  test-uniffle:
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+          - unifflever: "0.9.2"
+            hadoopver: "2.8.5"
+            uniffleprofile: "uniffle,uniffle-0.9"
+    uses: ./.github/workflows/tpcds-reusable.yml
+    name: Test Uniffle ${{ matrix.unifflever }}
+    with:
+      unifflever: ${{ matrix.unifflever }}
+      uniffleurl: https://archive.apache.org/dist/uniffle/${{ 
matrix.unifflever }}/apache-uniffle-${{ matrix.unifflever 
}}-incubating-bin.tar.gz
+      hadoopver: ${{ matrix.hadoopver }}
+      hadoopurl: https://archive.apache.org/dist/hadoop/common/hadoop-${{ 
matrix.hadoopver }}/hadoop-${{ matrix.hadoopver }}.tar.gz
+      extrabuildopt: -P${{ matrix.uniffleprofile }} -DuniffleVersion=${{ 
matrix.unifflever }}
+      extraidentifier: uniffle-${{ matrix.unifflever }}
+      sparkver: "spark-3.5"
+      sparkurl: 
"https://archive.apache.org/dist/spark/spark-3.5.6/spark-3.5.6-bin-hadoop3.tgz";
+      scalaver: "2.12"
+      extrasparkconf: >-
+        --conf 
spark.shuffle.manager=org.apache.spark.sql.execution.auron.shuffle.uniffle.AuronUniffleShuffleManager
+        --conf spark.serializer=org.apache.spark.serializer.KryoSerializer
+        --conf spark.rss.coordinator.quorum=localhost:19999
+        --conf spark.rss.enabled=true
+        --conf spark.rss.storage.type=MEMORY_LOCALFILE
+        --conf spark.rss.client.type=GRPC_NETTY
+      queries: '["q1,q2,q3,q4,q5,q6,q7,q8,q9"]'

Reply via email to