Merge branch 'master' into 7370-package-install-testing
authorPeter Amstutz <peter.amstutz@curoverse.com>
Thu, 15 Oct 2015 20:24:07 +0000 (16:24 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Thu, 15 Oct 2015 20:24:07 +0000 (16:24 -0400)
Conflicts:
jenkins/run-build-packages-one-target.sh

1  2 
jenkins/run-build-packages-one-target.sh

index 3e0e13670fc419cffd89af87ecc90c966668bc22,2d8d8dfe7b0d91d925836a840d3aa714a15a26f8..5b8f2ceb5d5acabedf2751e168e35a9d46a04e84
@@@ -10,8 -10,8 +10,10 @@@ Syntax
      Distribution to build packages for (default: debian7)
  --command
      Build command to execute (default: use built-in Docker image command)
 +--test-packages
 +    Run package install test script "test-packages-$target.sh"
+ --debug
+     Output debug information (default: false)
  
  WORKSPACE=path         Path to the Arvados source tree to build packages from
  
@@@ -34,7 -34,7 +36,7 @@@ if ! [[ -d "$WORKSPACE" ]]; the
  fi
  
  PARSEDOPTS=$(getopt --name "$0" --longoptions \
-     help,test-packages,target:,command: \
 -    help,debug,target:,command: \
++    help,debug,test-packages,target:,command: \
      -- "" "$@")
  if [ $? -ne 0 ]; then
      exit 1
@@@ -72,48 -73,34 +78,48 @@@ don
  
  set -e
  
 -if [[ "$COMMAND" != "" ]]; then
 -  COMMAND="/usr/local/rvm/bin/rvm-exec default bash /jenkins/$COMMAND --target $TARGET$DEBUG"
 +if [[ -n "$test_packages" ]]; then
 +    if [[ -n "$(find $WORKSPACE/packages/$TARGET -name *.rpm)" ]] ; then
 +        createrepo $WORKSPACE/packages/$TARGET
 +    fi
 +
 +    if [[ -n "$(find $WORKSPACE/packages/$TARGET -name *.deb)" ]] ; then
 +        (cd $WORKSPACE/packages/$TARGET
 +         dpkg-scanpackages . /dev/null | gzip -c > Packages.gz
 +        )
 +    fi
 +
 +    COMMAND="/jenkins/test-packages-$TARGET.sh"
 +    IMAGE="arvados/package-test:$TARGET"
 +else
 +    IMAGE="arvados/build:$TARGET"
 +    if [[ "$COMMAND" != "" ]]; then
-         COMMAND="/usr/local/rvm/bin/rvm-exec default bash /jenkins/$COMMAND --target $TARGET"
++        COMMAND="/usr/local/rvm/bin/rvm-exec default bash /jenkins/$COMMAND --target $TARGET$DEBUG"
 +    fi
  fi
  
 -FINAL_EXITCODE=0
  JENKINS_DIR=$(dirname "$(readlink -e "$0")")
  
 -run_docker() {
 -    local tag=$1; shift
 -    if docker run -v "$JENKINS_DIR:/jenkins" -v "$WORKSPACE:/arvados" \
 -          --env ARVADOS_DEBUG=1 "arvados/build:$tag" $COMMAND; then
 -        # Success - nothing more to do.
 -        true
 -    else
 -        FINAL_EXITCODE=$?
 -        echo "ERROR: $tag build failed with exit status $FINAL_EXITCODE." >&2
 -    fi
 -}
 +if [[ -n "$test_packages" ]]; then
 +    pushd "$JENKINS_DIR/package-test-dockerfiles"
 +else
 +    pushd "$JENKINS_DIR/dockerfiles"
 +fi
  
 -# In case it's needed, build the container. This costs just a few
 -# seconds when the container already exist, so it's not a big deal to
 -# do it on each run.
 -cd "$JENKINS_DIR/dockerfiles"
  echo $TARGET
  cd $TARGET
 -time docker build -t arvados/build:$TARGET .
 -cd ..
 +time docker build --tag=$IMAGE .
 +popd
  
 -run_docker $TARGET
 +FINAL_EXITCODE=0
 +
 +if docker run --rm -v "$JENKINS_DIR:/jenkins" -v "$WORKSPACE:/arvados" \
 +          --env ARVADOS_DEBUG=1 "$IMAGE" $COMMAND; then
 +    # Success - nothing more to do.
 +    true
 +else
 +    FINAL_EXITCODE=$?
 +    echo "ERROR: $tag build failed with exit status $FINAL_EXITCODE." >&2
 +fi
  
  exit $FINAL_EXITCODE