zuul-jobs/test-playbooks/python/tox.yaml

100 lines
3.2 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
- name: Run tox
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 }}"
- name: Check testenvs output
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'