#!/bin/sh
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+set -x
if ! which arvbox >/dev/null ; then
export PATH=$PATH:$(readlink -f $(dirname $0)/../../tools/arvbox/bin)
reset_container=1
leave_running=0
config=dev
-docker_pull=1
+tag="latest"
while test -n "$1" ; do
arg="$1"
config=$2
shift ; shift
;;
- --no-docker-pull)
- docker_pull=0
- shift
+ --tag)
+ tag=$2
+ shift ; shift
;;
-h|--help)
- echo "$0 [--no-reset-container] [--leave-running] [--no-docker-pull] [--config dev|localdemo]"
+ echo "$0 [--no-reset-container] [--leave-running] [--config dev|localdemo] [--tag docker_tag]"
exit
;;
*)
fi
if test $reset_container = 1 ; then
+ arvbox stop
+ docker rm $ARVBOX_CONTAINER
arvbox reset -f
fi
-arvbox start $config
+arvbox start $config $tag
arvbox pipe <<EOF
set -eu -o pipefail
. /usr/local/lib/arvbox/common.sh
-cd /usr/src/arvados/sdk/cwl
-python setup.py sdist
-pip_install \$(ls -r dist/arvados-cwl-runner-*.tar.gz | head -n1)
+if test $config = dev ; then
+ cd /usr/src/arvados/sdk/cwl
+ python setup.py sdist
+ pip_install \$(ls -r dist/arvados-cwl-runner-*.tar.gz | head -n1)
+fi
+
+pip install cwltest
mkdir -p /tmp/cwltest
cd /tmp/cwltest
export ARVADOS_API_HOST_INSECURE=1
export ARVADOS_API_TOKEN=\$(cat /var/lib/arvados/superuser_token)
-if test $docker_pull = 1 ; then
- arv-keepdocker --pull arvados/jobs
+
+if test "$tag" = "latest" ; then
+ arv-keepdocker --pull arvados/jobs $tag
+else
+ jobsimg=\$(curl https://versions.arvados.org/v1/commit/$tag | python -c "import json; import sys; sys.stdout.write(json.load(sys.stdin)['Versions']['Docker']['arvados/jobs'])")
+ arv-keepdocker --pull arvados/jobs \$jobsimg
+ docker tag arvados/jobs:\$jobsimg arvados/jobs:latest
+ arv-keepdocker arvados/jobs latest
fi
cat >/tmp/cwltest/arv-cwl-jobs <<EOF2
chmod +x /tmp/cwltest/arv-cwl-containers
env
-exec ./run_test.sh $@
+exec ./run_test.sh RUNNER=/tmp/cwltest/arv-cwl-containers EXTRA=--compute-checksum $@
EOF
CODE=$?