Merge branch '11309-crunchstat-summary-containers'
[arvados.git] / build / run-library.sh
index a13470bc434a7f52ba82cda6b3af5a85be107b0d..cf7755b68de780631cee4319ea720160146ffdff 100755 (executable)
@@ -1,4 +1,7 @@
 #!/bin/bash
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
 
 # A library of functions shared by the various scripts in this directory.
 
@@ -7,6 +10,8 @@
 # older packages.
 LICENSE_PACKAGE_TS=20151208015500
 
+RAILS_PACKAGE_ITERATION=8
+
 debug_echo () {
     echo "$@" >"$STDOUT_IF_DEBUG"
 }
@@ -98,19 +103,27 @@ package_go_binary() {
 
     mkdir -p "$GOPATH/src/git.curoverse.com"
     ln -sfn "$WORKSPACE" "$GOPATH/src/git.curoverse.com/arvados.git"
+    (cd "$GOPATH/src/git.curoverse.com/arvados.git" && "$GOPATH/bin/govendor" sync -v)
 
     cd "$GOPATH/src/git.curoverse.com/arvados.git/$src_path"
     local version="$(version_from_git)"
     local timestamp="$(timestamp_from_git)"
 
-    # If the command imports anything from the Arvados SDK, bump the
-    # version number and build a new package whenever the SDK changes.
+    # Update the version number and build a new package if the vendor
+    # bundle has changed, or the command imports anything from the
+    # Arvados SDK and the SDK has changed.
+    declare -a checkdirs=(vendor)
     if grep -qr git.curoverse.com/arvados .; then
-        cd "$GOPATH/src/git.curoverse.com/arvados.git/sdk/go"
-        if [[ $(timestamp_from_git) -gt "$timestamp" ]]; then
+        checkdirs+=(sdk/go)
+    fi
+    for dir in ${checkdirs[@]}; do
+        cd "$GOPATH/src/git.curoverse.com/arvados.git/$dir"
+        ts="$(timestamp_from_git)"
+        if [[ "$ts" -gt "$timestamp" ]]; then
             version=$(version_from_git)
+            timestamp="$ts"
         fi
-    fi
+    done
 
     cd $WORKSPACE/packages/$TARGET
     test_package_presence $prog $version go
@@ -224,8 +237,12 @@ test_package_presence() {
       local complete_pkgname="$pkgname-$version-$iteration.$rpm_architecture.rpm"
     fi
 
-    if [[ -e "$complete_pkgname" ]]; then
+    # See if we can skip building the package, only if it already exists in the
+    # processed/ directory. If so, move it back to the packages directory to make
+    # sure it gets picked up by the test and/or upload steps.
+    if [[ -e "processed/$complete_pkgname" ]]; then
       echo "Package $complete_pkgname exists, not rebuilding!"
+      mv processed/$complete_pkgname .
       return 1
     else
       echo "Package $complete_pkgname not found, building"