Some javascript operations, like running tests for web-apps, need
browsers. Javascript packages that are not targetting browsers
do not.
Make a -browser version that installs the browsers and xvfb, and
a non-browser version that does not.
Change-Id: I33c12cb0d9516bdffef7d8d04af4dbcb03ed8355
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
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
YARN needs a modern version of NodeJS and if we don't use the role
to get the latest version, we end up failing on most platforms that
ship an old version of it.
This patch also adds testing to validate that ensure-yarn alone works.
Co-Authored-By: Andreas Jaeger <aj@suse.com>
Change-Id: I83ac09bc5751c85c6f1eac550d289a300ca2255e
When producing javascript content tarballs, return artifact records
to Zuul.
Add a new job, build-javascript-content-tarball, which includes the
role to fetch javascript content tarballs.
Change-Id: Ia247054d0523b81916815151fd57138469f634e0
Having revoke-sudo in the pre playbook of unittest has made us not able
to re-use unittest for javascript, and also means we can't use
nodejs-npm for nodejs-npm-run-test, which is a bit odd.
Instead, add the role to the run playbook for tox and npm, which allows
us to stack and combine things a bit better.
Change-Id: I0c7c508996ad2647db706d4ebf156c5dd96bf9b5
Some javascript projects use yarn for dependencies instead of raw npm.
If a yarn.lock file is detected in the zuul_work_dir, install yarn and
use yarn to install dependencies.
Needed-By: I5864e1b2f9952fbc35b08ebdef348c4917564c37
Change-Id: I9ae7dd3b33b2b607c1c5a17632e2aeb12e339d15
Similar to tox, the only difference in these is the command passed to
npm. Update the base job to do that, and the child jobs to use the
variable.
Change-Id: I5f9d420f1618e9a196b4218bca7055f377349351
The legacy test installed chromium and xvfb as well and started it,
add these back in for the run-test job.
Closes-Bug: #1731421
Change-Id: I40b7d019551c227e4b8a0e11366b1ce448d5bbed
Co-Authored-By: Akihiro Motoki <amotoki@gmail.com>