b162a69c8b
The npm test run can optionally create an html coverage report. This change causes the post job to check if the directory exists, and if so also collect the coverage report with the npm logs. Change-Id: I7cc50c352c3feeed283888cbe7f02c6b1264b7b0
143 lines
3.4 KiB
YAML
143 lines
3.4 KiB
YAML
- name: Set log path for multiple nodes
|
|
set_fact:
|
|
log_path: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}/npm"
|
|
cover_path: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}/cover/"
|
|
when: groups['all'] | length > 1
|
|
|
|
- name: Set log path for single node
|
|
set_fact:
|
|
log_path: "{{ zuul.executor.log_root }}/npm"
|
|
cover_path: "{{ zuul.executor.log_root }}/cover/"
|
|
when: log_path is not defined
|
|
|
|
- name: Ensure local tox dir
|
|
file:
|
|
path: "{{ log_path }}"
|
|
state: directory
|
|
delegate_to: localhost
|
|
|
|
- name: Check for yarn.lock
|
|
stat:
|
|
path: "{{ zuul_work_dir }}/yarn.lock"
|
|
get_checksum: false
|
|
get_mime: false
|
|
get_md5: false
|
|
register: yarn_lock
|
|
|
|
- name: Check for shrinkwrap
|
|
stat:
|
|
path: "{{ zuul_work_dir }}/npm-shrinkwrap.json"
|
|
get_checksum: false
|
|
get_mime: false
|
|
get_md5: false
|
|
when: not yarn_lock.stat.exists
|
|
register: shrinkwrap
|
|
|
|
- name: Run npm prune because of https://github.com/npm/npm/issues/6298
|
|
when:
|
|
- not yarn_lock.stat.exists
|
|
- not shrinkwrap.stat.exists
|
|
command: npm prune
|
|
environment:
|
|
DISPLAY: ':99'
|
|
args:
|
|
chdir: "{{ zuul_work_dir }}"
|
|
|
|
- name: Run npm shrinkwrap
|
|
when:
|
|
- not yarn_lock.stat.exists
|
|
- not shrinkwrap.stat.exists
|
|
command: npm shrinkwrap
|
|
environment:
|
|
DISPLAY: ':99'
|
|
args:
|
|
chdir: "{{ zuul_work_dir }}"
|
|
|
|
- name: Check for reports
|
|
stat:
|
|
path: "{{ zuul_work_dir }}/reports"
|
|
get_checksum: false
|
|
get_mime: false
|
|
get_md5: false
|
|
register: reports_stat
|
|
|
|
- name: Collect npm reports
|
|
synchronize:
|
|
dest: "{{ log_path }}"
|
|
mode: pull
|
|
src: "{{ zuul_work_dir }}/reports"
|
|
verify_host: true
|
|
when: reports_stat.stat.exists
|
|
|
|
- name: Check for karma.subunit files
|
|
stat:
|
|
path: "{{ zuul_work_dir }}/karma.subunit"
|
|
get_checksum: false
|
|
get_mime: false
|
|
get_md5: false
|
|
register: karma_stat
|
|
|
|
- name: Collect karma subunit files
|
|
synchronize:
|
|
dest: "{{ log_path }}"
|
|
mode: pull
|
|
src: "{{ zuul_work_dir }}/karma.subunit"
|
|
verify_host: true
|
|
when: karma_stat.stat.exists
|
|
|
|
- name: Check again for shrinkwrap
|
|
when: not yarn_lock.stat.exists
|
|
stat:
|
|
path: "{{ zuul_work_dir }}/npm-shrinkwrap.json"
|
|
get_checksum: false
|
|
get_mime: false
|
|
get_md5: false
|
|
register: shrinkwrap_final
|
|
|
|
- name: Collect shrinkwrap file
|
|
synchronize:
|
|
dest: "{{ log_path }}"
|
|
mode: pull
|
|
src: "{{ zuul_work_dir }}/npm-shrinkwrap.json"
|
|
verify_host: true
|
|
when:
|
|
- not yarn_lock.stat.exists
|
|
- shrinkwrap_final.stat.exists
|
|
|
|
- name: Check for built output
|
|
stat:
|
|
path: "{{ zuul_work_dir }}/{{ javascript_content_dir }}"
|
|
get_checksum: false
|
|
get_mime: false
|
|
get_md5: false
|
|
register: javascript_output
|
|
|
|
- name: Collect javascript output
|
|
synchronize:
|
|
src: "{{ zuul_work_dir }}/{{ javascript_content_dir }}/"
|
|
dest: "{{ log_path }}/html/"
|
|
mode: pull
|
|
copy_links: "{{ javascript_copy_links }}"
|
|
verify_host: true
|
|
when: javascript_output.stat.exists
|
|
|
|
- name: Check to see if coverage report exists
|
|
stat:
|
|
path: "{{ coverage_output_src }}"
|
|
register: coverage_report_stat
|
|
|
|
- name: Ensure cover tox dir
|
|
file:
|
|
path: "{{ cover_path }}"
|
|
state: directory
|
|
delegate_to: localhost
|
|
when: coverage_report_stat.stat.exists
|
|
|
|
- name: Collect coverage details output
|
|
synchronize:
|
|
dest: "{{ cover_path }}"
|
|
mode: pull
|
|
src: "{{ coverage_output_src }}"
|
|
verify_host: true
|
|
when: coverage_report_stat.stat.exists
|