Revert "Revert "Add consolidated role for processing subunit""

This reverts commit 9f4efe98e1.

Compress testr results.html before fetching it

The synchronize command has testr_results.html.gz in the file list, but
we don't ever gzip it so it fails on fetch.

Make the "Check for testr directory" task actually check for
.testrepository and not for .stestr a second time.

The compression bug broke only for people using stestr. For people
using testr, the path bug meant they don't get html reports.

Change-Id: I0cdfc66ee8b046affeb0b071fef38c21cb7a4948
This commit is contained in:
Monty Taylor 2018-01-15 19:12:55 -06:00
parent 9f4efe98e1
commit 3d0550a96c
No known key found for this signature in database
GPG Key ID: 7BAE94BC7141A594
5 changed files with 85 additions and 2 deletions

View File

@ -1,4 +1,3 @@
- hosts: all
roles:
- fetch-testr-output
- fetch-stestr-output
- fetch-subunit-output

View 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.

View File

@ -0,0 +1,2 @@
---
zuul_work_dir: "{{ zuul.project.src_dir }}"

View 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 }}/.testrepository"
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

View File

@ -0,0 +1,22 @@
- 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 files
archive:
path: "{{ zuul_work_dir }}/{{ item }}"
with_items:
- testrepository.subunit
- testr_results.html
- 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"