3dc7a78c9d
Change-Id: Icce95bf2d156359133df1d7c52f49dce292e3edc
163 lines
3.7 KiB
YAML
163 lines
3.7 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
|
|
owner: no
|
|
group: no
|
|
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
|
|
owner: no
|
|
group: no
|
|
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
|
|
owner: no
|
|
group: no
|
|
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
|
|
owner: no
|
|
group: no
|
|
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
|
|
owner: no
|
|
group: no
|
|
when: coverage_report_stat.stat.exists
|
|
|
|
- name: Return site artifact location to Zuul
|
|
zuul_return:
|
|
data:
|
|
zuul:
|
|
artifacts:
|
|
- name: "Site preview"
|
|
url: "npm/html/"
|
|
metadata:
|
|
type: site
|