Install python requirements directly

There are cases when an issue has been fixed upstream in a
dependency but not yet released and it is desirable to install
that version in a built image. pbr does not support such urls
in requirements files because releasing software that depends
on unreleased software is quite dangerous.

Update assemble and install-from-bindep to install -r requirements.txt
before installing the actual software so that image builds with
such requirements lines will work.

Change-Id: Ie17a66bdc4ea0609ce4e66051f659cbd829fdd5d
This commit is contained in:
Monty Taylor 2019-01-21 20:50:43 +00:00
parent 0e1cd6ee85
commit d3c6bbc7af
No known key found for this signature in database
GPG Key ID: 7BAE94BC7141A594
2 changed files with 15 additions and 1 deletions

View File

@ -59,7 +59,14 @@ python -m venv /tmp/venv
/tmp/venv/bin/pip install -U pip wheel
# Install everything so that the wheel cache is populated
# with transitive depends.
# with transitive depends. If a requirements.txt file exists,
# install it directly so that people can use git url syntax
# to do things like pick up patched but unreleased versions
# of dependencies.
if [ -f /tmp/src/requirements.txt ] ; then
/tmp/venv/bin/pip install --cache-dir=/output/wheels -r /tmp/src/requirements.txt
cp /tmp/src/requirements.txt /output/requirements.txt
fi
/tmp/venv/bin/pip install --cache-dir=/output/wheels /output/wheels/*whl
# Install each of the extras so that we collect all possibly

View File

@ -18,6 +18,13 @@ set -e
apt-get update
apt-get -y install $(cat /output/bindep/run.txt)
# If a requirements.txt file exists,
# install it directly so that people can use git url syntax
# to do things like pick up patched but unreleased versions
# of dependencies.
if [ -f /output/requirements.txt ] ; then
pip install --cache-dir=/output/wheels -r /output/requirements.txt
fi
pip install --cache-dir=/output/wheels /output/wheels/*.whl
# clean up after ourselves