X-Git-Url: https://git.arvados.org/arvados-dev.git/blobdiff_plain/b67325fa722e4cf3d2e68cffa401ee1304866396..858cd93950d0fd7b621e9e4656261856e60856ad:/jenkins/run-docker-tests.sh diff --git a/jenkins/run-docker-tests.sh b/jenkins/run-docker-tests.sh index 8ff8736..5be7b99 100755 --- a/jenkins/run-docker-tests.sh +++ b/jenkins/run-docker-tests.sh @@ -8,25 +8,67 @@ title () { printf "\n%*s\n\n" $(((${#title}+$COLUMNS)/2)) "********** $1 **********" } -echo $WORKSPACE +docker_push () { + # Sometimes docker push fails; retry it a few times if necessary. + for i in `seq 1 5`; do + $DOCKER push $* + ECODE=$? + if [[ "$ECODE" == "0" ]]; then + break + fi + done -# clean up existing docker containers and images -docker.io stop $(docker.io ps -a -q) -docker.io rm $(docker.io ps -a -q) -docker.io rmi $(docker.io images -q) + if [[ "$ECODE" != "0" ]]; then + title "!!!!!! docker push $* failed !!!!!!" + EXITCODE=$(($EXITCODE + $ECODE)) + fi +} -# clean up build files so we can re-build -rm -f $WORKSPACE/docker/*-image +timer_reset() { + t0=$SECONDS +} -rm -f docker/config.yml +timer() { + echo -n "$(($SECONDS - $t0))s" +} -# Get test config.yml file -cp $HOME/docker/config.yml docker/ +# Sanity check +if ! [[ -n "$WORKSPACE" ]]; then + echo >&2 + echo >&2 "Error: WORKSPACE environment variable not set" + echo >&2 + exit 1 +fi + +echo $WORKSPACE -# DOCS +# find the docker binary +DOCKER=`which docker.io` + +if [[ "$DOCKER" == "" ]]; then + DOCKER=`which docker` +fi + +if [[ "$DOCKER" == "" ]]; then + title "Error: you need to have docker installed. Could not find the docker executable." + exit 1 +fi + +# DOCKER title "Starting docker build" + +timer_reset + +# clean up the docker build environment cd "$WORKSPACE" cd docker +./build.sh realclean + +rm -f config.yml + +# Get test config.yml file +cp $HOME/docker/config.yml . + ./build.sh ECODE=$? @@ -36,6 +78,51 @@ if [[ "$ECODE" != "0" ]]; then EXITCODE=$(($EXITCODE + $ECODE)) fi -title "docker build complete" +title "docker build complete (`timer`)" + +title "uploading images" + +timer_reset + +if [[ "$ECODE" == "0" ]]; then + docker_push arvados/api + docker_push arvados/compute + docker_push arvados/doc + docker_push arvados/workbench + docker_push arvados/keep + docker_push arvados/keepproxy + docker_push arvados/shell + docker_push arvados/sso +else + title "upload arvados images SKIPPED because build failed" +fi + +title "upload arvados images complete (`timer`)" + +title "Starting docker java-bwa-samtools build" + +timer_reset + +./build.sh java-bwa-samtools-image + +ECODE=$? + +if [[ "$ECODE" != "0" ]]; then + title "!!!!!! docker java-bwa-samtools BUILD FAILED !!!!!!" + EXITCODE=$(($EXITCODE + $ECODE)) +fi + +title "docker build java-bwa-samtools complete (`timer`)" + +title "upload arvados/jobs image" + +timer_reset +if [[ "$ECODE" == "0" ]]; then + docker_push arvados/jobs +else + title "upload arvados/jobs image SKIPPED because build failed" +fi + +title "upload arvados/jobs image complete (`timer`)" exit $EXITCODE