Combine ensure-pip playbooks into a test role

The ensure-pip and ensure-pip-localhost playbooks were identical
except for the hosts line.  Refactor them into a test role and
invoke that role from the test playbooks.

Change-Id: I037a5d0cb56f96f6ebbbbffbc49cd68a26c71f24
This commit is contained in:
James E. Blair 2022-10-04 11:46:05 -07:00 committed by Ian Wienand
parent 0dd2a93814
commit c24693e326
No known key found for this signature in database
6 changed files with 76 additions and 146 deletions

View File

@ -1,72 +0,0 @@
- hosts: localhost
tasks:
# ensure-pip
- name: Include ensure-pip
include_role:
name: ensure-pip
- name: Create temp directory
tempfile:
state: directory
suffix: venv-test
register: _tmp_venv
- name: Sanity check provided virtualenv command installs
pip:
name: tox
virtualenv_command: '{{ ensure_pip_virtualenv_command }}'
virtualenv: '{{ _tmp_venv.path }}'
- name: Sanity check installed command runs without error
command: '{{ _tmp_venv.path }}/bin/tox --version'
- name: Remove tmpdir
file:
path: '{{ _tmp_venv.path }}'
state: absent
- name: Sanity check pip wheel generation
shell: |
cd {{ ansible_user_dir }}/src/opendev.org/zuul/zuul-jobs/tools/dummy-package
# This should run anywhere without too much logic ...
run_pip=$(command -v pip3 || command -v pip2 || command -v pip)
# Preinstall pbr to work around very old distutils lacking SNI support
$run_pip install pbr
$run_pip wheel --no-deps .
ls dummy_package*.whl || exit 1
- name: Test virtualenv
# NOTE(ianw) 2022-02-03 : not supported on 9-stream, see inline comments
# NOTE(frickler) 2022-03-01 : pin pluggy so as to work on Debian Buster
when: not (ansible_facts['distribution'] == 'CentOS' and ansible_facts['distribution_major_version']|int >= 9)
block:
# ensure-virtualenv
- name: Include ensure-virtualenv
include_role:
name: ensure-virtualenv
- name: Sanity check virtualenv command works
shell: |
tmp_venv=$(mktemp -d -t venv-XXXXXXXXXX)
trap "rm -rf $tmp_venv" EXIT
virtualenv $tmp_venv
$tmp_venv/bin/pip install tox "pluggy<1"
failed_when: false
register: _virtualenv_sanity
- name: Assert sanity check
fail:
msg: 'The virtualenv command does not appear to work!'
when:
- _virtualenv_sanity.rc != 0
# NOTE(ianw) : this does not play nicely with pip-and-virtualenv which
# has already installed from source. We might be able to test this
# once it's gone...
# - hosts: all
# roles:
# - role: ensure-pip
# vars:
# ensure_pip_from_upstream: True

View File

@ -1,72 +0,0 @@
- hosts: all
tasks:
# ensure-pip
- name: Include ensure-pip
include_role:
name: ensure-pip
- name: Create temp directory
tempfile:
state: directory
suffix: venv-test
register: _tmp_venv
- name: Sanity check provided virtualenv command installs
pip:
name: tox
virtualenv_command: '{{ ensure_pip_virtualenv_command }}'
virtualenv: '{{ _tmp_venv.path }}'
- name: Sanity check installed command runs without error
command: '{{ _tmp_venv.path }}/bin/tox --version'
- name: Remove tmpdir
file:
path: '{{ _tmp_venv.path }}'
state: absent
- name: Sanity check pip wheel generation
shell: |
cd {{ ansible_user_dir }}/src/opendev.org/zuul/zuul-jobs/tools/dummy-package
# This should run anywhere without too much logic ...
run_pip=$(command -v pip3 || command -v pip2 || command -v pip)
# Preinstall pbr to work around very old distutils lacking SNI support
$run_pip install pbr
$run_pip wheel --no-deps .
ls dummy_package*.whl || exit 1
- name: Test virtualenv
# NOTE(ianw) 2022-02-03 : not supported on 9-stream, see inline comments
# NOTE(frickler) 2022-03-01 : pin pluggy so as to work on Debian Buster
when: not (ansible_facts['distribution'] == 'CentOS' and ansible_facts['distribution_major_version']|int >= 9)
block:
# ensure-virtualenv
- name: Include ensure-virtualenv
include_role:
name: ensure-virtualenv
- name: Sanity check virtualenv command works
shell: |
tmp_venv=$(mktemp -d -t venv-XXXXXXXXXX)
trap "rm -rf $tmp_venv" EXIT
virtualenv $tmp_venv
$tmp_venv/bin/pip install tox "pluggy<1"
failed_when: false
register: _virtualenv_sanity
- name: Assert sanity check
fail:
msg: 'The virtualenv command does not appear to work!'
when:
- _virtualenv_sanity.rc != 0
# NOTE(ianw) : this does not play nicely with pip-and-virtualenv which
# has already installed from source. We might be able to test this
# once it's gone...
# - hosts: all
# roles:
# - role: ensure-pip
# vars:
# ensure_pip_from_upstream: True

View File

@ -0,0 +1,3 @@
- hosts: localhost
roles:
- ensure-pip-test

View File

@ -0,0 +1,3 @@
- hosts: all
roles:
- ensure-pip-test

View File

@ -0,0 +1,68 @@
- name: Include ensure-pip
include_role:
name: ensure-pip
- name: Create temp directory
tempfile:
state: directory
suffix: venv-test
register: _tmp_venv
- name: Sanity check provided virtualenv command installs
pip:
name: tox
virtualenv_command: '{{ ensure_pip_virtualenv_command }}'
virtualenv: '{{ _tmp_venv.path }}'
- name: Sanity check installed command runs without error
command: '{{ _tmp_venv.path }}/bin/tox --version'
- name: Remove tmpdir
file:
path: '{{ _tmp_venv.path }}'
state: absent
- name: Sanity check pip wheel generation
shell: |
cd {{ ansible_user_dir }}/src/opendev.org/zuul/zuul-jobs/tools/dummy-package
# This should run anywhere without too much logic ...
run_pip=$(command -v pip3 || command -v pip2 || command -v pip)
# Preinstall pbr to work around very old distutils lacking SNI support
$run_pip install pbr
$run_pip wheel --no-deps .
ls dummy_package*.whl || exit 1
- name: Test virtualenv
# NOTE(ianw) 2022-02-03 : not supported on 9-stream, see inline comments
# NOTE(frickler) 2022-03-01 : pin pluggy so as to work on Debian Buster
when: not (ansible_facts['distribution'] == 'CentOS' and ansible_facts['distribution_major_version']|int >= 9)
block:
# ensure-virtualenv
- name: Include ensure-virtualenv
include_role:
name: ensure-virtualenv
- name: Sanity check virtualenv command works
shell: |
tmp_venv=$(mktemp -d -t venv-XXXXXXXXXX)
trap "rm -rf $tmp_venv" EXIT
virtualenv $tmp_venv
$tmp_venv/bin/pip install tox "pluggy<1"
failed_when: false
register: _virtualenv_sanity
- name: Assert sanity check
fail:
msg: 'The virtualenv command does not appear to work!'
when:
- _virtualenv_sanity.rc != 0
# NOTE(ianw) : this does not play nicely with pip-and-virtualenv which
# has already installed from source. We might be able to test this
# once it's gone...
# - hosts: all
# roles:
# - role: ensure-pip
# vars:
# ensure_pip_from_upstream: True

View File

@ -4,7 +4,7 @@
files:
- roles/ensure-pip/.*
- roles/ensure-virtualenv/.*
run: test-playbooks/ensure-pip.yaml
run: test-playbooks/ensure-pip/ensure-pip.yaml
tags: all-platforms
- job:
@ -111,7 +111,7 @@
name: zuul-jobs-test-ensure-pip-localhost
description: Test the ensure-pip role on the executor
parent: zuul-jobs-test-ensure-pip
run: test-playbooks/ensure-pip-localhost.yaml
run: test-playbooks/ensure-pip/ensure-pip-localhost.yaml
nodeset:
nodes: []