-gittag=$(cd "$WORKSPACE/sdk/cwl" && git log --first-parent --max-count=1 --format=format:%H)
-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"
-echo arv-keepdocker arvados/jobs $gittag
-arv-keepdocker arvados/jobs $gittag
+rm -rf sdk/cwl/cwlutils_dist
+mkdir -p sdk/cwl/cwlutils_dist
+if [[ -n "$CWL_UTILS" ]] ; then
+ (cd "$CWL_UTILS" && python3 setup.py sdist)
+ cwlutils=$(cd "$CWL_UTILS/dist" && ls -t cwl-utils-*.tar.gz | head -n1)
+ cp "$CWL_UTILS/dist/$cwlutils" $WORKSPACE/sdk/cwl/cwlutils_dist
+fi
+
+. build/run-library.sh
+
+# This defines python_sdk_version and cwl_runner_version with python-style
+# package suffixes (.dev/rc)
+calculate_python_sdk_cwl_package_versions
+
+set -x
+docker build --no-cache \
+ --build-arg sdk=$sdk \
+ --build-arg runner=$runner \
+ --build-arg salad=$salad \
+ --build-arg cwltool=$cwltool \
+ --build-arg pythoncmd=$py \
+ --build-arg pipcmd=$pipcmd \
+ --build-arg cwlutils=$cwlutils \
+ -f "$WORKSPACE/sdk/dev-jobs.dockerfile" \
+ -t arvados/jobs:$cwl_runner_version \
+ "$WORKSPACE/sdk"
+
+echo arv-keepdocker arvados/jobs $cwl_runner_version
+arv-keepdocker arvados/jobs $cwl_runner_version