X-Git-Url: https://gerrit.linuxfoundation.org/infra/gitweb?a=blobdiff_plain;f=shell%2Fpython-tools-install.sh;h=660d5f26b353227d978fe663fd83ba706fdff5b1;hb=e1a8dc64cfe10360ebdcadd28806adf800760ce7;hp=dbfa1310c1801b17fe97b91d15af1ed3f0bb3d19;hpb=066055a8b0c03ba248cc8806ac8f0e3d1a08828a;p=releng%2Fglobal-jjb.git diff --git a/shell/python-tools-install.sh b/shell/python-tools-install.sh index dbfa1310..660d5f26 100644 --- a/shell/python-tools-install.sh +++ b/shell/python-tools-install.sh @@ -8,18 +8,54 @@ # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html ############################################################################## +echo "---> python-tools-install.sh" -set -eux -o pipefail +set -eu -o pipefail -REQUIREMENTS_FILE=$(mktemp /tmp/requirements-XXXX.txt) +# Generate a list of 'pip' packages pre-build/post-build +# During post-build, perform a diff on the two lists and copy files to archive directory +echo "Listing pip packages" +pip_list_pre=/tmp/pip-list-pre.txt +pip_list_post=/tmp/pip-list-post.txt +pip_list_diffs=/tmp/pip-list-diffs.txt +if [[ -f $pip_list_pre ]]; then + python3 -m pip list > $pip_list_post + echo "Compare pip packages before/after..." + if diff --suppress-common-lines $pip_list_pre $pip_list_post \ + | tee $pip_list_diffs; then + echo "No diffs" | tee $pip_list_diffs + fi + mkdir -p "$WORKSPACE/archives" + cp "$pip_list_pre" "$pip_list_post" "$pip_list_diffs" "$WORKSPACE/archives" + rm -rf "$pip_list_pre" "$pip_list_post" "$pip_list_diffs" + ls "$WORKSPACE/archives" + # Would just like to 'exit 0' here but we can't because the + # log-deploy.sh script is 'appended' to this file and it would not + # be executed. +else + python3 -m pip list > "$pip_list_pre" + # These 'pip installs' only need to be executed during pre-build -cat << EOF > "$REQUIREMENTS_FILE" -lftools~=0.17.1 -python-heatclient~=1.16.1 -python-openstackclient~=3.16.0 + requirements_file=$(mktemp /tmp/requirements-XXXX.txt) + + # Note: To test lftools master branch change the lftools configuration below in + # the requirements file from "lftools[openstack]~=#.##.#" to + # git+https://github.com/lfit/releng-lftools.git#egg=lftools[openstack] + + echo "Generating Requirements File" + cat << 'EOF' > "$requirements_file" +lftools[openstack] +python-heatclient +python-openstackclient +niet~=1.4.2 +tox>=3.7.0 # Tox 3.7 or greater is necessary for parallel mode support +yq EOF -# Use `python -m pip` to ensure we are using the latest version of pip -python -m pip install --user --quiet --upgrade pip~=18.0 setuptools~=40.2.0 -python -m pip install --user --quiet --upgrade -r "$REQUIREMENTS_FILE" -pip freeze + # Use `python -m pip` to ensure we are using the latest version of pip + python3 -m venv ~/.local + python3 -m pip install --user --quiet --upgrade pip + python3 -m pip install --user --quiet --upgrade setuptools + python3 -m pip install --user --quiet --upgrade --upgrade-strategy eager -r "$requirements_file" + rm -rf "$requirements_file" +fi