tobiko/roles/tobiko-tox/tasks/tox.yaml

69 lines
1.5 KiB
YAML

---
- name: set Tox command line fact
set_fact:
tox_command_line: >
{{ tox_command }}
{% if tox_envlist %} -e {{ tox_envlist | quote }} {% endif %}
{{ tox_extra_args }}
- name: normalize white spaces from Tox command line
set_fact:
tox_command_line: '{{ tox_command_line.split() | join(" ") }}'
- name: combine environment variables
set_fact:
tox_env: '{{ tox_environment | from_yaml | combine(tox_constrain_env) }}'
- name: show tox variables
debug: var="{{ item }}"
loop:
- tox_command_line
- tox_description
- tox_dir
- tox_env
- tox_expected_rcs
- name: "{{ tox_description }}"
command:
chdir: '{{ tox_dir }}'
cmd: '{{ tox_command_line }}'
register:
run_tox
environment: '{{ tox_env }}'
failed_when: run_tox.rc != tox_succeeded_rc
ignore_errors: yes
- name: "show test cases output"
debug: var=run_tox.stdout_lines
when:
- (run_tox.stdout_lines | length) > 0
- name: "show test cases errors"
debug: var=run_tox.stderr_lines
when:
- run_tox is failed
- (run_tox.stderr_lines | length) > 0
- name: 'raise test cases failure'
debug:
msg: 'test cases have failed'
when: run_tox is failed
failed_when:
- not (ignore_test_failures | bool)
- run_tox.rc not in tox_expected_rcs
- name: 'raise error in case of timeout'
debug:
msg: 'timeout during the execution of the tests'
when: run_tox is failed
failed_when:
- (run_tox.stdout_lines | length) > 0
- run_tox.stdout | regex_search('ERROR.*run_tests.py timeout out after')