Clark Boylan 13925d1965 Flip ensure-tox to tox v4 by default
The previous change added a bunch of tox v4 compatiblity, now we switch
to as our default. This should only happen after people have had
sufficient time to add tox v4 compatibility or manually pin back to <4
in their projects.

Change-Id: I16742fb933dba2162a73d532e1a9613af69021aa
2022-12-22 15:40:11 -08:00

98 lines
3.1 KiB
YAML

- hosts: all
roles:
- ensure-tox
tasks:
- name: Run bindep
include_role:
name: bindep
- name: Run tox with constraints
include_role:
name: tox
vars:
tox_envlist: docs
tox_constraints_file: '{{ zuul.project.src_dir }}/zuul-tests.d/test-constraints.txt'
# Make sure we test with verbose output even if the default changes
tox_extra_args: '-vv'
- name: Run tox with multiple testenvs
include_role:
name: tox
vars:
tox_envlist: docs,linters
tox_environment:
ANSIBLE_ROLES_PATH: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/roles"
# Make sure we test with verbose output even if the default changes
tox_extra_args: '-vv'
- name: Create tempfile to verify testenvs ran
tempfile:
register: default_tempfile
- block:
- name: Run tox with empty envlist
include_role:
name: tox
vars:
zuul_work_dir: "{{ zuul.project.src_dir }}/test-playbooks/python/"
tox_extra_args: "-- {{ default_tempfile.path }}"
tox_install_siblings: false
tox_envlist: ''
- name: Make sure magic lines are present
lineinfile:
path: "{{ default_tempfile.path }}"
line: linters
check_mode: true
register: default_status
failed_when: default_status is changed
always:
- name: Remove tempfile
file:
state: absent
path: "{{ default_tempfile.path }}"
- block:
- name: Create tempfile to verify testenvs ran
tempfile:
register: ALL_tempfile
- name: Run tox with ALL
include_role:
name: tox
vars:
zuul_work_dir: "{{ zuul.project.src_dir }}/test-playbooks/python/"
tox_install_siblings: false
tox_extra_args: "-- {{ ALL_tempfile.path }}"
tox_envlist: 'ALL'
always:
- name: Make sure magic lines are present
loop:
- linters
- non-default
lineinfile:
path: "{{ ALL_tempfile.path }}"
line: "{{ item }}"
check_mode: true
register: ALL_status
failed_when: ALL_status is changed
- name: Move test-playbooks/python/tox.ini to test-playbooks/python/foo.ini
# Tox 4 appears to have trouble when there is a tox.ini in the current
# dir and you run it with -c pointing at another file. Work around this
# to test the use of -c by moving the tox.ini to another location
# and -c'ing against that in the next task.
command: mv tox.ini foo.ini
args:
chdir: "{{ zuul.project.src_dir }}/test-playbooks/python/"
- name: Run tox against a specific config file
include_role:
name: tox
vars:
zuul_work_dir: "{{ zuul.project.src_dir }}/test-playbooks/python/"
# Make sure the tox_config_file option works
tox_config_file: foo.ini
tox_envlist: 'foo'
# Make sure we test with verbose output even if the default changes
tox_extra_args: '-vv'