X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/151df8c3b177e4971bfbdf68c87d89599dbe0812..83bd8999a9cc528ff0169d19bd9d974760a59a45:/build/run-library.sh diff --git a/build/run-library.sh b/build/run-library.sh index 3d619622e4..5fc494cdf5 100755 --- a/build/run-library.sh +++ b/build/run-library.sh @@ -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,7 +10,7 @@ # older packages. LICENSE_PACKAGE_TS=20151208015500 -RAILS_PACKAGE_ITERATION=7 +RAILS_PACKAGE_ITERATION=8 debug_echo () { echo "$@" >"$STDOUT_IF_DEBUG" @@ -100,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 @@ -226,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" @@ -350,6 +365,15 @@ fpm_build () { COMMAND_ARR+=(--deb-ignore-iteration-in-dependencies) fi + # 12271 - As FPM-generated packages don't include scripts by default, the + # packages cleanup on upgrade depends on files being listed on the %files + # section in the generated SPEC files. To remove DIRECTORIES, they need to + # be listed in that sectiontoo, so we need to add this parameter to properly + # remove lingering dirs. + if [[ rpm = "$FORMAT" ]]; then + COMMAND_ARR+=('--rpm-auto-add-directories') + fi + if [[ "${DEBUG:-0}" != "0" ]]; then COMMAND_ARR+=('--verbose' '--log' 'info') fi