83 lines
2.7 KiB
YAML
83 lines
2.7 KiB
YAML
- block:
|
|
- name: Check that ARA is installed
|
|
command: bash -c "type -p ara"
|
|
ignore_errors: yes
|
|
register: ara_installed
|
|
|
|
- name: Warn if ARA is not installed
|
|
debug:
|
|
msg: |
|
|
ARA is not installed on the executor node, no report will be available.
|
|
when: ara_installed.rc != 0
|
|
|
|
- name: Check that the ARA database exists
|
|
stat:
|
|
path: "{{ ara_database_path }}"
|
|
register: ara_db
|
|
|
|
- name: Warn if no database is found
|
|
debug:
|
|
msg: |
|
|
No report will be available because the ARA database was not found.
|
|
when: not ara_db.stat.exists
|
|
|
|
- name: Validate role configuration
|
|
assert:
|
|
that:
|
|
- ara_report_type in ['html', 'database']
|
|
- ara_compress_html in [true, false]
|
|
- ara_report_run in [true, false, 'failure']
|
|
rescue:
|
|
- name: Role validation rescue
|
|
debug:
|
|
msg: |
|
|
Something failed during the validation of the role configuration
|
|
and pre-requirements.
|
|
It is likely that no report will be available, please verify the
|
|
execution and the parameters of the role for details.
|
|
|
|
- name: Prefix the log path with the log root
|
|
set_fact:
|
|
final_ara_report_path: "{{ zuul.executor.log_root }}/{{ ara_report_path }}"
|
|
|
|
- when:
|
|
- ara_installed.rc == 0
|
|
- ara_db.stat.exists
|
|
- ara_report_type == 'html'
|
|
block:
|
|
# Always generate (true), never (false) or only on failure ('failure')
|
|
# Additionally cover for edge cases where zuul_success might be undefined
|
|
- name: Generate ARA HTML output
|
|
command: "ara generate html {{ final_ara_report_path }}"
|
|
environment:
|
|
ARA_DATABASE: "sqlite:///{{ ara_database_path }}"
|
|
when: ara_report_run | bool or
|
|
(ara_report_run == 'failure' and not zuul_success | default(false) | bool)
|
|
register: ara_generated
|
|
|
|
- name: Compress ARA HTML output
|
|
command: gzip --recursive --best {{ final_ara_report_path }}
|
|
when:
|
|
- ara_compress_html | bool
|
|
- not ara_generated | skipped
|
|
rescue:
|
|
- name: HTML generation rescue
|
|
debug:
|
|
msg: |
|
|
Something failed during the generation of the HTML report.
|
|
Please verify the execution of the role for details.
|
|
|
|
- when:
|
|
- ara_installed.rc == 0
|
|
- ara_db.stat.exists
|
|
- ara_report_type == 'database'
|
|
- ara_report_run | bool or (ara_report_run == 'failure' and not zuul_success | default(false) | bool)
|
|
block:
|
|
- name: Create the ARA database report directory
|
|
file:
|
|
path: "{{ final_ara_report_path }}"
|
|
state: directory
|
|
|
|
- name: Save the ARA database
|
|
command: cp {{ ara_database_path }} {{ final_ara_report_path }}
|