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

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


The following commit(s) were added to refs/heads/master by this push:
     new 4c81134  [BEAM-9541] Create a Gradle task to push all docker images, 
and use it instead of bash when building the release candidate.
     new f4f4611  Merge pull request #13811 from ibzib/flink-docker-push
4c81134 is described below

commit 4c81134dd9206fd6cb9060a9b973fc111b8fbd64
Author: Kyle Weaver <kcwea...@google.com>
AuthorDate: Tue Jan 26 13:05:26 2021 -0800

    [BEAM-9541] Create a Gradle task to push all docker images, and use it
    instead of bash when building the release candidate.
    
    Bash arrays make no sense and I've seen the ones in this file cause at 
least two bugs already.
    Delegating to Gradle also lets as many of the tasks run in parallel as the 
OS allows.
    
    Also use LOCAL_CLONE_DIR instead of LOCAL_PYTHON_STAGING_DIR for clarity, 
and rm it afterwards.
---
 build.gradle                                       |  9 +++++
 .../src/main/scripts/build_release_candidate.sh    | 38 ++++------------------
 sdks/java/container/build.gradle                   |  5 +++
 sdks/python/container/build.gradle                 |  6 ++++
 4 files changed, 26 insertions(+), 32 deletions(-)

diff --git a/build.gradle b/build.gradle
index 12f355d..d1c5857 100644
--- a/build.gradle
+++ b/build.gradle
@@ -307,6 +307,15 @@ task typescriptPreCommit() {
   dependsOn ":sdks:python:test-suites:tox:py38:jest"
 }
 
+task pushAllDockerImages() {
+  dependsOn ":runners:spark:job-server:container:dockerPush"
+  dependsOn ":sdks:java:container:pushAll"
+  dependsOn ":sdks:python:container:pushAll"
+  for (version in project.ext.allFlinkVersions) {
+    dependsOn ":runners:flink:${version}:job-server-container:dockerPush"
+  }
+}
+
 // Configure the release plugin to do only local work; the release manager 
determines what, if
 // anything, to push. On failure, the release manager can reset the branch 
without pushing.
 release {
diff --git a/release/src/main/scripts/build_release_candidate.sh 
b/release/src/main/scripts/build_release_candidate.sh
index 1c618ca..8c57261 100755
--- a/release/src/main/scripts/build_release_candidate.sh
+++ b/release/src/main/scripts/build_release_candidate.sh
@@ -57,13 +57,6 @@ PYTHON_ARTIFACTS_DIR=python
 BEAM_ROOT_DIR=beam
 WEBSITE_ROOT_DIR=beam-site
 
-DOCKER_IMAGE_DEFAULT_REPO_ROOT=apache
-DOCKER_IMAGE_DEFAULT_REPO_PREFIX=beam_
-
-JAVA_VER=("java8" "java11")
-PYTHON_VER=("python3.6" "python3.7" "python3.8")
-FLINK_VER=("1.8" "1.9" "1.10")
-
 echo "================Setting Up Environment Variables==========="
 echo "Which release version are you working on: "
 read RELEASE
@@ -257,39 +250,20 @@ read confirmation
 if [[ $confirmation = "y" ]]; then
   echo "============Staging SDK docker images on docker hub========="
   cd ~
-  if [[ -d ${LOCAL_PYTHON_STAGING_DIR} ]]; then
-    rm -rf ${LOCAL_PYTHON_STAGING_DIR}
+  if [[ -d ${LOCAL_CLONE_DIR} ]]; then
+    rm -rf ${LOCAL_CLONE_DIR}
   fi
-  mkdir -p ${LOCAL_PYTHON_STAGING_DIR}
-  cd ${LOCAL_PYTHON_STAGING_DIR}
+  mkdir -p ${LOCAL_CLONE_DIR}
+  cd ${LOCAL_CLONE_DIR}
 
   echo '-------------------Cloning Beam Release Branch-----------------'
   git clone ${GIT_REPO_URL}
   cd ${BEAM_ROOT_DIR}
   git checkout ${RELEASE_BRANCH}
 
-  echo '-------------------Generating and Pushing Python 
images-----------------'
-  ./gradlew :sdks:python:container:buildAll -Pdocker-pull-licenses 
-Pdocker-tag=${RELEASE}_rc${RC_NUM}
-  for ver in "${PYTHON_VER[@]}"; do
-    docker push 
${DOCKER_IMAGE_DEFAULT_REPO_ROOT}/${DOCKER_IMAGE_DEFAULT_REPO_PREFIX}${ver}_sdk:${RELEASE}_rc${RC_NUM}
 &
-  done
+  ./gradlew :pushAllDockerImages -Pdocker-pull-licenses 
-Pdocker-tag=${RELEASE}_rc${RC_NUM}
 
-  echo '-------------------Generating and Pushing Java images-----------------'
-  echo "Building containers for the following Java versions:" "${JAVA_VER[@]}"
-  for ver in "${JAVA_VER[@]}"; do
-    ./gradlew :sdks:java:container:${ver}:dockerPush -Pdocker-pull-licenses 
-Pdocker-tag=${RELEASE}_rc${RC_NUM}
-  done
-
-  echo '-------------Generating and Pushing Flink job server 
images-------------'
-  echo "Building containers for the following Flink versions:" 
"${FLINK_VER[@]}"
-  for ver in "${FLINK_VER[@]}"; do
-    ./gradlew ":runners:flink:${ver}:job-server-container:dockerPush" 
-Pdocker-tag="${RELEASE}_rc${RC_NUM}"
-  done
-
-  echo '-------------Generating and Pushing Spark job server 
image-------------'
-  ./gradlew ":runners:spark:job-server:container:dockerPush" 
-Pdocker-tag="${RELEASE}_rc${RC_NUM}"
-
-  rm -rf ~/${PYTHON_ARTIFACTS_DIR}
+  rm -rf ~/${LOCAL_CLONE_DIR}
 fi
 
 echo "[Current Step]: Update beam-site"
diff --git a/sdks/java/container/build.gradle b/sdks/java/container/build.gradle
index c2a9ef1..e0867eb 100644
--- a/sdks/java/container/build.gradle
+++ b/sdks/java/container/build.gradle
@@ -87,3 +87,8 @@ task pullLicenses(type: Exec) {
 artifacts {
   sdkHarnessLauncher file: file('./build/target'), builtBy: goBuild
 }
+
+task pushAll {
+  dependsOn ":sdks:java:container:java8:dockerPush"
+  dependsOn ":sdks:java:container:java11:dockerPush"
+}
diff --git a/sdks/python/container/build.gradle 
b/sdks/python/container/build.gradle
index 6093a14..b36ecc32 100644
--- a/sdks/python/container/build.gradle
+++ b/sdks/python/container/build.gradle
@@ -56,6 +56,12 @@ task buildAll {
   dependsOn ':sdks:python:container:py38:docker'
 }
 
+task pushAll {
+  dependsOn ':sdks:python:container:py36:dockerPush'
+  dependsOn ':sdks:python:container:py37:dockerPush'
+  dependsOn ':sdks:python:container:py38:dockerPush'
+}
+
 artifacts {
   sdkHarnessLauncher file: file('./build/target/launcher'), builtBy: goBuild
 }

Reply via email to