2 # Copyright (C) The Arvados Authors. All rights reserved.
4 # SPDX-License-Identifier: AGPL-3.0
6 read -rd "\000" helpmessage <<EOF
7 Build an arvados/jobs Docker image from local git tree.
9 Intended for use by developers working on arvados-python-client or
10 arvados-cwl-runner and need to run a crunch job with a custom package
11 version. Also supports building custom cwltool if CWLTOOL is set.
14 WORKSPACE=/path/to/arvados $(basename $0)
16 WORKSPACE=path Path to the Arvados source tree to build packages from
17 CWLTOOL=path (optional) Path to cwltool git repository.
23 if [[ -z "$WORKSPACE" ]] ; then
26 echo "Must set WORKSPACE"
30 if [[ -z "$ARVADOS_API_HOST" || -z "$ARVADOS_API_TOKEN" ]] ; then
33 echo "Must set ARVADOS_API_HOST and ARVADOS_API_TOKEN"
39 (cd sdk/python && python setup.py sdist)
40 sdk=$(cd sdk/python/dist && ls -t arvados-python-client-*.tar.gz | head -n1)
42 (cd sdk/cwl && python setup.py sdist)
43 runner=$(cd sdk/cwl/dist && ls -t arvados-cwl-runner-*.tar.gz | head -n1)
45 rm -rf sdk/cwl/cwltool_dist
46 mkdir -p sdk/cwl/cwltool_dist
47 if [[ -n "$CWLTOOL" ]] ; then
48 (cd "$CWLTOOL" && python setup.py sdist)
49 cwltool=$(cd "$CWLTOOL/dist" && ls -t cwltool-*.tar.gz | head -n1)
50 cp "$CWLTOOL/dist/$cwltool" $WORKSPACE/sdk/cwl/cwltool_dist
53 . build/run-library.sh
55 python_sdk_ts=$(cd sdk/python && timestamp_from_git)
56 cwl_runner_ts=$(cd sdk/cwl && timestamp_from_git)
58 if [[ $python_sdk_ts -gt $cwl_runner_ts ]]; then
59 gittag=$(git log --first-parent --max-count=1 --format=format:%H sdk/python)
61 gittag=$(git log --first-parent --max-count=1 --format=format:%H sdk/cwl)
64 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"
65 echo arv-keepdocker arvados/jobs $gittag
66 arv-keepdocker arvados/jobs $gittag