Merge branch 'origin-8442-cwl-crunch2' closes #8442
[arvados.git] / sdk / cwl / test_with_arvbox.sh
1 #!/bin/sh
2
3 if ! which arvbox >/dev/null ; then
4     export PATH=$PATH:$(readlink -f $(dirname $0)/../../tools/arvbox/bin)
5 fi
6
7 reset_container=1
8 leave_running=0
9 config=dev
10 docker_pull=1
11
12 while test -n "$1" ; do
13     arg="$1"
14     case "$arg" in
15         --no-reset-container)
16             reset_container=0
17             shift
18             ;;
19         --leave-running)
20             leave_running=1
21             shift
22             ;;
23         --config)
24             config=$2
25             shift ; shift
26             ;;
27         --no-docker-pull)
28             docker_pull=0
29             shift
30             ;;
31         -h|--help)
32             echo "$0 [--no-reset-container] [--leave-running] [--no-docker-pull] [--config dev|localdemo]"
33             exit
34             ;;
35         *)
36             break
37             ;;
38     esac
39 done
40
41 if test -z "$ARVBOX_CONTAINER" ; then
42    export ARVBOX_CONTAINER=cwltest
43 fi
44
45 if test $reset_container = 1 ; then
46     arvbox reset -f
47 fi
48
49 arvbox start $config
50
51 arvbox pipe <<EOF
52 set -eu -o pipefail
53
54 . /usr/local/lib/arvbox/common.sh
55
56 cd /usr/src/arvados/sdk/cwl
57 python setup.py sdist
58 pip_install \$(ls -r dist/arvados-cwl-runner-*.tar.gz | head -n1)
59
60 mkdir -p /tmp/cwltest
61 cd /tmp/cwltest
62 if ! test -d common-workflow-language ; then
63   git clone https://github.com/common-workflow-language/common-workflow-language.git
64 fi
65 cd common-workflow-language
66 git pull
67 export ARVADOS_API_HOST=localhost:8000
68 export ARVADOS_API_HOST_INSECURE=1
69 export ARVADOS_API_TOKEN=\$(cat /var/lib/arvados/superuser_token)
70
71 if test $docker_pull = 1 ; then
72   arv-keepdocker --pull arvados/jobs
73 fi
74
75 cat >/tmp/cwltest/arv-cwl-jobs <<EOF2
76 #!/bin/sh
77 exec arvados-cwl-runner --api=jobs \\\$@
78 EOF2
79 chmod +x /tmp/cwltest/arv-cwl-jobs
80
81 cat >/tmp/cwltest/arv-cwl-containers <<EOF2
82 #!/bin/sh
83 exec arvados-cwl-runner --api=containers \\\$@
84 EOF2
85 chmod +x /tmp/cwltest/arv-cwl-containers
86
87 env
88 exec ./run_test.sh $@
89 EOF
90
91 CODE=$?
92
93 if test $leave_running = 0 ; then
94     arvbox stop
95 fi
96
97 exit $CODE