
The zuul multi-tenant dashboard job wants to make a few symlinks to simulate what would happen on a real deployment with rewrite rules. The current hard-coded behavior of copying the links causes ... havoc. Add a job variable defaulting to the current behavior which such jobs can flip if they need to. Change-Id: I751524baa80353606d74b87dbaacfe7cd8b71a5e
121 lines
2.8 KiB
YAML
121 lines
2.8 KiB
YAML
- name: Set log path for multiple nodes
|
|
set_fact:
|
|
log_path: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}/npm"
|
|
when: groups['all'] | length > 1
|
|
|
|
- name: Set log path for single node
|
|
set_fact:
|
|
log_path: "{{ zuul.executor.log_root }}/npm"
|
|
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
|