Support venv in ansible-test virtualenv scripts (#73163)
* ansible-test - prefer venv over virtualenv on Python 3 (#73000)
Also pin virtualenv to 16.7.10 for older Mac OS X systems. This was the version being installed
anway with the previous constraint (<20).
On systems with Python 3, now prefer venv over virtualenv. Test to see if venv is functional since
some systems have a non-functional venv installation (such as Debian).
(cherry picked from commit 850a77f639
)
* Make the new ansible-test venv behavior opt-in
Co-authored-by: Sam Doooran <sdoran@redhat.com>
This commit is contained in:
parent
17566d7a17
commit
4452d98662
4 changed files with 18 additions and 11 deletions
|
@ -0,0 +1,3 @@
|
|||
minor_changes:
|
||||
- ansible-test - virtualenv helper scripts now prefer ``venv`` on Python 3 over ``virtualenv`` if the ``ANSIBLE_TEST_PREFER_VENV`` environment variable is set
|
||||
- ansible-test - remote macOS instances no longer install ``virtualenv`` during provisioning
|
|
@ -2,7 +2,13 @@
|
|||
# Create and activate a fresh virtual environment with `source virtualenv-isolated.sh`.
|
||||
|
||||
rm -rf "${OUTPUT_DIR}/venv"
|
||||
"${ANSIBLE_TEST_PYTHON_INTERPRETER}" -m virtualenv --python "${ANSIBLE_TEST_PYTHON_INTERPRETER}" "${OUTPUT_DIR}/venv"
|
||||
|
||||
# Try to use 'venv' if it is available, then fallback to 'virtualenv' since some systems provide 'venv' although it is non-functional.
|
||||
if [ -z "${ANSIBLE_TEST_PREFER_VENV:-}" ] || [[ "${ANSIBLE_TEST_PYTHON_VERSION}" =~ ^2\. ]] || ! "${ANSIBLE_TEST_PYTHON_INTERPRETER}" -m venv "${OUTPUT_DIR}/venv" > /dev/null 2>&1; then
|
||||
rm -rf "${OUTPUT_DIR}/venv"
|
||||
"${ANSIBLE_TEST_PYTHON_INTERPRETER}" -m virtualenv --python "${ANSIBLE_TEST_PYTHON_INTERPRETER}" "${OUTPUT_DIR}/venv"
|
||||
fi
|
||||
|
||||
set +ux
|
||||
source "${OUTPUT_DIR}/venv/bin/activate"
|
||||
set -ux
|
||||
|
|
|
@ -2,7 +2,13 @@
|
|||
# Create and activate a fresh virtual environment with `source virtualenv.sh`.
|
||||
|
||||
rm -rf "${OUTPUT_DIR}/venv"
|
||||
"${ANSIBLE_TEST_PYTHON_INTERPRETER}" -m virtualenv --system-site-packages --python "${ANSIBLE_TEST_PYTHON_INTERPRETER}" "${OUTPUT_DIR}/venv"
|
||||
|
||||
# Try to use 'venv' if it is available, then fallback to 'virtualenv' since some systems provide 'venv' although it is non-functional.
|
||||
if [ -z "${ANSIBLE_TEST_PREFER_VENV:-}" ] || [[ "${ANSIBLE_TEST_PYTHON_VERSION}" =~ ^2\. ]] || ! "${ANSIBLE_TEST_PYTHON_INTERPRETER}" -m venv --system-site-packages "${OUTPUT_DIR}/venv" > /dev/null 2>&1; then
|
||||
rm -rf "${OUTPUT_DIR}/venv"
|
||||
"${ANSIBLE_TEST_PYTHON_INTERPRETER}" -m virtualenv --system-site-packages --python "${ANSIBLE_TEST_PYTHON_INTERPRETER}" "${OUTPUT_DIR}/venv"
|
||||
fi
|
||||
|
||||
set +ux
|
||||
source "${OUTPUT_DIR}/venv/bin/activate"
|
||||
set -ux
|
||||
|
|
|
@ -88,18 +88,10 @@ elif [ "${platform}" = "centos" ]; then
|
|||
done
|
||||
|
||||
install_pip
|
||||
elif [ "${platform}" = "macos" ]; then
|
||||
while true; do
|
||||
pip3 install --disable-pip-version-check --quiet \
|
||||
'virtualenv<20' \
|
||||
&& break
|
||||
echo "Failed to install packages. Sleeping before trying again..."
|
||||
sleep 10
|
||||
done
|
||||
elif [ "${platform}" = "osx" ]; then
|
||||
while true; do
|
||||
pip install --disable-pip-version-check --quiet \
|
||||
'virtualenv<20' \
|
||||
'virtualenv==16.7.10' \
|
||||
&& break
|
||||
echo "Failed to install packages. Sleeping before trying again..."
|
||||
sleep 10
|
||||
|
|
Loading…
Reference in a new issue