diff --git a/tasks/python_venv_install.yml b/tasks/python_venv_install.yml index 041c38e..2aa44fc 100644 --- a/tasks/python_venv_install.yml +++ b/tasks/python_venv_install.yml @@ -50,7 +50,7 @@ - name: Create the virtualenv (if it does not exist) command: >- virtualenv - {{ _venv_create_extra_options }} + --no-download --python={{ venv_python_executable }} {{ (ansible_pkg_mgr == 'apt') | ternary('--always-copy', '') }} {{ venv_install_destination_path }} diff --git a/tasks/python_venv_preflight.yml b/tasks/python_venv_preflight.yml index 3c6a3d0..5f3bdfe 100644 --- a/tasks/python_venv_preflight.yml +++ b/tasks/python_venv_preflight.yml @@ -21,34 +21,15 @@ when: - venv_install_destination_path is not defined -- name: Collect the version of virtualenv from either stdout or stderr - shell: | - virtualenv --version 2>&1 || echo 'none' - args: - executable: /bin/bash +- name: Check for virtualenv command being available on system path + command: 'which virtualenv' + register: virtualenv_installed + ignore_errors: yes changed_when: false - failed_when: false - register: _virtualenv_version - # _virtualenv_version may take two forms: - # (stdout) '15.1.0' - # (stderr) 'virtualenv 20.0.1 from /usr/local/lib/python2.7/dist-packages/virtualenv/__init__.pyc' -- name: Extract just the virtualevn version number - set_fact: - _virtualenv_version_number: "{{ (_virtualenv_version.stdout.split(' ') | length == 1) | ternary(_virtualenv_version.stdout, _virtualenv_version.stdout.split(' ')[1]) }}" - -- name: Fail when required virtualenv version is not present +- name: Fail when required virtualenv is not present fail: msg: >- - The required virtualenv version is not present. - The minimum version of 1.10 is required, but - {{ _virtualenv_version_number }} is installed. + The command 'virtualenv' version is not present. when: - - ((_virtualenv_version_number | trim) == 'none') or - ((_virtualenv_version_number | trim) is version('1.10', '<')) - -- name: Set extra virtualenv parameters - set_fact: - _venv_create_extra_options: >- - {{ ((_virtualenv_version_number | trim) is version('14.0.0', '<')) | ternary('--never-download', '--no-download') }} - {{ ((_virtualenv_version_number | trim) is version('1.7.0', '<')) | ternary('--no-site-packages', '') }} + virtualenv_installed.rc != 0 diff --git a/tasks/python_venv_wheel_build.yml b/tasks/python_venv_wheel_build.yml index 760d384..7cfd416 100644 --- a/tasks/python_venv_wheel_build.yml +++ b/tasks/python_venv_wheel_build.yml @@ -69,7 +69,7 @@ - name: Create the wheel build virtualenv (if it does not exist) command: >- virtualenv - {{ _venv_create_extra_options }} + --no-download --python={{ venv_python_executable }} {{ (ansible_pkg_mgr == 'apt') | ternary('--always-copy', '') }} {{ venv_build_host_venv_path }}