Extract ensure-javascript-build-tool role
The pre-playbook for the javascript jobs got complex. Extract it to a role so we can better document it. Also - stop installing javascript depends in pre - the depends declared in a patch should be tested as part of the patch. Change-Id: I50a483f223620cd3f9ecd82887062cfc9ac64b7f
This commit is contained in:
parent
202cce830e
commit
5973c9b7b1
@ -1,6 +1,7 @@
|
||||
Javascript Roles
|
||||
================
|
||||
|
||||
.. zuul:autorole:: ensure-javascript-build-tool
|
||||
.. zuul:autorole:: ensure-javascript-packages
|
||||
.. zuul:autorole:: ensure-nodejs
|
||||
.. zuul:autorole:: ensure-yarn
|
||||
|
@ -1,34 +1,3 @@
|
||||
- hosts: all
|
||||
tasks:
|
||||
- name: Set node version if not set
|
||||
set_fact:
|
||||
node_version: '14'
|
||||
when: node_version is not defined
|
||||
|
||||
- name: Check for yarn.lock
|
||||
when: js_build_tool is not defined
|
||||
stat:
|
||||
path: "{{ zuul_work_dir }}/yarn.lock"
|
||||
get_checksum: false
|
||||
get_mime: false
|
||||
get_md5: false
|
||||
register: yarn_lock_exists
|
||||
|
||||
- name: Set js_build_tool fact
|
||||
set_fact:
|
||||
js_build_tool: '{{ yarn_lock_exists.stat.exists | ternary("yarn", "npm") }}'
|
||||
when: js_build_tool is not defined
|
||||
|
||||
- name: Ensure yarn if needed
|
||||
include_role:
|
||||
name: ensure-yarn
|
||||
when: js_build_tool == 'yarn'
|
||||
|
||||
- name: Ensure nodejs if needed
|
||||
include_role:
|
||||
name: ensure-nodejs
|
||||
when: js_build_tool == 'npm'
|
||||
|
||||
- name: Install javascript depends
|
||||
include_role:
|
||||
name: ensure-javascript-packages
|
||||
roles:
|
||||
- ensure-javascript-build-tool
|
||||
|
14
roles/ensure-javascript-build-tool/README.rst
Normal file
14
roles/ensure-javascript-build-tool/README.rst
Normal file
@ -0,0 +1,14 @@
|
||||
Install javascript build tool needed for a project
|
||||
|
||||
**Role Variables**
|
||||
|
||||
.. zuul:rolevar:: js_build_tool
|
||||
:default: autodetected
|
||||
|
||||
What command to use. If the ``zuul_work_dir`` has a ``yarn.lock``
|
||||
file, it will default to ``yarn``, otherwise ``npm``.
|
||||
|
||||
.. zuul:rolevar:: zuul_work_dir
|
||||
:default: {{ zuul.project.src_dir }}
|
||||
|
||||
The directory to work in.
|
2
roles/ensure-javascript-build-tool/defaults/main.yaml
Normal file
2
roles/ensure-javascript-build-tool/defaults/main.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
node_version: '14'
|
||||
zuul_work_dir: "{{ zuul.project.src_dir }}"
|
24
roles/ensure-javascript-build-tool/tasks/main.yaml
Normal file
24
roles/ensure-javascript-build-tool/tasks/main.yaml
Normal file
@ -0,0 +1,24 @@
|
||||
- name: Check for yarn.lock
|
||||
when: js_build_tool is not defined
|
||||
stat:
|
||||
path: "{{ zuul_work_dir }}/yarn.lock"
|
||||
get_checksum: false
|
||||
get_mime: false
|
||||
get_md5: false
|
||||
register: yarn_lock_exists
|
||||
|
||||
- name: Set js_build_tool fact
|
||||
set_fact:
|
||||
js_build_tool: '{{ yarn_lock_exists.stat.exists | ternary("yarn", "npm") }}'
|
||||
cacheable: true
|
||||
when: js_build_tool is not defined
|
||||
|
||||
- name: Ensure yarn if needed
|
||||
include_role:
|
||||
name: ensure-yarn
|
||||
when: js_build_tool == 'yarn'
|
||||
|
||||
- name: Ensure nodejs if needed
|
||||
include_role:
|
||||
name: ensure-nodejs
|
||||
when: js_build_tool == 'npm'
|
@ -28,6 +28,10 @@
|
||||
js_build_tool: '{{ yarn_lock_exists.stat.exists | ternary("yarn", "npm") }}'
|
||||
when: js_build_tool is not defined
|
||||
|
||||
- name: Install javascript depends
|
||||
include_role:
|
||||
name: ensure-javascript-packages
|
||||
|
||||
- name: Run js build command
|
||||
command: "{{ js_build_tool }} {% if js_build_command not in npm_lifecycle_phases %} run {% endif %} {{ js_build_command }} --verbose"
|
||||
# Need to set DISPLAY to the value that will be set when the virtual
|
||||
|
Loading…
Reference in New Issue
Block a user