This change enables a kubectl connection job to just remove the
zuul sshkey, without using the add-build-sshkey role which doesn't
work on pod. To do that, this change moves the sshagent_remove_key
task to a new role and makes add-build-sshkey use the new role.
Change-Id: I5e7288592cad303df919220259f5a360bf522f64
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
Adds a role to let users define a manifest of artifacts located
in zuul-output/artifacts that should be uploaded to pre defined
artifactory instances.
Change-Id: I00dc0302e85ce59b3808f6e62e2bcdadf2e41fde
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
This role allows users to supply a common variable and it will
contain all the logic to configure the correct repository based
on their operating system.
Co-Authored-By: Andreas Jaeger <aj@suse.com>
Change-Id: I4a3ab5f099c2e4671b78c751d8f0e8ccf2304afa
* Build role requires build target to be specified via a variable
* Ensure role checks for a specific version of Bazel and downloads
and installs if missing; defaults to v3.1.0 and downloading from
bazelbuild Github, but these can be overrriden using variables
* Also installs dependencies for Bazel; only supports Ubuntu/Debian
at present, but includes scope to extend for other platforms
* Includes test playbook and job
Change-Id: I83f198aaf20c2b3664bea6fc05edd3b4fca13a4f
This is part of the efforts to remove pip-and-virtualenv from our base
images [1].
There are some users who specifically require the virtualenv command
(perhaps, like dib, they have some code that uses the activate_this.py
mechanisms it provides wich venv does not).
This installs the virtualenv package for the currently running
distribution.
One of the main maintenance issues of pip-and-virtualenv is that tried
to ensure that "virtualenv" created a Python 2 environment always by
default. Now that we have Python 3 only distributions like current
Fedora, this is not something we can continue to do (even if we wanted
to, which we don't).
What owns virtualenv and what it produces in our heterogeneous
environment is messy, and I think the best we can do is document it as
done here.
[1] https://docs.opendev.org/opendev/infra-specs/latest/specs/cleanup-test-node-python.html
Change-Id: I97d8bfb970ed2b5aaa02a0813899014c94994066
Several roles are setting facts that are expected to be consumed by
roles following them; generally things like the path to installed
tools, etc.
Add a section to policy about this behaviour in general, noting it
should use the cachable flags to persist the values.
Add specific documentation notes in an "Output Variable" section for
roles currently implementing this behaviour.
Change-Id: I05657fec198176c7d7345e84293f4902c81fa30c
This role is intended to ensure that the `pip:` module, and jobs that
may wish to use `pip` from the shell, have the necessary requirements.
It is intended as a partial replacement for the pip-and-virtualenv
element in diskimage-builder, which currently pre-installs pip on our
infra CI images during image build.
We wish to remain broady compatible with this element, but not
replicate some of the more problematic areas of its implementation.
By default, this installs the system packages for pip and setuptools
(the latter being a requirement of the Ansible pip module, which
imports it directly, despite pip itself not requiring it).
In this role, we ensure the libraries for the currently running
ansible_python_interpreter version are installed.
There is provision to provide a flag to install the packages directly
from upstream via get-pip.py, although this is not recommended.
Story: #2007386
Task: #39309
Change-Id: Iac2d518a66caf1b801273225f75a0a748412903c
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
This is an alternative to I98c80f657f38c5e1ed5f28e5d36988a3429ad1f8
which does not modify the upload script, but rather queries the API
and manifest for what to download.
The script is a hybrid of python and bash to not implement json API
parsing badly in bash, but not replicate curl badly in python either.
The script sanity checks for dependencies, which are considered pretty
standard for any developer who would be interested in downloading logs
like this.
The role writes out the script with the correct build values coded
into it, so a potential user just has to run it without any arguments
or modification.
Change-Id: Ic33732adbfd3210191bf4976c3ee316cfc50568e
This refactors the code inside helm-template which waits for all
pods to become Ready to move inside it's own seperate role instead
which can be used for other tasks.
Change-Id: Ibb234c46c49fe656cf918a7a4af115e0d26f23f0
This is a simple utility that provides the zuul_return functionality
for repos that need it encapsulating the existence of zuul_return.
For instance, system-config wanted to start doing this in a playbook
but linting the playbooks became super hard because of the new need
to have zuul installed for the zuul_return library. Just keep it here
in the family.
Change-Id: I6035009455f6434c2d6cfd976c7c6f414bdc2ae7
This adds a role which installs bazelisk if it is not already
present. It also adds a test job which exercises the role; the
job will be run on any changes to the new role.
Change-Id: I69b28b58338b46ec3fea696f9d97be4271ed6ae4