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 vast majority of changes to enable running releasenotes without
installating of the package itself are merged. Remove the package
install now. Note that install-if-python is the proper role for this,
the previous setting was a noop.
The remaining few changes can merge at any time, projects had enough
time.
See also
http://lists.openstack.org/pipermail/openstack-dev/2017-November/124815.html
Needed-By: I225d73a2f9321329b34a282e08aea6773622df5b
Change-Id: I6d461a69537d3f7dd44e9b9877f652df656eedd8
There is a bunch of duplicate logic between tox and tox-siblings, the
tox-siblings logic is already protected with a flag - and having them be
split already led to not doing the right thing with constraints files in
siblings when we did it right in tox itself.
Combine them into one role.
This means the siblings code will run as part of run instead of as part
of pre- but that's how things have worked for years anyway until
siblings was introduced - and is also the behavior is the siblings flag
is false -so it's more consistent overall.
Leave a no-op tox-siblings role so that we can gracefully remove the use of
tox-siblings from castellan, python-openstacksdk, shade and tacker.
Change-Id: Id61ae52d48b28cfc2221cb556a1c1f7c6dfd60dd
It is possible a job wants to use another profile the 'test'. As such,
we can actually stop hardcoding this value and fall back to the
defaults that ship in the bindep role.
Change-Id: I6beb7b07a7dbc345e63e758ebbc86400e0ee16d3
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
Sphinx jobs and reno jobs need basically the same thing for
dependencies. So make a new role, ensure-sphinx, which is
parameterizable enough that it can be used by both reno and sphinx jobs.
Make build jobs for both releasenotes and sphinx docs, as both of these
things are perfectly valid things to do in both OpenStack and
non-OpenStack contexts. We'll add an openstack specific job in
openstack-zuul-jobs that uses these as parents but adds the requirements
repo and constraints file settings.
Some of the pip commands here can be improved once
https://github.com/ansible/ansible/pull/33098 lands and is released,
which would allow specifying --user and -c as parameters to the pip
module.
Change-Id: Idd7caf7d88b56d61872906027b4ce7d743572ded
Needed-By: I57de14580f39b9e1c11a587b51b44b61b02c84da
python-sdist isn't an accurate name since this also builds wheels. Make
a new job named build-python-release.
Also, use zuul_work_dir as the working dir variable.
This role was written rather early and isn't used yet. Change it to use
zuul_work_dir so that it matches other things.
Change-Id: Icfad9ad6ba5c7a0c62a8d5ce243952b81f28a47f
Depends-On: I8dfe5a41710392d6ca8453ce365f674a9d5e4f6e
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>
Add a post-run playbook to tox-cover job to collect the coverage
report detail and copy it to the log root of the executor.
Change-Id: Ibad091f7630832eb993133b0f43a60931b3dfd75
Integration tests were moved to openstack-zuul-jobs in
Ic04c48d7a0e15459632b91bce81e777d12622222, these have just been
forgotten here so let's delete them.
Change-Id: I2ecccf66595920f6830c538212060be3c644ded5
This sets up a default 'br-infra' bridge between nodes in a multi-node
job. Two groups are expected in order for this to be set up:
- switch
- peers
The 'switch' group, with only one expected member, will be set up as
the switch node while the 'peers' group will be connected to the switch
node with virtual ports.
The default settings such as the bridge name, the IP range used, the MTU
and so on can be overridden at the job level by setting vars.
Change-Id: If5a3f512837e5b235bd2f6dbfdbb454435aa983e
This adds nodes in a multi-node job to each other's firewalls so that
they can communicate with each other without restrictions.
Change-Id: Ic9eda6b951c5ecf5997fe9da3338980f2a8121b0
It's a common desire to be able to have a job that runs unittests
against the git checkout of another repository, but getting the tox
environment into that shape is a bunch of extra work.
Now that we have a defined place where repos go and they're always on
the build node, we can look in the source dir for git repos that contain
python packages and ask setup.py for the name of the python package they
provide.
We can then see what packages tox decided to install for this
environment, see if we have any matching ones in the source code repos
we've put on disk and if so we can re-install those depends from the
source location.
That way we can cause a tox job to use a second repo for cross-repo
unittesting simply by adding that project to required_projects.
Add a flag to disable the behavior ... although the easiest way to
disable the behavior is to just not list other projects in
required_projects.
Change-Id: Ia5250c11b1d73baaa70ea1cef7ea1ba4d5bab821
Story: 2001136
Task: 4852
With the settings in site-variables now, we don't need them here. Which
is good, because this job should be reusable by non-infra people.
Change-Id: I2988816dfbca7299c4a29b8a1a986dccccf87a9a
Depends-On: I94dfe8e6aab9c2da1283590be5e26f7d8c35dcad
It's really easy to trigger a build on readthedocs. It doesn't even need
a node, since it's just a single POST.
Change-Id: I8c576c7a26ab123bd70f7a025d8a49a5cb3e2432
Things will need to be done a bit differently for localhost-ssh, so this
is just for the case of multiple nodes needing to be able to SSH to
eachother.
Change-Id: I941cf3de7691ee1b5277ca50c7bb9daa5b9a0732
If people are using normal tarball jobs to build sdist tarballs, they
can also use a normal job to upload them.
This job will require being passed a dict variable with username and
password, which really should be stored in a secret.
Change-Id: I5747856e54d07a98571db38f1827b3e3cfefe768
OpenStack python tarball building is weird and not done in a manner
consistent with how other folks do it. Make a job that just runs python
setup.py sdist bdist_wheel.
Change-Id: I0df77cdd00b9820bad3b9cde75be9e150057a584
The actions of the playbook don't really have anything to do with tox.
Tarballs go into dist/ whether tox is used or not.
Change-Id: I49d9efaf34644c47df0a1acb6ca108fe4ec99fa4
Right now, the configure-mirrors role is very openstack-centric. At
the moment, I don't believe it is generic enough to be used by zuulv3
users.
Additionally, it is completely possible users don't have mirror
infrastrucuture in place and just want to use upstream directly.
For now, remove this from our default zuulv3 jobs until we can better
make this generic. In the case of openstack-infra, we have added this
role into our base job which we have shadowed.
Change-Id: Ic846d158c5458126468b0de2861d8e56b0d39c3e
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
We can move the content from tox/post.yaml into an ansible role. This
allows other projects to use it.
Change-Id: Ic7fc31a372de29a3a97ef84539faf3b0a1d6e181
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
It make more sense to revert to mirror_fqdn, since it is a FQDN.
Change-Id: I4a0749b64a71e551e4fbea5b416b46d2d6433d0b
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
After talking to clarkb, we decided we can drop this in favor of just
using the mirror_host.
Change-Id: Ie4ce336174aa2a825d125f7e0d9a256de139908b
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
Add some additional information about tarballs / wheels we are
copying. For example, md5 and sha1 info.
Change-Id: I96d6903f8bc5ced196b1b57f93277fa87bdf31c1
Depends-On: I86ff459d283eaf348821c2f11c1f8575598f088d
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
We no longer need to depend on our run-tarball / run-wheel roles. I
also plan to add back our sha1sum / md5sum files back in a follow
patch.
Change-Id: If4814a21192112d841fdb24cfdd1fd1a8bd427e6
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
It is possible somebody may want to run tox jobs over multiple nodes.
Check to see if more then one node is in our inventory, if so then add
the inventory_hostname to the log path.
Change-Id: Icd0532cb415fdae42eae6d2269d5a0be5fcdf98a
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This now exists in the base job, remove to avoid running the role
twice.
Change-Id: I915500b040968bfcdb504d44b58f91ccc36ab843
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
Zuulv3 now defaults to gathering: smart in ansible.cfg, along with
fact caching. We can now remove gather_facts: true as we get it for
free now.
Change-Id: Ife8ffaa4716eb60c59c26b8f4842ad48a17d4ad2
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
Because we want to use tox role variables (tox_envlist) across
multiple plays. We need to setup the variable in zuul.yaml. However,
this now means we need to create tox-pep8 job now since we are using
the tox/run playbook.
Change-Id: I6c15c076a510375dfacc66a0e07bc3f1228adf06
Signed-off-by: Paul Belanger <pabelanger@redhat.com>