zuul-jobs/roles/tox/tasks/main.yaml
vass a32119249c tox: allow running default envlist in tox
Change-Id: I49638ab7949804fc967e337fa5ce21d2a3dc9d49
2020-04-24 18:23:05 +02:00

81 lines
2.1 KiB
YAML

- name: Require tox_envlist variable
fail:
msg: tox_envlist is required for this role
when: tox_envlist is not defined
- name: Check to see if the constraints file exists
stat:
path: "{{ tox_constraints_file }}"
get_checksum: false
get_mime: false
get_md5: false
register: stat_results
when: tox_constraints_file is defined
- name: Fail if constraints file is missing
when: tox_constraints_file is defined and not stat_results.stat.exists
fail:
msg: tox_constraints_file is defined but was not found
- name: Record file location
set_fact:
tox_constraints_env:
TOX_CONSTRAINTS_FILE: "{{ tox_constraints_file }}"
# Backward compatibility, to be removed
UPPER_CONSTRAINTS_FILE: "{{ tox_constraints_file }}"
when: tox_constraints_file is defined
- name: Install tox siblings
include: siblings.yaml
when: tox_install_siblings
- name: Emit tox command
debug:
msg: >-
{{ tox_executable }}
{% if tox_envlist is defined and tox_envlist %}
-e{{ tox_envlist }}
{% endif %}
{{ tox_extra_args }}
- name: Run tox
args:
chdir: "{{ zuul_work_dir }}"
environment: "{{ tox_environment|combine(tox_constraints_env|default({})) }}"
command: >-
{{ tox_executable }}
{% if tox_envlist is defined and tox_envlist %}
-e{{ tox_envlist }}
{% endif %}
{{ tox_extra_args }}
# Note: This intentionally ignores errors to give us the chance to look
# for file comments in the stdout. In case of an error this will be returned
# in a later task.
ignore_errors: yes
register: tox_output
- name: Look for output
tox_parse_output:
tox_output: '{{ tox_output.stdout }}'
tox_envlist: '{{ tox_envlist }}'
workdir: '{{ zuul_work_dir }}'
when: tox_inline_comments
register: file_comments
ignore_errors: yes
- name: Return file comments to Zuul
when:
- file_comments
- file_comments.file_comments
delegate_to: localhost
zuul_return:
data:
zuul:
file_comments: '{{ file_comments.file_comments }}'
ignore_errors: yes
- name: Return tox status
fail:
msg: 'tox exited with return code {{ tox_output.rc }}'
when: tox_output.rc != 0