Add consolidated role for processing subunit
We don't need two roles for testr and stestr. The roles have logic to check to see if .testrepository or .stestr dirs exist, and the logic after the subunit extraction is the same. Combine them into a single role which should do the right thing. Also, document it. Change-Id: I833320cf9a932d8e119645eb798ce0c93d854321
This commit is contained in:
parent
57fbc6e96e
commit
ebdcf57fb0
@ -1,4 +1,3 @@
|
||||
- hosts: all
|
||||
roles:
|
||||
- fetch-testr-output
|
||||
- fetch-stestr-output
|
||||
- fetch-subunit-output
|
||||
|
12
roles/fetch-subunit-output/README.rst
Normal file
12
roles/fetch-subunit-output/README.rst
Normal file
@ -0,0 +1,12 @@
|
||||
Collect subunit outputs
|
||||
|
||||
**Role Variables**
|
||||
|
||||
.. zuul:rolevar:: zuul_work_dir
|
||||
:default: {{ zuul.project.src_dir }}
|
||||
|
||||
Directory to work in
|
||||
|
||||
.. zuul:rolevar:: tox_envlist
|
||||
|
||||
tox environment that was used to run the tests originally.
|
2
roles/fetch-subunit-output/defaults/main.yaml
Normal file
2
roles/fetch-subunit-output/defaults/main.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
---
|
||||
zuul_work_dir: "src/{{ zuul.project.canonical_name }}"
|
48
roles/fetch-subunit-output/tasks/main.yaml
Normal file
48
roles/fetch-subunit-output/tasks/main.yaml
Normal file
@ -0,0 +1,48 @@
|
||||
- name: Check for stestr directory
|
||||
stat:
|
||||
path: "{{ zuul_work_dir }}/.stestr"
|
||||
register: stestr_stat
|
||||
|
||||
- name: Generate stestr subunit file
|
||||
shell:
|
||||
cmd: ".tox/{{ tox_envlist }}/bin/stestr last --subunit > ./testrepository.subunit"
|
||||
chdir: "{{ zuul_work_dir }}"
|
||||
when:
|
||||
- tox_envlist is defined
|
||||
- stestr_stat.stat.exists
|
||||
|
||||
- name: Generate stestr subunit file
|
||||
shell:
|
||||
cmd: "stestr last --subunit > ./testrepository.subunit"
|
||||
chdir: "{{ zuul_work_dir }}"
|
||||
when:
|
||||
- tox_envlist is not defined
|
||||
- stestr_stat.stat.exists
|
||||
|
||||
- name: Check for testr directory
|
||||
stat:
|
||||
path: "{{ zuul_work_dir }}/.stestr"
|
||||
register: testr_stat
|
||||
when: not stestr_stat.stat.exists
|
||||
|
||||
- name: Generate testrepository.subunit file
|
||||
shell:
|
||||
cmd: ".tox/{{ tox_envlist }}/bin/testr last --subunit > ./testrepository.subunit"
|
||||
chdir: "{{ zuul_work_dir }}"
|
||||
when:
|
||||
- tox_envlist is defined
|
||||
- not stestr_stat.stat.exists
|
||||
- testr_stat.stat.exists
|
||||
|
||||
- name: Generate testrepository.subunit file
|
||||
shell:
|
||||
cmd: "testr last --subunit > ./testrepository.subunit"
|
||||
chdir: "{{ zuul_work_dir }}"
|
||||
when:
|
||||
- tox_envlist is not defined
|
||||
- not stestr_stat.stat.exists
|
||||
- testr_stat.stat.exists
|
||||
|
||||
- name: Process and fetch subunit results
|
||||
include: process.yaml
|
||||
when: stestr_stat.stat.exists or testr_stat.stat.exists
|
19
roles/fetch-subunit-output/tasks/process.yaml
Normal file
19
roles/fetch-subunit-output/tasks/process.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
- name: Generate testr_results.html file
|
||||
# TODO(pabelanger): We cannot depend on /usr/os-testr-env here!!!
|
||||
command: "/usr/os-testr-env/bin/subunit2html ./testrepository.subunit testr_results.html"
|
||||
args:
|
||||
chdir: "{{ zuul_work_dir }}"
|
||||
|
||||
- name: Compress testrepository.subunit file
|
||||
archive:
|
||||
path: "{{ zuul_work_dir }}/testrepository.subunit"
|
||||
|
||||
- name: Collect test-results
|
||||
synchronize:
|
||||
dest: "{{ zuul.executor.log_root }}"
|
||||
mode: pull
|
||||
src: "{{ zuul_work_dir }}/{{ item }}"
|
||||
verify_host: true
|
||||
with_items:
|
||||
- "*testr_results.html.gz"
|
||||
- "*testrepository.subunit.gz"
|
Loading…
Reference in New Issue
Block a user