5416: Run keepproxy, arv-git-httpd, and SSL proxy services during Workbench test...
[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/keepproxy
94   docker_push arvados/shell
95   docker_push arvados/sso
96 else
97   title "upload arvados images SKIPPED because build failed"
98 fi
99
100 title "upload arvados images complete (`timer`)"
101
102 title "Starting docker java-bwa-samtools build"
103
104 timer_reset
105
106 ./build.sh java-bwa-samtools-image
107
108 ECODE=$?
109
110 if [[ "$ECODE" != "0" ]]; then
111   title "!!!!!! docker java-bwa-samtools BUILD FAILED !!!!!!"
112   EXITCODE=$(($EXITCODE + $ECODE))
113 fi
114
115 title "docker build java-bwa-samtools complete (`timer`)"
116
117 title "upload arvados/jobs image"
118
119 timer_reset
120 if [[ "$ECODE" == "0" ]]; then
121   docker_push arvados/jobs
122 else
123   title "upload arvados/jobs image SKIPPED because build failed"
124 fi
125
126 title "upload arvados/jobs image complete (`timer`)"
127
128 exit $EXITCODE