diff --git a/roles/fetch-coverage-output/README.rst b/roles/fetch-coverage-output/README.rst index 4058566ff..f618203fc 100644 --- a/roles/fetch-coverage-output/README.rst +++ b/roles/fetch-coverage-output/README.rst @@ -12,7 +12,7 @@ on the worker to the log root of the executor. root. .. zuul:rolevar:: coverage_output_src - :default: {{ zuul.project.canonical_name }}/cover/ + :default: {{ zuul.project.src_dir }}/cover/ The location on the worker from which to fetch the coverage output detail. By default, the ``cover`` dir of the current diff --git a/roles/fetch-coverage-output/defaults/main.yaml b/roles/fetch-coverage-output/defaults/main.yaml index df5ed6854..4363e1f48 100644 --- a/roles/fetch-coverage-output/defaults/main.yaml +++ b/roles/fetch-coverage-output/defaults/main.yaml @@ -1,2 +1,2 @@ zuul_executor_dest: "{{ zuul.executor.log_root }}" -coverage_output_src: "src/{{ zuul.project.canonical_name }}/cover" +coverage_output_src: "{{ zuul.project.src_dir }}/cover" diff --git a/roles/fetch-coverage-output/tasks/main.yaml b/roles/fetch-coverage-output/tasks/main.yaml index 63a627ad2..ae283171c 100644 --- a/roles/fetch-coverage-output/tasks/main.yaml +++ b/roles/fetch-coverage-output/tasks/main.yaml @@ -1,6 +1,20 @@ -- name: Collect coverage details output - synchronize: - dest: "{{ zuul_executor_dest }}" - mode: pull - src: "{{ coverage_output_src }}" - verify_host: true +- when: zuul_success | default(true) | bool + block: + + - name: Check to see if coverage report exists + stat: + path: "{{ coverage_output_src }}" + register: coverage_report_stat + + - name: Collect coverage details output + synchronize: + dest: "{{ zuul_executor_dest }}" + mode: pull + src: "{{ coverage_output_src }}" + verify_host: true + when: coverage_report_stat.stat.exists + + - name: Fail if coverage report not found + fail: + msg: "Coverage report was not found even though tests succeeded" + when: not coverage_report_stat.stat.exists