Skip to content

Commit

Permalink
Revert "ensure-tox: use venv to install"
Browse files Browse the repository at this point in the history
This reverts commit 6d78fc4.

In some environments, this error is being seen:

2020-05-07 18:36:02.139422 | debian-buster |   "msg": "stdout: The virtual environment was not created successfully because ensurepip is not\navailable.  On Debian/Ubuntu systems, you need to install the python3-venv\npackage using the following command.\n\n    apt-get install python3-venv\n\nYou may need to use sudo with that command.  After installing the python3-venv\npackage, recreate your virtual environment.\n\nFailing command: ['/home/zuul/.local/tox/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']\n\n"

Change-Id: I6d38bf16cc38020c53815dfa6ab94f8cab4de0a2
  • Loading branch information
James E. Blair committed May 8, 2020
1 parent 64741aa commit bac2bf6
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 24 deletions.
4 changes: 2 additions & 2 deletions roles/ensure-tox/README.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Ensure tox is installed

Look for ``tox``, and if not found, install it via ``pip`` into a
virtual environment for the current user.
Look for ``tox``, and if not found, install it via ``pip`` in the user
install directory (i.e., ``pip install --user``).

**Role Variables**

Expand Down
1 change: 0 additions & 1 deletion roles/ensure-tox/defaults/main.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
tox_executable: tox
tox_venv_path: '{{ ansible_user_dir }}/.local/tox'
tox_prefer_python2: false
48 changes: 28 additions & 20 deletions roles/ensure-tox/tasks/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,41 @@
vars:
ensure_pip_from_packages_with_python2: '{{ tox_prefer_python2 }}'

- name: Check if tox is installed
- name: Ensure tox is installed
shell: |
command -v {{ tox_executable }} || exit 1
set -euo pipefail
{% if tox_prefer_python2 %}
if command -v pip; then
PIP=pip
elif command -v pip3; then
PIP=pip3
fi
{% else %}
if command -v pip3; then
PIP=pip3
elif command -v pip; then
PIP=pip
fi
{% endif %}
type {{ tox_executable }} || $PIP install --user tox
args:
executable: /bin/bash
register: tox_preinstalled
failed_when: false
register: result
changed_when: "'Successfully installed' in result.stdout"

- name: Export preinstalled tox_exectuable
- name: Set tox_executable fact to pip installed
set_fact:
tox_executable: '{{ tox_executable }}'
tox_executable: "{{ ansible_user_dir }}/.local/bin/tox"
cacheable: true
when: tox_preinstalled.rc == 0

- name: Install tox to local env
when: tox_preinstalled.rc != 0
block:
- name: Install tox to local venv
pip:
name: tox
virtualenv_command: '{{ ensure_pip_virtualenv_command }}'
virtualenv: '{{ tox_venv_path }}'
when: result is changed

- name: Export installed tox_executable path
set_fact:
tox_executable: '{{ tox_venv_path }}/bin/tox'
cacheable: true
- name: Set tox_exectuable fact to found tox
set_fact:
tox_executable: "{{ tox_executable }}"
cacheable: true
when: result is not changed

- name: Output tox version
command: "{{ tox_executable }} --version"
2 changes: 1 addition & 1 deletion test-playbooks/ensure-tox.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
- name: Verify tox_executable is set
assert:
that:
- tox_executable == "{{ ansible_user_dir }}/.local/tox/bin/tox"
- tox_executable == "{{ ansible_user_dir }}/.local/bin/tox"
- name: Verify tox is installed
command: "{{ tox_executable }} --version"
register: result
Expand Down

0 comments on commit bac2bf6

Please sign in to comment.