This change adds a new phoronix-test-suite/pre.yaml playbook to
ensure-phoronix-test-suite is installed.
Change-Id: I30d8cca408cca006a452db35cb4f40d4af526dec
This partially reverts commit
3f961ce202d7d24e2944de09636b35cec9c13bf6.
This alternative installs wheel with the ensure-pip role instead of in
a separate role. wheel is very closely linked with pip install
operations so this isn't a large overreach of the role.
I suggest this for several reasons; firstly the python-wheel role
doesn't try to install packages, so we end up with mixed system pip
and upstream versions of wheel most of the time. This is the type of
thing that has proven problematic in the past. It also installs via
pip --user; something we've already had problems with tox when for
various reasons roles want to run this as non-zuul user. Using
ensure-pip we keep the packaged versions together.
[1] did try to install wheel with root, but during runtime which
didn't work due to sudo being revoked. This should work for the
existing build-python-release job, because it already includes
ensure-pip in pre-run via playbooks/python/pre.yaml
I believe our conclusion on the ensure-* roles was that requiring
root/become: for installation is OK, but we should have a no-op path
if the tools are found. This is consistent with that approach
(i.e. if you want wheel and can't do sudo, you should pre-install it
on your image using whatever you build that with).
This adds a check to the existing "is pip installed" check to also
check if wheel packages are available. If not we trigger the install
path.
This revealed some issues with RedHat.yaml -- we can always install
Python 3 (packages available for CentOS 7) so remove that check, and
if Ansible is running under Python 2; ensure we install the
dependencies too (not only if it is forced).
Update the documentation to describe that it will enable support for
bdist_wheel, and add a basic sanity test that wheels are produced by
pip. The existing build-python-release job is kept; although it is
modified to use the playbooks/python/pre.yaml playbook as the build
job does.
Change-Id: I2ab11bb45b6b2a49d54db39195228ab40141185c
[1] https://review.opendev.org/#/c/736001/5/roles/build-python-release/tasks/main.yaml
Adds terraform roles to install and execute terraform.
Supports adding an override.tf file to override configuration in CI
which is useful to let zuul handle module reposity authentication
instead of setting up credentials on the remote during the job.
Also returns the execution plan back as a comment for 'terraform plan'
to make it easy for reviewers.
Change-Id: I3b4f2bac7f055a0c0f9cb7888b4146ac9c007d25
To make it so that a repo can host a simple command which is an
integration test of multiple projects, add the semi-standard
zuul_work_dir variable to the job.
Change-Id: I265469ac9c12c3a38a11b243f3ff747d27141f21
There's no reason to not just build the tarball when we build the
content.
Set the default value for node_version in the base job.
Change-Id: Ifb3e5138e9ae19ec3de9250f1828fc07230ef739
Defaults in one role do not automatically transfer to
roles via include_role, and applying things correctly
can lead to recursion issues:
https://github.com/ansible/ansible/issues/36274
Just set the default in the job.
Change-Id: Iabefd80c8fc40a61a601b082f265c93af643cd83
pre-test.yaml was renamed in I33c12cb0d9516bdffef7d8d04af4dbcb03ed8355
to browser.yaml and we missed one place. Follow rename.
Change-Id: I628dbe7481ea0277e564af057ae57fdf2ce51820
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
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
This change adds support for custom target and adds a
separate build step to better report build failure, as
opposed to a single test failure.
Change-Id: I9e7a5e14b669dcbacd26861595358f6a4c04b585
This change adds support for custom target and removes the
configure step which is not necessary.
This change also uses the copr of cabal-install to get
a more up-to-date version.
Change-Id: I538e2b24abb66181d1ead2779bf6aa3440ee58ff
Adds yamllint to the linters with a minimal configuration, some
rules are disabled to allow us to fix them in follow-ups, if
we agree on them.
Fixes invalid YAML file containing characters inside block.
Fixes few minor linting issues.
Change-Id: I936fe2c997597972d884c5fc62655d28e8aaf8c5
This change adds new jobs to run and combine phoronix test suite results.
Co-Authored-By: Nicolas Hicher <nhicher@redhat.com>
Change-Id: If94cdbd91c8d80393a71cd5c36690563de9edcd6
This patch adds a roles and jobs to run golangci-lint against a
a Golang project. It's a very popular tool for linting go code.
It also adds a simple framework which allows us to create dynamic
tests for file comments by defining a simple YAML file.
Change-Id: Ic8358541adaf7c3279383f0279cd3da7b446a6e0
Add tox-py38 and ensure that python interpreter is installed for tox-py3
jobs. The job includes the ensure-python role that checks and installs the
interpreter if python_version is set.
Test py37 to ensure that this works, it's the version currently used for
next OpenStack release, so let's test changes to roles and jobs here.
Run tox-py35 on Xenial, since that Xenial has Python 3.5 - it was run
previously on the default (3.6 in our install) instead, this change
showed that we run the wrong interpreter for tox-py35 on this repo.
Change-Id: I46d6780a5a32c443c37ef040b2af2459641dd123
Adds jobs to test and build go packages.
Adds a role to download and install go from
the official download page (https://golang.org/dl/).
Adds a role to run commands with go e.g build, test, run.
Change-Id: Iad2d877fffa2530e9fdeec648a60755a80cf01f4
Jobs in this repo should never specify 'base' as their parent,
they should rely on the default tenant base job (which may or
may not be named base).
Change-Id: I6faa085611eca5ce9650b67e975548574773c524
As step to use promote job for publishing releasenotes, we need to use
fetch-sphinx-tarball for this job.
Update success-url to docs to match the role.
Change-Id: I5aabf5cfadee1e12baab117a20b1f50766f3d7fc
Needed-By: https://review.opendev.org/678430
pep8 jobs should not require database setup, etc, so we can skip
running test-setup.sh to save time.
Also, address comments from https://review.opendev.org/670120 and
use a block to not run the stat if can we will skip using the file.
Change-Id: Ia140b331ae1502fcf1f685faa6dace117d77d35d
These jobs are for testing this repo and should normally only be
included by the OpenDev Zuul for gating.
Change-Id: I7bf940edce1135d855d7f66605db2e856bd7177d
This was previously defined in openstack-zuul-jobs, but
we're working out a way of keeping these in-repo, so move
it here.
This was entirely authored by David Simard.
Change-Id: I743b8e9011f717569589d9e16ac0228ad3d112d1
Co-Authored-By: David Moreau Simard <dmsimard@redhat.com>
We have too many jobs to put them all in one file; split them up
in files which mirror the documentation.
Change-Id: Ic44f18085ccf0b561a0f4aa0a4274fe8eb99402c