3 read -rd "\000" helpmessage <<EOF
4 Build an arvados/jobs Docker image from local git tree.
6 Intended for use by developers working on arvados-python-client or
7 arvados-cwl-runner and need to run a crunch job with a custom package
8 version. Also supports building custom cwltool if CWLTOOL is set.
11 WORKSPACE=/path/to/arvados $(basename $0)
13 WORKSPACE=path Path to the Arvados source tree to build packages from
14 CWLTOOL=path (optional) Path to cwltool git repository.
20 if [[ -z "$WORKSPACE" ]] ; then
23 echo "Must set WORKSPACE"
27 if [[ -z "$ARVADOS_API_HOST" || -z "$ARVADOS_API_TOKEN" ]] ; then
30 echo "Must set ARVADOS_API_HOST and ARVADOS_API_TOKEN"
34 (cd "$WORKSPACE/sdk/python" && python setup.py sdist)
35 sdk=$(cd "$WORKSPACE/sdk/python/dist" && ls -t arvados-python-client-*.tar.gz | head -n1)
37 (cd "$WORKSPACE/sdk/cwl" && python setup.py sdist)
38 runner=$(cd "$WORKSPACE/sdk/cwl/dist" && ls -t arvados-cwl-runner-*.tar.gz | head -n1)
40 rm -rf "$WORKSPACE/sdk/cwl/cwltool_dist"
41 mkdir -p "$WORKSPACE/sdk/cwl/cwltool_dist"
42 if [[ -n "$CWLTOOL" ]] ; then
43 (cd "$CWLTOOL" && python setup.py sdist)
44 cwltool=$(cd "$CWLTOOL/dist" && ls -t cwltool-*.tar.gz | head -n1)
45 cp "$CWLTOOL/dist/$cwltool" $WORKSPACE/sdk/cwl/cwltool_dist
48 gittag=$(cd "$WORKSPACE/sdk/cwl" && git log --first-parent --max-count=1 --format=format:%H)
49 docker build --build-arg sdk=$sdk --build-arg runner=$runner --build-arg cwltool=$cwltool -f "$WORKSPACE/sdk/dev-jobs.dockerfile" -t arvados/jobs:$gittag "$WORKSPACE/sdk"
50 echo arv-keepdocker arvados/jobs $gittag
51 arv-keepdocker arvados/jobs $gittag