diff --git a/roles/yarn/README.rst b/roles/yarn/README.rst new file mode 100644 index 000000000..87ae17dee --- /dev/null +++ b/roles/yarn/README.rst @@ -0,0 +1,15 @@ +Run yarn command in a source directory. Assumes the appropriate version +of yarn has been installed. + +**Role Variables** + +.. zuul:rolevar:: yarn_command + + Command to run. If it's a standard lifecycle command, it will be run as + ``yarn {{ yarn_command }}``. Otherwise it will be run as + ``yarn run {{ yarn_command }}``. + +.. zuul:rolevar:: zuul_work_dir + :default: {{ zuul.project.src_dir }} + + Directory to run yarn in. diff --git a/roles/yarn/defaults/main.yaml b/roles/yarn/defaults/main.yaml new file mode 100644 index 000000000..9739eb171 --- /dev/null +++ b/roles/yarn/defaults/main.yaml @@ -0,0 +1 @@ +zuul_work_dir: "{{ zuul.project.src_dir }}" diff --git a/roles/yarn/tasks/main.yaml b/roles/yarn/tasks/main.yaml new file mode 100644 index 000000000..f751cfdb8 --- /dev/null +++ b/roles/yarn/tasks/main.yaml @@ -0,0 +1,24 @@ +- name: Require yarn_command variable + fail: + msg: yarn_command is required for this role + when: yarn_command is not defined + +- name: Run yarn lifecycle command + when: yarn_command in yarn_lifecycle_phases + command: "yarn {{ yarn_command }} --verbose" + # Need to set DISPLAY to the value that will be set when the virtual + # framebuffer is set up for doing browser tests. + environment: + DISPLAY: ':99' + args: + chdir: "{{ zuul_work_dir }}" + +- name: Run yarn custom command + when: yarn_command not in yarn_lifecycle_phases + command: "yarn run {{ yarn_command }} --verbose" + # Need to set DISPLAY to the value that will be set when the virtual + # framebuffer is set up for doing browser tests. + environment: + DISPLAY: ':99' + args: + chdir: "{{ zuul_work_dir }}" diff --git a/roles/yarn/vars/main.yaml b/roles/yarn/vars/main.yaml new file mode 100644 index 000000000..5343f7036 --- /dev/null +++ b/roles/yarn/vars/main.yaml @@ -0,0 +1,9 @@ +yarn_lifecycle_phases: + - install + - pack + - publish + - restart + - start + - stop + - test + - version