X-Git-Url: https://git.arvados.org/arvados-dev.git/blobdiff_plain/b5494642ea862658418d2f9a419b10d1fe25431a..4d3faccfe98c1f00987d7bc1ab6509ef347cc2ac:/jenkins/run-build-packages.sh diff --git a/jenkins/run-build-packages.sh b/jenkins/run-build-packages.sh index fbd5fa5..31734a9 100755 --- a/jenkins/run-build-packages.sh +++ b/jenkins/run-build-packages.sh @@ -1,5 +1,6 @@ #!/bin/bash +. ./run-library.sh read -rd "\000" helpmessage <&2 "$0: unrecognized argument '$2'. Try: $0 --help" @@ -59,6 +67,10 @@ while [ $# -gt 0 ]; do shift done +if [[ "$COMMAND" != "" ]]; then + COMMAND="/usr/local/rvm/bin/rvm-exec default bash /jenkins/$COMMAND --target $TARGET" +fi + STDOUT_IF_DEBUG=/dev/null STDERR_IF_DEBUG=/dev/null DASHQ_UNLESS_DEBUG=-q @@ -68,10 +80,6 @@ if [[ "$DEBUG" != 0 ]]; then DASHQ_UNLESS_DEBUG= fi -debug_echo () { - echo "$@" >"$STDOUT_IF_DEBUG" -} - declare -a PYTHON_BACKPORTS PYTHON3_BACKPORTS PYTHON2_VERSION=2.7 @@ -169,22 +177,6 @@ if [[ "$?" != 0 ]]; then exit 1 fi -find_easy_install() { - for version_suffix in "$@"; do - if "easy_install$version_suffix" --version >/dev/null 2>&1; then - echo "easy_install$version_suffix" - return 0 - fi - done - cat >&2 <"$STDOUT_IF_DEBUG" 2>"$STDERR_IF_DEBUG" - fi -} - -# Build packages for everything -fpm_build () { - # The package source. Depending on the source type, this can be a - # path, or the name of the package in an upstream repository (e.g., - # pip). - PACKAGE=$1 - shift - # The name of the package to build. Defaults to $PACKAGE. - PACKAGE_NAME=${1:-$PACKAGE} - shift - # Optional: the vendor of the package. Should be "Curoverse, Inc." for - # packages of our own software. Passed to fpm --vendor. - VENDOR=$1 - shift - # The type of source package. Passed to fpm -s. Default "python". - PACKAGE_TYPE=${1:-python} - shift - # Optional: the package version number. Passed to fpm -v. - VERSION=$1 - shift - - case "$PACKAGE_TYPE" in - python) - # All Arvados Python2 packages depend on Python 2.7. - # Make sure we build with that for consistency. - set -- "$@" --python-bin python2.7 \ - --python-easyinstall "$EASY_INSTALL2" \ - --python-package-name-prefix "$PYTHON2_PKG_PREFIX" \ - --depends "$PYTHON2_PACKAGE" - ;; - python3) - # fpm does not actually support a python3 package type. Instead - # we recognize it as a convenience shortcut to add several - # necessary arguments to fpm's command line later, after we're - # done handling positional arguments. - PACKAGE_TYPE=python - set -- "$@" --python-bin python3 \ - --python-easyinstall "$EASY_INSTALL3" \ - --python-package-name-prefix "$PYTHON3_PKG_PREFIX" \ - --depends "$PYTHON3_PACKAGE" - ;; - esac - - declare -a COMMAND_ARR=("fpm" "--maintainer=Ward Vandewege " "-s" "$PACKAGE_TYPE" "-t" "$FORMAT") - if [ python = "$PACKAGE_TYPE" ]; then - COMMAND_ARR+=(--exclude=\*/{dist,site}-packages/tests/\*) - fi - - if [[ "$PACKAGE_NAME" != "$PACKAGE" ]]; then - COMMAND_ARR+=('-n' "$PACKAGE_NAME") - fi - - if [[ "$VENDOR" != "" ]]; then - COMMAND_ARR+=('--vendor' "$VENDOR") - fi - - if [[ "$VERSION" != "" ]]; then - COMMAND_ARR+=('-v' "$VERSION") - fi - - # Append remaining function arguments directly to fpm's command line. - for i; do - COMMAND_ARR+=("$i") - done - - # Append --depends X and other arguments specified by fpm-info.sh in - # the package source dir. These are added last so they can override - # the arguments added by this script. - declare -a fpm_args=() - declare -a fpm_depends=() - if [[ -d "$PACKAGE" ]]; then - FPM_INFO="$PACKAGE/fpm-info.sh" - else - FPM_INFO="${WORKSPACE}/backports/${PACKAGE_TYPE}-${PACKAGE}/fpm-info.sh" - fi - if [[ -e "$FPM_INFO" ]]; then - debug_echo "Loading fpm overrides from $FPM_INFO" - source "$FPM_INFO" - fi - for i in "${fpm_depends[@]}"; do - COMMAND_ARR+=('--depends' "$i") - done - COMMAND_ARR+=("${fpm_args[@]}") - - COMMAND_ARR+=("$PACKAGE") - - debug_echo -e "\n${COMMAND_ARR[@]}\n" - - FPM_RESULTS=$("${COMMAND_ARR[@]}") - FPM_EXIT_CODE=$? - - fpm_verify $FPM_EXIT_CODE $FPM_RESULTS -} - -# verify build results -fpm_verify () { - FPM_EXIT_CODE=$1 - shift - FPM_RESULTS=$@ - - FPM_PACKAGE_NAME='' - if [[ $FPM_RESULTS =~ ([A-Za-z0-9_\.-]*\.)(deb|rpm) ]]; then - FPM_PACKAGE_NAME=${BASH_REMATCH[1]}${BASH_REMATCH[2]} - fi - - if [[ "$FPM_PACKAGE_NAME" == "" ]]; then - EXITCODE=1 - echo "Error: $PACKAGE: Unable to figure out package name from fpm results:" - echo - echo $FPM_RESULTS - echo - elif [[ "$FPM_RESULTS" =~ "File already exists" ]]; then - echo "Package $FPM_PACKAGE_NAME exists, not rebuilding" - elif [[ 0 -ne "$FPM_EXIT_CODE" ]]; then - echo "Error building package for $1:\n $FPM_RESULTS" - fi -} - if [[ -f /etc/profile.d/rvm.sh ]]; then source /etc/profile.d/rvm.sh GEM="rvm-exec default gem"