From: Brett Smith Date: Tue, 16 Jan 2024 15:38:42 +0000 (-0500) Subject: 21230: Refactor out pip_install_sdist function X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/96c3f7c75fb5c57915fb66daf70ced5f2724448f 21230: Refactor out pip_install_sdist function This can be useful to supporting tooling like test_with_arvbox.sh. Arvados-DCO-1.1-Signed-off-by: Brett Smith --- diff --git a/tools/arvbox/lib/arvbox/docker/common.sh b/tools/arvbox/lib/arvbox/docker/common.sh index 81516ef08a..54ec9403ad 100644 --- a/tools/arvbox/lib/arvbox/docker/common.sh +++ b/tools/arvbox/lib/arvbox/docker/common.sh @@ -100,3 +100,22 @@ bundler_binstubs() { fi flock $GEMLOCK $BUNDLER binstubs --all } + +# Usage: Pass any number of directories. Relative directories will be taken as +# relative to /usr/src/arvados. This function will build an sdist from each, +# then pip install them all in the arvbox virtualenv. +pip_install_sdist() { + local sdist_dir="$(mktemp --directory --tmpdir py_sdist.XXXXXXXX)" + trap 'rm -rf "$sdist_dir"' RETURN + local src_dir + for src_dir in "$@"; do + case "$src_dir" in + /*) ;; + *) src_dir="/usr/src/arvados/$src_dir" ;; + esac + env -C "$src_dir" /opt/arvados-py/bin/python3 setup.py sdist --dist-dir="$sdist_dir" \ + || return + done + /opt/arvados-py/bin/pip install "$sdist_dir"/* || return + return +} diff --git a/tools/arvbox/lib/arvbox/docker/service/sdk/run-service b/tools/arvbox/lib/arvbox/docker/service/sdk/run-service index 3e00b0ea20..216066530e 100755 --- a/tools/arvbox/lib/arvbox/docker/service/sdk/run-service +++ b/tools/arvbox/lib/arvbox/docker/service/sdk/run-service @@ -14,10 +14,4 @@ run_bundler --binstubs=binstubs cd /usr/src/arvados/sdk/cli run_bundler --binstubs=binstubs -python_srcdir="$(mktemp --directory --tmpdir pysrc.XXXXXXXX)" -trap 'rm -rf "$python_srcdir"' EXIT INT TERM QUIT -for subdir in sdk/python services/fuse sdk/cwl; do - env -C "/usr/src/arvados/$subdir" \ - /opt/arvados-py/bin/python3 setup.py sdist --dist-dir="$python_srcdir" -done -/opt/arvados-py/bin/pip install "$python_srcdir"/* +pip_install_sdist sdk/python services/fuse sdk/cwl