4156: Update comments, remove excess cut, tweak GEM_HOME-reporting.
[arvados-dev.git] / jenkins / run-docker-tests.sh
1 #!/bin/bash
2
3 EXITCODE=0
4
5 COLUMNS=80
6
7 title () {
8   printf "\n%*s\n\n" $(((${#title}+$COLUMNS)/2)) "********** $1 **********"
9 }
10
11 docker_push () {
12   # Sometimes docker push fails; retry it a few times if necessary.
13   for i in `seq 1 5`; do
14     $DOCKER push $*
15     ECODE=$?
16     if [[ "$ECODE" == "0" ]]; then
17       break
18     fi
19   done
20
21   if [[ "$ECODE" != "0" ]]; then
22     title "!!!!!! docker push $* failed !!!!!!"
23     EXITCODE=$(($EXITCODE + $ECODE))
24   fi
25 }
26
27 timer_reset() {
28     t0=$SECONDS
29 }
30
31 timer() {
32     echo -n "$(($SECONDS - $t0))s"
33 }
34
35 # Sanity check
36 if ! [[ -n "$WORKSPACE" ]]; then
37   echo >&2
38   echo >&2 "Error: WORKSPACE environment variable not set"
39   echo >&2
40   exit 1
41 fi
42
43 echo $WORKSPACE
44
45 # find the docker binary
46 DOCKER=`which docker.io`
47
48 if [[ "$DOCKER" == "" ]]; then
49   DOCKER=`which docker`
50 fi
51
52 if [[ "$DOCKER" == "" ]]; then
53   title "Error: you need to have docker installed. Could not find the docker executable."
54   exit 1
55 fi
56
57 # DOCKER
58 title "Starting docker build"
59
60 timer_reset
61
62 # clean up the docker build environment
63 cd "$WORKSPACE"
64 cd docker
65 ./build.sh realclean
66
67 rm -f config.yml
68
69 # Get test config.yml file
70 cp $HOME/docker/config.yml .
71
72 ./build.sh
73
74 ECODE=$?
75
76 if [[ "$ECODE" != "0" ]]; then
77   title "!!!!!! docker BUILD FAILED !!!!!!"
78   EXITCODE=$(($EXITCODE + $ECODE))
79 fi
80
81 title "docker build complete (`timer`)"
82
83 title "uploading images"
84
85 timer_reset
86
87 if [[ "$ECODE" == "0" ]]; then
88   docker_push arvados/api
89   docker_push arvados/compute
90   docker_push arvados/doc
91   docker_push arvados/workbench
92   docker_push arvados/keep
93   docker_push arvados/shell
94 else
95   title "upload arvados images SKIPPED because build failed"
96 fi
97
98 title "upload arvados images complete (`timer`)"
99
100 title "Starting docker java-bwa-samtools build"
101
102 timer_reset
103
104 ./build.sh java-bwa-samtools-image
105
106 ECODE=$?
107
108 if [[ "$ECODE" != "0" ]]; then
109   title "!!!!!! docker java-bwa-samtools BUILD FAILED !!!!!!"
110   EXITCODE=$(($EXITCODE + $ECODE))
111 fi
112
113 title "docker build java-bwa-samtools complete (`timer`)"
114
115 title "upload arvados/jobs image"
116
117 timer_reset
118 if [[ "$ECODE" == "0" ]]; then
119   docker_push arvados/jobs
120 else
121   title "upload arvados/jobs image SKIPPED because build failed"
122 fi
123
124 title "upload arvados/jobs image complete (`timer`)"
125
126 exit $EXITCODE