Merge branch 'master' into 13823-bionic
[arvados.git] / build / run-build-docker-jobs-image.sh
index 7b5ea4ecec6bcda873ed8a98ea09d862e8dd86f4..b1e99fc66b27c40d3ac13542e6f7de76ba37e202 100755 (executable)
@@ -1,17 +1,20 @@
 #!/bin/bash
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
 
 function usage {
     echo >&2
     echo >&2 "usage: $0 [options]"
     echo >&2
     echo >&2 "$0 options:"
+    echo >&2 "  -t, --tags                    version tag for docker"
     echo >&2 "  -u, --upload                  Upload the images (docker push)"
     echo >&2 "  --no-cache                    Don't use build cache"
     echo >&2 "  -h, --help                    Display this help and exit"
     echo >&2
     echo >&2 "  If no options are given, just builds the images."
 }
-
 upload=false
 
 # NOTE: This requires GNU getopt (part of the util-linux package on Debian-based distros).
@@ -42,7 +45,7 @@ do
                   exit 1
                   ;;
                 *)
-                  echo "WARNING: --tags is deprecated and doesn't do anything";
+                  version_tag="$2";
                   shift 2
                   ;;
             esac
@@ -118,23 +121,20 @@ cd "$WORKSPACE"
 python_sdk_ts=$(cd sdk/python && timestamp_from_git)
 cwl_runner_ts=$(cd sdk/cwl && timestamp_from_git)
 
-python_sdk_version=$(cd sdk/python && nohash_version_from_git 0.1)-2
-cwl_runner_version=$(cd sdk/cwl && nohash_version_from_git 1.0)-3
+python_sdk_version=$(cd sdk/python && nohash_version_from_git 0.1)
+cwl_runner_version=$(cd sdk/cwl && nohash_version_from_git 1.0)
 
 if [[ $python_sdk_ts -gt $cwl_runner_ts ]]; then
-    cwl_runner_version=$python_sdk_version
-    gittag=$(cd sdk/python && git log --first-parent --max-count=1 --format=format:%H)
-else
-    gittag=$(cd sdk/cwl && git log --first-parent --max-count=1 --format=format:%H)
+    cwl_runner_version=$(cd sdk/python && nohash_version_from_git 1.0)
 fi
 
 echo cwl_runner_version $cwl_runner_version python_sdk_version $python_sdk_version
 
 cd docker/jobs
 docker build $NOCACHE \
-       --build-arg python_sdk_version=$python_sdk_version \
-       --build-arg cwl_runner_version=$cwl_runner_version \
-       -t arvados/jobs:$gittag .
+       --build-arg python_sdk_version=${python_sdk_version}-2 \
+       --build-arg cwl_runner_version=${cwl_runner_version}-4 \
+       -t arvados/jobs:$cwl_runner_version .
 
 ECODE=$?
 
@@ -156,8 +156,11 @@ if docker --version |grep " 1\.[0-9]\." ; then
     # -f flag removed in Docker 1.12
     FORCE=-f
 fi
-
-docker tag $FORCE arvados/jobs:$gittag arvados/jobs:latest
+if ! [[ -z "$version_tag" ]]; then
+    docker tag $FORCE arvados/jobs:$cwl_runner_version arvados/jobs:"$version_tag"
+else
+    docker tag $FORCE arvados/jobs:$cwl_runner_version arvados/jobs:latest
+fi
 
 ECODE=$?
 
@@ -179,9 +182,12 @@ else
         ## 20150526 nico -- *sometimes* dockerhub needs re-login
         ## even though credentials are already in .dockercfg
         docker login -u arvados
-
-        docker_push arvados/jobs:$gittag
-        docker_push arvados/jobs:latest
+        if ! [[ -z "$version_tag" ]]; then
+            docker_push arvados/jobs:"$version_tag"
+        else
+           docker_push arvados/jobs:$cwl_runner_version
+           docker_push arvados/jobs:latest
+        fi
         title "upload arvados images finished (`timer`)"
     else
         title "upload arvados images SKIPPED because no --upload option set (`timer`)"