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

ztang pushed a commit to annotated tag release-0.3.0-RC0
in repository https://gitbox.apache.org/repos/asf/submarine.git

commit c4470ec5d36827b3b350e15e29dc60db38cea1cf
Author: Zhankun Tang <[email protected]>
AuthorDate: Wed Jan 22 14:39:26 2020 +0800

    SUBMARINE-349. Support using existing artifacts to build mini-submarine 
image
    
    ### What is this PR for?
    The hard-coded submarine version(0.3.0-SNAPSHOT) in build_mini-submarine.sh 
is not convenient. When doing a release, we need the image to package a 
candidate artifacts like 0.3.0.
    This JIRA is for extending the build script to package specified artifacts. 
Setting environment variable submarine_version and release_candidates_path can 
trigger this code path.
    It will copy binary tarball with the submarine_version to the local dir and 
build the image.
    
    ### What type of PR is it?
    Improvement
    
    ### What is the Jira issue?
    https://issues.apache.org/jira/browse/SUBMARINE-349
    
    ### How should this be tested?
    Put submarine candidate aritifacts to a folder like 
"~/releases/submarine-release"
    $ ls $release_candidates_path
    submarine-dist-0.3.0-hadoop-2.9.tar.gz        
submarine-dist-0.3.0-src.tar.gz.asc
    submarine-dist-0.3.0-hadoop-2.9.tar.gz.asc    
submarine-dist-0.3.0-src.tar.gz.sha512
    submarine-dist-0.3.0-hadoop-2.9.tar.gz.sha512 
submarine-dist-0.3.0-src.tar.gz
    
    export submarine_version=0.3.0
    export release_candidates_path=~/releases/submarine-release
    ./build_mini-submarine.sh
    docker run -it -h submarine-dev --net=bridge --privileged -P 
local/mini-submarine:0.3.0 /bin/bash
    In the container, check the submarine jar version is 0.3.0
    
    ### Questions:
    * Does the licenses files need an update? No
    * Is there breaking changes for older versions? No
    * Does this needs documentation? Yes
    
    Author: Zhankun Tang <[email protected]>
    
    Closes #158 from tangzhankun/submarine-349 and squashes the following 
commits:
    
    165421a [Zhankun Tang] Simplify variable default value assignment and fix a 
typo in document
    9a807c0 [Zhankun Tang] Refine the doc
    099b966 [Zhankun Tang] Add doc
    82990d2 [Zhankun Tang] Support using existing artifacts to build 
mini-submarine image
    
    (cherry picked from commit 15d5c915a4023af6713e0b3d6afd33fb44ad879f)
---
 dev-support/mini-submarine/Dockerfile                |  2 +-
 dev-support/mini-submarine/README.md                 | 20 ++++++++++++++++++++
 dev-support/mini-submarine/build_mini-submarine.sh   | 19 ++++++++++++++++---
 .../submarine/run_customized_submarine-all_mnist.sh  |  3 ++-
 .../submarine/run_submarine_mnist_tony.sh            |  4 ++--
 .../submarine/run_submarine_mnist_tony_rpc.sh        |  3 ++-
 6 files changed, 43 insertions(+), 8 deletions(-)

diff --git a/dev-support/mini-submarine/Dockerfile 
b/dev-support/mini-submarine/Dockerfile
index bdb8f13..3c369ee 100644
--- a/dev-support/mini-submarine/Dockerfile
+++ b/dev-support/mini-submarine/Dockerfile
@@ -116,7 +116,7 @@ ENV IMAGE_N=${IMAGE_NAME}
 # Install Submarine
 ARG SUBMARINE_VERSION=
 ENV SUBMARINE_VER=${SUBMARINE_VERSION}
-ADD submarine-dist-${SUBMARINE_VER}*.tar.gz /opt
+ADD submarine-dist-${SUBMARINE_VER}-hadoop*.tar.gz /opt
 ADD pysubmarine /opt/pysubmarine
 RUN ln -s /opt/submarine-dist-${SUBMARINE_VER}* /opt/submarine-current
 ADD submarine /home/yarn/submarine
diff --git a/dev-support/mini-submarine/README.md 
b/dev-support/mini-submarine/README.md
index a067bed..bc657bf 100644
--- a/dev-support/mini-submarine/README.md
+++ b/dev-support/mini-submarine/README.md
@@ -52,6 +52,26 @@ mvn clean install package -DskipTests
 cd submarine/dev-support/mini-submarine/
 ./build_mini-submarine.sh
 ```
+#### Package An Existing Release Candidates
+When doing release, the release manager might needs to package a artifact 
candidates in this docker image and public the image candidate for a vote.
+In this scenario, we can do this:
+
+Put submarine candidate aritifacts to a folder like 
"~/releases/submarine-release"
+```
+$ ls $release_candidates_path
+submarine-dist-0.3.0-hadoop-2.9.tar.gz        
submarine-dist-0.3.0-src.tar.gz.asc
+submarine-dist-0.3.0-hadoop-2.9.tar.gz.asc    
submarine-dist-0.3.0-src.tar.gz.sha512
+submarine-dist-0.3.0-hadoop-2.9.tar.gz.sha512 submarine-dist-0.3.0-src.tar.gz
+```
+```
+export submarine_version=0.3.0
+export release_candidates_path=~/releases/submarine-release 
+./build_mini-submarine.sh
+#docker run -it -h submarine-dev --net=bridge --privileged -P 
local/mini-submarine:0.3.0 /bin/bash
+docker tag local/mini-submarine:0.3.0 apache/mini-submarine:0.3.0:RC0
+docker push apache/mini-submarine:0.3.0:RC0
+```
+In the container, we can verify that the submarine jar version is the expected 
0.3.0. Then we can upload this image with a "RC" tag for a vote.
 
 ### Run mini-submarine image
 
diff --git a/dev-support/mini-submarine/build_mini-submarine.sh 
b/dev-support/mini-submarine/build_mini-submarine.sh
index 2d40e29..54b0f34 100755
--- a/dev-support/mini-submarine/build_mini-submarine.sh
+++ b/dev-support/mini-submarine/build_mini-submarine.sh
@@ -13,10 +13,13 @@
 # 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 -e
 hadoop_v=2.9.2
 spark_v=2.4.4
-submarine_v=0.3.0-SNAPSHOT
+
+submarine_v=${submarine_version:-"0.3.0-SNAPSHOT"}
+echo "Using submarine version: $submarine_v"
+
 image_name="local/mini-submarine:${submarine_v}"
 
 if [ -L ${BASH_SOURCE-$0} ]; then
@@ -55,10 +58,20 @@ download_package "spark-${spark_v}-bin-hadoop2.7.tgz" 
"http://mirrors.tuna.tsing
 # download zookeeper
 download_package "zookeeper-3.4.14.tar.gz" 
"http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14";
 
+
 if [ ! -d "${SUBMARINE_PROJECT_PATH}/submarine-dist/target" ]; then
   mkdir "${SUBMARINE_PROJECT_PATH}/submarine-dist/target"
 fi
+
 submarine_dist_exists=$(find -L 
"${SUBMARINE_PROJECT_PATH}/submarine-dist/target" -name 
"submarine-dist-${submarine_v}*.tar.gz")
+
+# If exists, use the release candidate artifacts to build image
+if [[ ! -z "${release_candidates_path}" ]]; then
+  submarine_dist_exists=${release_candidates_path}
+  echo "Using release candidates artifacts: ${release_candidates_path}"
+  cp ${release_candidates_path}/submarine-dist-${submarine_v}-hadoop*.tar.gz 
${MINI_PATH}
+fi
+
 # Build source code if the package doesn't exist.
 if [[ -z "${submarine_dist_exists}" ]]; then
   # update tony code
@@ -70,9 +83,9 @@ if [[ -z "${submarine_dist_exists}" ]]; then
 
   cd "${SUBMARINE_PROJECT_PATH}"
   mvn clean package -DskipTests
+  cp 
${SUBMARINE_PROJECT_PATH}/submarine-dist/target/submarine-dist-${submarine_v}*.tar.gz
 ${MINI_PATH}
 fi
 
-cp 
${SUBMARINE_PROJECT_PATH}/submarine-dist/target/submarine-dist-${submarine_v}*.tar.gz
 ${MINI_PATH}
 cp -r ${SUBMARINE_PROJECT_PATH}/submarine-sdk/pysubmarine ${MINI_PATH}
 cp -r ${SUBMARINE_PROJECT_PATH}/docs/database ${MINI_PATH}
 
diff --git 
a/dev-support/mini-submarine/submarine/run_customized_submarine-all_mnist.sh 
b/dev-support/mini-submarine/submarine/run_customized_submarine-all_mnist.sh
index f2432d2..6d3c047 100755
--- a/dev-support/mini-submarine/submarine/run_customized_submarine-all_mnist.sh
+++ b/dev-support/mini-submarine/submarine/run_customized_submarine-all_mnist.sh
@@ -49,7 +49,8 @@ else
   WORKER_CMD="myvenv.zip/venv/bin/python mnist_distributed.py --steps 2 
--data_dir /tmp/data --working_dir /tmp/mode"
 fi
 
-SUBMARINE_VERSION=0.3.0-SNAPSHOT
+SUBMARINE_VERSION=${SUBMARINE_VER:-"0.3.0-SNAPSHOT"}
+
 HADOOP_VERSION=2.9
 
 ${JAVA_CMD} -cp 
/tmp/submarine-all-${SUBMARINE_VERSION}-hadoop-${HADOOP_VERSION}.jar:/usr/local/hadoop/etc/hadoop
 \
diff --git a/dev-support/mini-submarine/submarine/run_submarine_mnist_tony.sh 
b/dev-support/mini-submarine/submarine/run_submarine_mnist_tony.sh
index 93d923e..4711536 100755
--- a/dev-support/mini-submarine/submarine/run_submarine_mnist_tony.sh
+++ b/dev-support/mini-submarine/submarine/run_submarine_mnist_tony.sh
@@ -17,7 +17,7 @@
 
 # Below are configurable variables, please adapt base on your local 
environment.
 # Version of submarine jar
-SUBMARINE_VERSION=0.3.0-SNAPSHOT
+SUBMARINE_VERSION=${SUBMARINE_VER:-"0.3.0-SNAPSHOT"}
 
 # Version of affiliated Hadoop version for this Submarine jar.
 SUBMARINE_HADOOP_VERSION=2.9
@@ -74,7 +74,7 @@ else
   WORKER_CMD="myvenv.zip/$WORKER_CMD"
 fi
 
-${JAVA_CMD} -cp $(${HADOOP_HOME}/bin/hadoop classpath 
--glob):${SUBMARINE_PATH}/submarine-all-${SUBMARINE_VERSION}-hadoop-${SUBMARINE_HADOOP_VERSION}.jar:${HADOOP_CONF_PATH}
 \
+${JAVA_CMD} -cp $(${HADOOP_COMMON_HOME}/bin/hadoop classpath 
--glob):${SUBMARINE_PATH}/submarine-all-${SUBMARINE_VERSION}-hadoop-${SUBMARINE_HADOOP_VERSION}.jar:${HADOOP_CONF_PATH}
 \
  org.apache.submarine.client.cli.Cli job run --name tf-job-001 \
  --framework tensorflow \
  --verbose \
diff --git 
a/dev-support/mini-submarine/submarine/run_submarine_mnist_tony_rpc.sh 
b/dev-support/mini-submarine/submarine/run_submarine_mnist_tony_rpc.sh
index ed016ae..b55f74a 100644
--- a/dev-support/mini-submarine/submarine/run_submarine_mnist_tony_rpc.sh
+++ b/dev-support/mini-submarine/submarine/run_submarine_mnist_tony_rpc.sh
@@ -47,7 +47,8 @@ else
   WORKER_CMD="myvenv.zip/venv/bin/python mnist_distributed.py --steps 2 
--data_dir /tmp/data --working_dir /tmp/mode"
 fi 
 
-SUBMARINE_VERSION=0.3.0-SNAPSHOT
+SUBMARINE_VERSION=${SUBMARINE_VER:-"0.3.0-SNAPSHOT"}
+
 HADOOP_VERSION=2.9
 
 ${JAVA_CMD} -cp 
/opt/submarine-dist-${SUBMARINE_VERSION}-hadoop-${HADOOP_VERSION}/submarine-all-${SUBMARINE_VERSION}-hadoop-${HADOOP_VERSION}.jar:/usr/local/hadoop/etc/hadoop:/opt/submarine-dist-${SUBMARINE_VERSION}-hadoop-${HADOOP_VERSION}/conf
 \


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

Reply via email to