zuul-jobs/roles/js-package-manager/README.rst
Monty Taylor 202cce830e Add new non-npm specific javascript jobs
We have a bunch of jobs that are built around the npm role, but
for projects using yarn, that can lead to ignoring yarn.lock.

For projects with a yarn.lock, we can assume the user wants to
use yarn. Make a new js-package-manager role that can detect
if that's the case and otherwise use npm. Make an js_build_tool
parameter that allows the user to override that auto-detection.

Make a whole new suite of jobs that do this behavior, do not have
npm in their name, and default to the latest node LTS, version 14.

Don't install yarn if we're not going to use yarn. Also allow people
who want to use yarn but don't have a yarn.lock to override
js_build_tool everywhere we do that logic.

Mark the old jobs deprecated.

Shift the npm and yarn roles to use the new js-package-manager role
with defaults set.

Change-Id: I8013228ca05607a69f390a9bb75991fc6543f865
2020-05-12 07:50:19 +02:00

22 lines
668 B
ReStructuredText

Run javascript build command in a source directory. Assumes the appropriate version
of npm or yarn has been installed.
**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:: js_build_command
Command to run. If it's a standard lifecycle command, it will be run as
``{{ js_build_tool }} {{ js_build_command }}``. Otherwise it will be run as
``{{ js_build_tool }} run {{ js_build_command }}``.
.. zuul:rolevar:: zuul_work_dir
:default: {{ zuul.project.src_dir }}
Directory to run in.