Merge branch '21276-test-race'
[arvados.git] / lib / install / arvadostest_docker_build.sh
1 #!/bin/bash
2
3 set -ex -o pipefail
4
5 SRC=$(realpath $(dirname ${BASH_SOURCE[0]})/../..)
6
7 ctrname=arvadostest
8 ctrbase=${ctrname}
9 if [[ "${1}" != "--update" ]] || ! docker images --format={{.Repository}} | grep -x ${ctrbase}; then
10     ctrbase=debian:10
11 fi
12
13 if docker ps -a --format={{.Names}} | grep -x ${ctrname}; then
14     echo >&2 "container name already in use -- another builder running?"
15     exit 1
16 fi
17
18 (cd ${SRC}/cmd/arvados-server && go install)
19 trap "docker rm --volumes ${ctrname}" ERR
20 docker run -it --name ${ctrname} \
21        -v ${GOPATH:-${HOME}/go}/bin/arvados-server:/bin/arvados-server:ro \
22        -v ${SRC}:/src/arvados:ro \
23        -v /tmp \
24        --env http_proxy \
25        --env https_proxy \
26        ${ctrbase} \
27        bash -c "
28 set -ex -o pipefail
29 arvados-server install -type test
30 pg_ctlcluster 11 main start
31 cp -a /src/arvados /tmp/
32 cd /tmp/arvados
33 rm -rf tmp config.yml database.yml services/api/config/database.yml
34 mkdir tmp
35 build/run-tests.sh WORKSPACE=\$PWD --temp /tmp/arvados/tmp --only x"
36 docker commit ${ctrname} ${ctrname}
37 trap - ERR
38 docker rm --volumes ${ctrname}