This is an automated email from the ASF dual-hosted git repository.
yuanzhou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git
The following commit(s) were added to refs/heads/main by this push:
new be0bdb5f18 [GLUTEN-9615][INFRA] Automate release process with build
script and GHA workflow (#10807)
be0bdb5f18 is described below
commit be0bdb5f180ae71b3edf4e7dca4ce1612345ed04
Author: PHILO-HE <[email protected]>
AuthorDate: Wed Oct 1 16:11:08 2025 +0800
[GLUTEN-9615][INFRA] Automate release process with build script and GHA
workflow (#10807)
Use GHA to build Gluten jars for supported Spark versions, which can
simplify the release process and ensure all required build options are enabled,
avoiding potential omissions in manual builds.
---
.github/workflows/build_release.yml | 42 +++++++++++++++++++++++
dev/release/build-release.sh | 66 +++++++++++++++++++++++++++++++++++++
dev/release/package-release.sh | 63 +++++++++++++++++++++++++++++++++++
3 files changed, 171 insertions(+)
diff --git a/.github/workflows/build_release.yml
b/.github/workflows/build_release.yml
new file mode 100644
index 0000000000..cec50c92b1
--- /dev/null
+++ b/.github/workflows/build_release.yml
@@ -0,0 +1,42 @@
+# 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: Build Release
+
+# Only triggered when new tag like v1.5.0 is created.
+on:
+ push:
+ tags:
+ - 'v*'
+
+jobs:
+ build-velox-backend-release:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Build
+ run: |
+ docker pull apache/gluten:vcpkg-centos-7
+ docker run -v $GITHUB_WORKSPACE:/workspace -w /work
apache/gluten:vcpkg-centos-7 bash -c "
+ set -e
+ cd /workspace
+ bash dev/release/build-release.sh
+ "
+ - name: Upload packages
+ if: ${{ success() }}
+ uses: actions/upload-artifact@v4
+ with:
+ name: ${{ github.job }}-packages
+ path: ${{ github.workspace
}}/package/target/gluten-velox-bundle-*.jar
diff --git a/dev/release/build-release.sh b/dev/release/build-release.sh
new file mode 100755
index 0000000000..ec4a509c72
--- /dev/null
+++ b/dev/release/build-release.sh
@@ -0,0 +1,66 @@
+#!/bin/bash
+
+# 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.
+
+set -eu
+
+source /opt/rh/devtoolset-11/enable
+source /opt/rh/rh-git227/enable
+
+CURRENT_DIR=$(cd "$(dirname "$BASH_SOURCE")"; pwd)
+GLUTEN_HOME=${CURRENT_DIR}/../../
+cd ${GLUTEN_HOME}
+
+# Enable static build with support for S3, GCS, HDFS, and ABFS.
+./dev/builddeps-veloxbe.sh --enable_vcpkg=ON --build_arrow=OFF
--build_tests=OFF --build_benchmarks=OFF \
+ --build_examples=OFF --enable_s3=ON --enable_gcs=ON
--enable_hdfs=ON --enable_abfs=ON
+
+JAVA_VERSION=$("java" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+if [[ $JAVA_VERSION == 1.8* ]]; then
+ echo "Java 8 is being used."
+else
+ echo "Error: Java 8 is required. Current version is $JAVA_VERSION."
+ exit 1
+fi
+
+# Build Gluten for Spark 3.2 and 3.3 with Java 8. All feature modules are
enabled.
+for spark_version in 3.2 3.3
+do
+ mvn clean install -Pbackends-velox -Pspark-${spark_version}
-Pceleborn,uniffle \
+ -Piceberg,delta,hudi,paimon -DskipTests
+done
+
+sudo curl -Lo /etc/yum.repos.d/corretto.repo
https://yum.corretto.aws/corretto.repo
+sudo yum install -y java-17-amazon-corretto-devel
+export JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto
+export PATH=$JAVA_HOME/bin:$PATH
+
+JAVA_VERSION=$("java" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+if [[ $JAVA_VERSION == 17* ]]; then
+ echo "Java 17 is being used."
+else
+ echo "Error: Java 17 is required. Current version is $JAVA_VERSION."
+ exit 1
+fi
+
+# Build Gluten for Spark 3.4 and 3.5 with Java 17. The version of Iceberg
being used requires Java 11 or higher.
+# All feature modules are enabled.
+for spark_version in 3.4 3.5
+do
+ mvn clean install -Pjava-17 -Pbackends-velox -Pspark-${spark_version}
-Pceleborn,uniffle \
+ -Piceberg,delta,hudi,paimon -DskipTests
+done
diff --git a/dev/release/package-release.sh b/dev/release/package-release.sh
new file mode 100755
index 0000000000..bb0de30259
--- /dev/null
+++ b/dev/release/package-release.sh
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+# 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.
+
+# Note: Manually create $GLUTEN_HOME/release/ and place the release JARs
inside.
+# Also set TAG manually (e.g., v1.5.0).
+
+set -eu
+
+TAG=""
+
+if [[ -z "$TAG" ]]; then
+ echo "TAG is not set. Please set TAG=vX.Y.Z before running."
+ exit 1
+fi
+
+VERSION=${TAG#v}
+
+CURRENT_DIR=$(cd "$(dirname "$BASH_SOURCE")"; pwd)
+GLUTEN_HOME=${CURRENT_DIR}/../../
+if [ ! -d "$GLUTEN_HOME/release/" ]; then
+ echo "Release directory does not exist."
+fi
+pushd $GLUTEN_HOME/release/
+
+SPARK_VERSIONS="3.2 3.3 3.4 3.5"
+
+for v in $SPARK_VERSIONS; do
+ JAR="gluten-velox-bundle-spark${v}_2.12-linux_amd64-${VERSION}.jar"
+ if [[ ! -f "$JAR" ]]; then
+ echo "Missing Gluten release JAR under $GLUTEN_HOME/release/ for Spark $v:
$JAR"
+ exit 1
+ fi
+ echo "Packaging for Spark $v..."
+ tar -czf apache-gluten-$VERSION-incubating-bin-spark-${v}.tar.gz \
+ ${GLUTEN_HOME}/DISCLAIMER \
+ $JAR
+done
+
+SRC_ZIP="${TAG}.zip"
+SRC_DIR="incubator-gluten-${VERSION}"
+
+echo "Packaging source code..."
+wget https://github.com/apache/incubator-gluten/archive/refs/tags/${SRC_ZIP}
+unzip -q ${SRC_ZIP}
+tar -czf apache-gluten-$VERSION-incubating-src.tar.gz ${SRC_DIR}
+rm -r ${SRC_ZIP} ${SRC_DIR}
+
+popd
+echo "Finished packaging release binaries and source code."
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]