X-Git-Url: https://git.arvados.org/arvados-dev.git/blobdiff_plain/61ed4ec992c01d2bb7c052983de9f917d3407edc..858cd93950d0fd7b621e9e4656261856e60856ad:/jenkins/run-docker-tests.sh diff --git a/jenkins/run-docker-tests.sh b/jenkins/run-docker-tests.sh index 244c0d7..5be7b99 100755 --- a/jenkins/run-docker-tests.sh +++ b/jenkins/run-docker-tests.sh @@ -8,15 +8,56 @@ title () { printf "\n%*s\n\n" $(((${#title}+$COLUMNS)/2)) "********** $1 **********" } +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 + + if [[ "$ECODE" != "0" ]]; then + title "!!!!!! docker push $* failed !!!!!!" + EXITCODE=$(($EXITCODE + $ECODE)) + fi +} + +timer_reset() { + t0=$SECONDS +} + +timer() { + echo -n "$(($SECONDS - $t0))s" +} + +# Sanity check +if ! [[ -n "$WORKSPACE" ]]; then + echo >&2 + echo >&2 "Error: WORKSPACE environment variable not set" + echo >&2 + exit 1 +fi + echo $WORKSPACE +# 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" -# 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) +timer_reset # clean up the docker build environment cd "$WORKSPACE" @@ -37,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