X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3aaefcb3c76ff470b475d950398d01255e87712a..964c763379e2ea98e46584267342ced694e3349a:/build/run-build-packages-one-target.sh diff --git a/build/run-build-packages-one-target.sh b/build/run-build-packages-one-target.sh index 8365fecadb..f208963832 100755 --- a/build/run-build-packages-one-target.sh +++ b/build/run-build-packages-one-target.sh @@ -21,6 +21,8 @@ Syntax: Build only a specific package --only-test Test only a specific package +--arch + Build a specific architecture (amd64 or arm64, defaults to native architecture) --force-build Build even if the package exists upstream or if it has already been built locally @@ -54,13 +56,14 @@ if ! [[ -d "$WORKSPACE" ]]; then fi PARSEDOPTS=$(getopt --name "$0" --longoptions \ - help,debug,test-packages,target:,command:,only-test:,force-test,only-build:,force-build,build-version: \ + help,debug,test-packages,target:,command:,only-test:,force-test,only-build:,force-build,arch:,build-version: \ -- "" "$@") if [ $? -ne 0 ]; then exit 1 fi TARGET=debian10 +ARCH= FORCE_BUILD=0 COMMAND= DEBUG= @@ -90,6 +93,9 @@ while [ $# -gt 0 ]; do --only-build) ONLY_BUILD="$2"; shift ;; + --arch) + ARCH="$2"; shift + ;; --debug) DEBUG=" --debug" ARVADOS_DEBUG="1" @@ -106,7 +112,11 @@ while [ $# -gt 0 ]; do elif ! [[ "$2" =~ (.*)-(.*) ]]; then echo >&2 "FATAL: --build-version '$2' does not include an iteration. Try '${2}-1'?" exit 1 + elif ! [[ "$2" =~ ^[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+|)(~rc[0-9]+|~dev[0-9]+|)-[0-9]+$ ]]; then + echo >&2 "FATAL: --build-version '$2' is invalid, must match pattern ^[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+|)(~rc[0-9]+|~dev[0-9]+|)-[0-9]+$" + exit 1 else + [[ "$2" =~ (.*)-(.*) ]] ARVADOS_BUILDING_VERSION="${BASH_REMATCH[1]}" ARVADOS_BUILDING_ITERATION="${BASH_REMATCH[2]}" fi @@ -186,7 +196,7 @@ fi echo $TARGET cd $TARGET -time docker build --tag=$IMAGE . +time docker build --tag "$IMAGE" --build-arg HOSTTYPE=$HOSTTYPE . popd if test -z "$packages" ; then @@ -194,6 +204,7 @@ if test -z "$packages" ; then arvados-client arvados-controller arvados-dispatch-cloud + arvados-dispatch-lsf arvados-docker-cleaner arvados-git-httpd arvados-health @@ -306,6 +317,7 @@ else --env ARVADOS_DEBUG=$ARVADOS_DEBUG \ --env "ONLY_BUILD=$ONLY_BUILD" \ --env "FORCE_BUILD=$FORCE_BUILD" \ + --env "ARCH=$ARCH" \ "$IMAGE" $COMMAND then echo