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

roryqi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-uniffle.git


The following commit(s) were added to refs/heads/master by this push:
     new b924acacb [MINOR] feat(build): Allow to build distribution without 
some modules (#1525)
b924acacb is described below

commit b924acacb0c555370a593f3a069187cf8b8081d7
Author: Enrico Minack <[email protected]>
AuthorDate: Sat Feb 17 03:28:35 2024 +0100

    [MINOR] feat(build): Allow to build distribution without some modules 
(#1525)
    
    ### What changes were proposed in this pull request?
    Allow to not build some modules when running `./build_distribution.sh`:
    
        ./build_distribution.sh --without-mr --without-tez --without-spark 
--without-dashboard
    
    ### Why are the changes needed?
    Some modules may not be needed and especially `dashboard` takes very long 
to build.
    
    ### Does this PR introduce _any_ user-facing change?
    No.
    
    ### How was this patch tested?
    Manually.
---
 build_distribution.sh | 139 +++++++++++++++++++++++++++++++++-----------------
 1 file changed, 92 insertions(+), 47 deletions(-)

diff --git a/build_distribution.sh b/build_distribution.sh
index fe9ce2148..1483be773 100755
--- a/build_distribution.sh
+++ b/build_distribution.sh
@@ -37,18 +37,25 @@ function exit_with_usage() {
   echo 
"+------------------------------------------------------------------------------------------------------+"
   echo "| ./build_distribution.sh [--spark2-profile <spark2 profile id>] 
[--spark2-mvn <custom maven options>] |"
   echo "|                         [--spark3-profile <spark3 profile id>] 
[--spark3-mvn <custom maven options>] |"
-  echo "|                         [--hadoop-profile <hadoop profile id>]       
                                |"
+  echo "|                         [--hadoop-profile <hadoop profile id>] 
[--without-mr] [--without-tez]        |"
+  echo "|                         [--without-spark] [--without-spark2] 
[--without-spark3] [--without-dashboard]|"
+  echo "|                         [--name <custom name>]                       
                                |"
   echo "|                         <maven build options>                        
                                |"
   echo 
"+------------------------------------------------------------------------------------------------------+"
   exit 1
 }
 
-MVN_OPTS="-Pdashboard"
 SPARK2_PROFILE_ID="spark2"
 SPARK2_MVN_OPTS=""
 SPARK3_PROFILE_ID="spark3"
 SPARK3_MVN_OPTS=""
 HADOOP_PROFILE_ID="hadoop2.8"
+WITH_MR="true"
+WITH_TEZ="true"
+WITH_SPARK="true"
+WITH_SPARK2="true"
+WITH_SPARK3="true"
+WITH_DASHBOARD="true"
 NAME=none
 while (( "$#" )); do
   case $1 in
@@ -72,6 +79,25 @@ while (( "$#" )); do
       HADOOP_PROFILE_ID=$2
       shift
       ;;
+    --without-mr)
+      WITH_MR="false"
+      ;;
+    --without-tez)
+      WITH_TEZ="false"
+      ;;
+    --without-spark)
+      WITH_SPARK2="false"
+      WITH_SPARK3="false"
+      ;;
+    --without-spark2)
+      WITH_SPARK2="false"
+      ;;
+    --without-spark3)
+      WITH_SPARK3="false"
+      ;;
+    --without-dashboard)
+      WITH_DASHBOARD="false"
+      ;;
     --name)
       NAME="$2"
       shift
@@ -139,7 +165,7 @@ export MAVEN_OPTS="${MAVEN_OPTS:--Xmx2g 
-XX:ReservedCodeCacheSize=1g}"
 # Store the command as an array because $MVN variable might have spaces in it.
 # Normal quoting tricks don't work.
 # See: http://mywiki.wooledge.org/BashFAQ/050
-BUILD_COMMAND=("$MVN" clean package -DskipTests $MVN_OPTS $@)
+BUILD_COMMAND=("$MVN" clean package -DskipTests $@)
 
 # Actually build the jar
 echo -e "\nBuilding with..."
@@ -170,13 +196,6 @@ echo "copy $COORDINATOR_JAR to ${COORDINATOR_JAR_DIR}"
 cp $COORDINATOR_JAR ${COORDINATOR_JAR_DIR}
 cp "${RSS_HOME}"/coordinator/target/jars/* ${COORDINATOR_JAR_DIR}
 
-DASHBOARD_JAR_DIR="${DISTDIR}/jars/dashboard"
-mkdir -p $DASHBOARD_JAR_DIR
-DASHBOARD_JAR="${RSS_HOME}/dashboard/target/dashboard-${VERSION}.jar"
-echo "copy $DASHBOARD_JAR to ${DASHBOARD_JAR_DIR}"
-cp $DASHBOARD_JAR $DASHBOARD_JAR_DIR
-cp "${RSS_HOME}"/dashboard/target/jars/* ${DASHBOARD_JAR_DIR}
-
 CLI_JAR_DIR="${DISTDIR}/jars/cli"
 mkdir -p $CLI_JAR_DIR
 CLI_JAR="${RSS_HOME}/cli/target/cli-${VERSION}.jar"
@@ -187,52 +206,78 @@ cp "${RSS_HOME}"/cli/target/jars/* ${CLI_JAR_DIR}
 CLIENT_JAR_DIR="${DISTDIR}/jars/client"
 mkdir -p $CLIENT_JAR_DIR
 
-BUILD_COMMAND_SPARK2=("$MVN" clean package -P$SPARK2_PROFILE_ID -pl 
client-spark/spark2-shaded -DskipTests -am $@ $SPARK2_MVN_OPTS)
 
 # Actually build the jar
-echo -e "\nBuilding with..."
-echo -e "\$ ${BUILD_COMMAND_SPARK2[@]}\n"
+if [ "$WITH_SPARK2" == "true" ]; then
+  BUILD_COMMAND_SPARK2=("$MVN" clean package -P$SPARK2_PROFILE_ID -pl 
client-spark/spark2-shaded -DskipTests -am $@ $SPARK2_MVN_OPTS)
+
+  echo -e "\nBuilding with..."
+  echo -e "\$ ${BUILD_COMMAND_SPARK2[@]}\n"
+  "${BUILD_COMMAND_SPARK2[@]}"
+
+  SPARK_CLIENT2_JAR_DIR="${CLIENT_JAR_DIR}/spark2"
+  mkdir -p $SPARK_CLIENT2_JAR_DIR
+  
SPARK_CLIENT2_JAR="${RSS_HOME}/client-spark/spark2-shaded/target/rss-client-spark2-shaded-${VERSION}.jar"
+  echo "copy $SPARK_CLIENT2_JAR to ${SPARK_CLIENT2_JAR_DIR}"
+  cp $SPARK_CLIENT2_JAR ${SPARK_CLIENT2_JAR_DIR}
+fi
 
-"${BUILD_COMMAND_SPARK2[@]}"
+if [ "$WITH_SPARK3" == "true" ]; then
+  BUILD_COMMAND_SPARK3=("$MVN" clean package -P$SPARK3_PROFILE_ID -pl 
client-spark/spark3-shaded -DskipTests -am $@ $SPARK3_MVN_OPTS)
 
-SPARK_CLIENT2_JAR_DIR="${CLIENT_JAR_DIR}/spark2"
-mkdir -p $SPARK_CLIENT2_JAR_DIR
+  echo -e "\nBuilding with..."
+  echo -e "\$ ${BUILD_COMMAND_SPARK3[@]}\n"
+  "${BUILD_COMMAND_SPARK3[@]}"
 
-SPARK_CLIENT2_JAR="${RSS_HOME}/client-spark/spark2-shaded/target/rss-client-spark2-shaded-${VERSION}.jar"
-echo "copy $SPARK_CLIENT2_JAR to ${SPARK_CLIENT2_JAR_DIR}"
-cp $SPARK_CLIENT2_JAR ${SPARK_CLIENT2_JAR_DIR}
+  SPARK_CLIENT3_JAR_DIR="${CLIENT_JAR_DIR}/spark3"
+  mkdir -p $SPARK_CLIENT3_JAR_DIR
+  
SPARK_CLIENT3_JAR="${RSS_HOME}/client-spark/spark3-shaded/target/rss-client-spark3-shaded-${VERSION}.jar"
+  echo "copy $SPARK_CLIENT3_JAR to ${SPARK_CLIENT3_JAR_DIR}"
+  cp $SPARK_CLIENT3_JAR $SPARK_CLIENT3_JAR_DIR
+fi
 
-BUILD_COMMAND_SPARK3=("$MVN" clean package -P$SPARK3_PROFILE_ID -pl 
client-spark/spark3-shaded -DskipTests -am $@ $SPARK3_MVN_OPTS)
+if [ "$WITH_MR" == "true" ]; then
+  BUILD_COMMAND_MR=("$MVN" clean package -Pmr,$HADOOP_PROFILE_ID -pl 
client-mr/core -DskipTests -am $@)
 
-echo -e "\nBuilding with..."
-echo -e "\$ ${BUILD_COMMAND_SPARK3[@]}\n"
-"${BUILD_COMMAND_SPARK3[@]}"
+  echo -e "\nBuilding with..."
+  echo -e "\$ ${BUILD_COMMAND_MR[@]}\n"
+  "${BUILD_COMMAND_MR[@]}"
 
-SPARK_CLIENT3_JAR_DIR="${CLIENT_JAR_DIR}/spark3"
-mkdir -p $SPARK_CLIENT3_JAR_DIR
-SPARK_CLIENT3_JAR="${RSS_HOME}/client-spark/spark3-shaded/target/rss-client-spark3-shaded-${VERSION}.jar"
-echo "copy $SPARK_CLIENT3_JAR to ${SPARK_CLIENT3_JAR_DIR}"
-cp $SPARK_CLIENT3_JAR $SPARK_CLIENT3_JAR_DIR
+  MR_CLIENT_JAR_DIR="${CLIENT_JAR_DIR}/mr"
+  mkdir -p $MR_CLIENT_JAR_DIR
+  
MR_CLIENT_JAR="${RSS_HOME}/client-mr/core/target/shaded/rss-client-mr-${VERSION}-shaded.jar"
+  echo "copy $MR_CLIENT_JAR to ${MR_CLIENT_JAR_DIR}"
+  cp $MR_CLIENT_JAR $MR_CLIENT_JAR_DIR
+fi
 
-BUILD_COMMAND_MR=("$MVN" clean package -Pmr,$HADOOP_PROFILE_ID -pl 
client-mr/core -DskipTests -am $@)
-echo -e "\nBuilding with..."
-echo -e "\$ ${BUILD_COMMAND_MR[@]}\n"
-"${BUILD_COMMAND_MR[@]}"
-MR_CLIENT_JAR_DIR="${CLIENT_JAR_DIR}/mr"
-mkdir -p $MR_CLIENT_JAR_DIR
-MR_CLIENT_JAR="${RSS_HOME}/client-mr/core/target/shaded/rss-client-mr-${VERSION}-shaded.jar"
-echo "copy $MR_CLIENT_JAR to ${MR_CLIENT_JAR_DIR}"
-cp $MR_CLIENT_JAR $MR_CLIENT_JAR_DIR
-
-BUILD_COMMAND_TEZ=("$MVN" clean package -Ptez,$HADOOP_PROFILE_ID -pl 
client-tez -DskipTests -am $@)
-echo -e "\nBuilding with..."
-echo -e "\$ ${BUILD_COMMAND_TEZ[@]}\n"
-"${BUILD_COMMAND_TEZ[@]}"
-TEZ_CLIENT_JAR_DIR="${CLIENT_JAR_DIR}/tez"
-mkdir -p $TEZ_CLIENT_JAR_DIR
-TEZ_CLIENT_JAR="${RSS_HOME}/client-tez/target/shaded/rss-client-tez-${VERSION}-shaded.jar"
-echo "copy $TEZ_CLIENT_JAR to ${TEZ_CLIENT_JAR_DIR}"
-cp $TEZ_CLIENT_JAR $TEZ_CLIENT_JAR_DIR
+if [ "$WITH_TEZ" == "true" ]; then
+  BUILD_COMMAND_TEZ=("$MVN" clean package -Ptez,$HADOOP_PROFILE_ID -pl 
client-tez -DskipTests -am $@)
+
+  echo -e "\nBuilding with..."
+  echo -e "\$ ${BUILD_COMMAND_TEZ[@]}\n"
+  "${BUILD_COMMAND_TEZ[@]}"
+
+  TEZ_CLIENT_JAR_DIR="${CLIENT_JAR_DIR}/tez"
+  mkdir -p $TEZ_CLIENT_JAR_DIR
+  
TEZ_CLIENT_JAR="${RSS_HOME}/client-tez/target/shaded/rss-client-tez-${VERSION}-shaded.jar"
+  echo "copy $TEZ_CLIENT_JAR to ${TEZ_CLIENT_JAR_DIR}"
+  cp $TEZ_CLIENT_JAR $TEZ_CLIENT_JAR_DIR
+fi
+
+if [ "$WITH_DASHBOARD" == "true" ]; then
+  BUILD_COMMAND_DASHBOARD=("$MVN" clean package -Pdashboard -pl dashboard 
-DskipTests -am $@)
+
+  echo -e "\nBuilding with..."
+  echo -e "\$ ${BUILD_COMMAND_DASHBOARD[@]}\n"
+  "${BUILD_COMMAND_DASHBOARD[@]}"
+
+  DASHBOARD_JAR_DIR="${DISTDIR}/jars/dashboard"
+  mkdir -p $DASHBOARD_JAR_DIR
+  DASHBOARD_JAR="${RSS_HOME}/dashboard/target/dashboard-${VERSION}.jar"
+  echo "copy $DASHBOARD_JAR to ${DASHBOARD_JAR_DIR}"
+  cp $DASHBOARD_JAR $DASHBOARD_JAR_DIR
+  cp "${RSS_HOME}"/dashboard/target/jars/* ${DASHBOARD_JAR_DIR}
+fi
 
 cp -r bin $DISTDIR
 cp -r conf $DISTDIR

Reply via email to