diff --git a/roles/fetch-subunit-output/README.rst b/roles/fetch-subunit-output/README.rst index 283b1d786..2540dbfb0 100644 --- a/roles/fetch-subunit-output/README.rst +++ b/roles/fetch-subunit-output/README.rst @@ -7,6 +7,13 @@ Collect subunit outputs Directory to work in. It has to be a fully qualified path. +.. zuul:rolevar:: zuul_additional_subunit_dirs + :default: [] + + List of additional directories which contains subunit files + to collect. The content of zuul_work_dir is always checked, + so it should not be added here. + .. zuul:rolevar:: tox_envlist tox environment that was used to run the tests originally. diff --git a/roles/fetch-subunit-output/defaults/main.yaml b/roles/fetch-subunit-output/defaults/main.yaml index 8cc97ff70..96c12e1dc 100644 --- a/roles/fetch-subunit-output/defaults/main.yaml +++ b/roles/fetch-subunit-output/defaults/main.yaml @@ -1,3 +1,4 @@ --- tox_envlist: "" +zuul_additional_subunit_dirs: [] zuul_work_dir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}" diff --git a/roles/fetch-subunit-output/tasks/main.yaml b/roles/fetch-subunit-output/tasks/main.yaml index 496ed7d43..96fbbdc84 100644 --- a/roles/fetch-subunit-output/tasks/main.yaml +++ b/roles/fetch-subunit-output/tasks/main.yaml @@ -9,11 +9,17 @@ - testr_command.rc == 0 - testr_command.stdout_lines block: + - name: Get the list of directories with subunit files + set_fact: + subunit_dirs: "{{ [ zuul_work_dir ] + zuul_additional_subunit_dirs }}" - name: Generate subunit file shell: - cmd: "{{ testr_command.stdout_lines[0] }} last --subunit > ./testrepository.subunit" - chdir: "{{ zuul_work_dir }}" + cmd: "{{ testr_command.stdout_lines[0] }} last --subunit >>{{ zuul_work_dir }}/testrepository.subunit" + chdir: "{{ item }}" + loop: "{{ subunit_dirs }}" + loop_control: + index_var: subidx - name: Process and fetch subunit results include: process.yaml