72 Commits

Author SHA1 Message Date
James E. Blair
466aa92635 Add container build jobs
These jobs use the container build roles.

Change-Id: I13d1987980bc3d0b1c717878a4bc47edc6dcfe1c
2023-03-23 09:47:49 -07:00
Antoine Musso
7948760ffb Remove ignored success-url job attribute
Since Zuul 4.7.0:

> The following attributes are now ignored:
>
> * The ``report-build-page`` tenant configuration setting.
> * The ``success-url`` job attribute.
> * The ``failure-url`` job attribute.

Remove `success-url` from all jobs.

Change-Id: I66a03cbf2939d95f31781e7e1ff332699a752f99
2023-03-16 17:50:35 +01:00
Clark Boylan
50fd134646 Add nox role and some simple jobs
This is an alternative to tox.

Change-Id: Ib4920acec09c2c980af909e8f9d1eabd1c6d253a
2022-12-19 18:41:12 -08:00
Dr. Jens Harbott
cababfebac Use recent node version for markdownlint job
As shown in [0] the markdownlint job is currently broken, as
the ensure-nodejs role still defaults to node_version 6, which is
severly outdated and no longer installable on our current default Ubuntu
22.04 nodes. Pin to the latest LTS node version, 18.

[0] https://review.opendev.org/c/opendev/sandbox/+/618075

Change-Id: I864587f1fd6d32dc5e744fb3cf00e13485cba326
2022-11-29 19:12:56 +01:00
Michael Kelly
b0cc01ceac
helm: Add job for linting helm charts
This job runs 'helm lint' on the user specified charts.

Change-Id: Ie6f39bab366b683e773add181de516c3ac913866
2022-11-16 15:09:07 -08:00
Clark Boylan
68f675f5a3 Add tox-py311 job
Python 3.11 is out now. Add a tox-py3.11 base job to make it easier to
run tests on this new release of Python.

Change-Id: I19c98c0e683e36f727ae869e7b60f7c16d7eb78d
2022-10-25 10:08:39 -07:00
Ian Wienand
2c58a8ceed upload-pypi: support API token upload
Support an api_token argument.  Accounts that have two-factor auth
will at some point require using API tokens to upload.

Change-Id: Id0c47d088d6e8febbae3c96caecc81ebe247754e
2022-07-13 15:18:08 +10:00
Clark Boylan
52e84220e5 Make note of python_version being a string value
The type of the python_version variable matters when we interpret it
after yaml deserialization. If it is interpreted as a float then 3.1 ==
3.10 and those python versions are very different. Instead make note
that it should be a string and then update all of the tox jobs to set
this variable as a string.

Change-Id: I55bbc70526a13e6bd4c3c32da8590ad2af76fe7c
2022-05-16 09:16:35 -07:00
Zuul
70c30231cd Merge "Add tox-py310 job" 2022-04-04 13:51:04 +00:00
Sorin Sbarnea
f5dbe71c49 Add tox-py310 job
Change-Id: Ib6a06893c0b4c7e5c988acf7315b17367b330d9e
2022-03-24 13:25:04 +01:00
Andre Aranha
cac1875575 Add fips version of jobs needed for OpenStack
FIPS needs to be enabled before test-setup is run, as enabling
FIPS requires the node to be rebooted, test-setup needs to run and
setup the environment after the reboot.

Change-Id: I6fecb9c6e917d1a36b2b82c1b02098eed4323ac7
2021-11-05 14:17:26 +00:00
Douglas Viroel
9107f3ee7d Add FIPS enable multinode job definition
This patch adds a new multinode job definition that enables
FIPS mode prior to multinode configuration.
In order to enable FIPS mode, the OS boot procedure need to be
changed to enable the appropriate kernel flag. This modification
has effect only after system reboot.
The default behavior of this job is to always enable FIPS mode.

Change-Id: I6f1365837d9ed2ba82c391a20f9094c9ef0e6c4e
Signed-off-by: Douglas Viroel <dviroel@redhat.com>
2021-10-20 11:20:52 -03:00
Jeremy Stanley
483838ceca Deprecate EOL Python releases and OS versions
Update the deprecation policy to indicate that zuul-jobs is no
longer tested with EOL platforms. Also explicitly switch the minimum
Python 3 documented to 3.6, and add a note to the tox-py34 and
tox-py35 jobs mentioning that they're no longer directly tested.
Move those jobs to the deprecated jobs list as well, to help
reinforce the point that their continued use is not recommended.

Change-Id: I2edbf8ea010caf7a7641e0d88f360965fc0b96ab
2021-09-23 17:35:32 +00:00
James E. Blair
f37ecd4bd6 Remove success-url
This option is ignored by Zuul as of release 4.7.0

This change is safe to merge now, as it won't break older versions.

Change-Id: I29d943462524b44cd04943df42838944fd43535d
2021-07-29 16:42:59 -07:00
Sorin Sbarnea
938da600b7 Add tox-py39 job
Change-Id: I46cac3396bd870eb1f54820921df09946184605a
2021-01-27 10:14:32 +00:00
Vitaliy Lotorev
4708a35220 Clarity tox_environment accepts dictionary not list
tox_environment variable is passed [1] to Ansible 'environment' property
which accepts dictionary not list.

[1] https://opendev.org/zuul/zuul-jobs/src/branch/master/roles/tox/tasks/main.yaml

Change-Id: I1e7236540356b3c0da502bd86ef7c5877dd1005e
2021-01-08 23:41:24 +03:00
Albin Vass
b209381be0 Add nimble roles and job
Installs nim toolchains using choosenim (similar to rustup),
installs dependencies and builds nim projects using
the package manager nimble.

See:
https://nim-lang.org/
https://github.com/nim-lang/nimble
https://github.com/dom96/choosenim

Change-Id: I95e7e02eb975200aed7680880b945261888de5ca
2020-11-08 09:36:05 +01:00
Zuul
5e5df2ae70 Merge "shake-build: add shake_target variable" 2020-09-30 15:41:35 +00:00
Pierre-Louis Bonicoli
0eb09e7b4f
explicit error when test_command is undef
Don't use a shell builtin: shell builtins aren't available since
'command' ansible module is used. Instead, fail with an explicit
error when the required test_command variable is not set.

Fix this error:

    Ansible output: b'failed: [host] (item=exit 1) => {
        "ansible_loop_var": "item",
        "changed": false,
        "cmd": "exit 1",
        "item": "exit 1",
        "msg": "[Errno 2] No such file or directory: 'exit': 'exit'",
        "rc": 2
    }

Change-Id: I88303f7302d7354ffc8b18e607b28349a9860a57
2020-09-22 13:39:22 +02:00
Zuul
4380c461a6 Merge "Add python_version for tox27" 2020-08-26 15:27:43 +00:00
Tristan Cacqueray
5854500179 shake-build: add shake_target variable
This change enable user to specify custom shake target.

Change-Id: I1feb24cd2c66e58da130079e85de844dfd5c6792
2020-08-05 21:08:37 +00:00
Tristan Cacqueray
61228901c2 dco-license: remove the empty nodeset
The job was relying on a security hole to execute untrusted command
on the executor (localhost). This change prevents failure after the
hole is fixed.

Change-Id: I910fb6e6a2659e77991111c8ce5a6b763556aeec
2020-07-22 14:46:41 +00:00
Albin Vass
7ef4d9f3f5 Allow deleting workspace after running terraform destroy
Also fixes a bug where the workspace was created from the wrong directory.

Change-Id: I28b54b9aa57a3f449254574956701ee663618e8b
2020-07-01 13:25:39 +02:00
Tristan Cacqueray
2d16f0fd07 phoronix-test-suite: extract ensure- role from run playbook
This change adds a new phoronix-test-suite/pre.yaml playbook to
ensure-phoronix-test-suite is installed.

Change-Id: I30d8cca408cca006a452db35cb4f40d4af526dec
2020-06-18 13:58:15 +00:00
Ian Wienand
67f223b53a Partial revert "Ensure wheel exists for build-release-python"; move to ensure-pip
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
2020-06-18 12:51:56 +00:00
Sorin Sbarnea
3f961ce202 Ensure wheel exists for build-release-python
We need it to exist for building wheels. It should be
installed in a pre-playbook.

Change-Id: Ieaec3d21911decf11283e82fed97dd26b3a93ffa
2020-06-17 16:59:24 -05:00
Monty Taylor
ed3fdf5a8d Add ensure-pip to build-python-release
It assumes setuptools has been installed, which we usually get
via the installation of pip.

Change-Id: I0b8f408a47a78a6a04bdbd083f949bb82713776b
2020-06-16 07:57:26 -05:00
Albin Vass
5bcf93c37d Terraform roles and jobs.
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
2020-06-11 17:26:50 +02:00
Guillaume Chauvel
3c60f4e7a2 Add python_version for tox27
Had an issue on an ubuntu 20.04 image where python2 isn't installed
ensure-python was not installing python2.7

Change-Id: I6beedef820f9efe6d5b08c053b788706017ff64f
2020-06-04 01:24:34 +02:00
Tristan Cacqueray
b8e57ffc60 shake-build: add shake build system job
This change adds a new job to run the shake build system.

Change-Id: Iffaf4e0675d91033b1b5d66c52d501f6bdc8acaf
2020-05-28 12:48:16 +00:00
Zuul
2cf703c62c Merge "Combine javascript deployment and deployment-tarball jobs" 2020-05-14 12:02:20 +00:00
James E. Blair
a3ba8e309a Add zuul_work_dir to run-test-command
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
2020-05-13 11:31:01 -07:00
Monty Taylor
886cdcc21f Combine javascript deployment and deployment-tarball jobs
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
2020-05-13 16:48:29 +00:00
Zuul
adf84f02db Merge "Set node_version in js-build base job" 2020-05-13 16:40:13 +00:00
Monty Taylor
a8722a38ed Set node_version in js-build base job
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
2020-05-13 11:10:54 -05:00
Andreas Jaeger
d2bcdf157e Fix nodejs-npm-run-test
pre-test.yaml was renamed in I33c12cb0d9516bdffef7d8d04af4dbcb03ed8355
to browser.yaml and we missed one place. Follow rename.

Change-Id: I628dbe7481ea0277e564af057ae57fdf2ce51820
2020-05-13 11:02:48 +02:00
Zuul
b8a24d635f Merge "Split browser and non-browser targetting js test jobs" 2020-05-12 17:10:19 +00:00
Monty Taylor
0caa85cc48 Split browser and non-browser targetting js test jobs
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
2020-05-12 11:31:42 -05:00
Zuul
7730bf0718 Merge "Add new non-npm specific javascript jobs" 2020-05-12 13:37:06 +00:00
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
Tristan Cacqueray
16673b8dc1 haskell-stack-test: add build target job variable
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
2020-05-08 14:11:11 +00:00
Tristan Cacqueray
7fdf0cc3ab cabal-test: add build target job variable
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
2020-05-08 13:38:17 +00:00
Sorin Sbarnea
4af438d136 Made sequence indent consistent
Change-Id: I5ea4232ca4fd6e03d5b5f72eb6704bee84d04ea5
2020-05-07 14:13:55 +01:00
Sorin Sbarnea
33461bbecc Enable yamllint
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
2020-05-04 17:47:11 +01:00
Tristan Cacqueray
4903ecd30b dhall-diff: add new job
This change adds a new dhall-diff job to verify generated config
is idempotent.

Change-Id: I96a335dc78c4fa74564b854997433e5be0b5e633
2020-05-03 19:06:37 +00:00
Tristan Cacqueray
cf64b73f78 haskell-stack-test: add haskell tool stack test
This change adds a new job to test stack based haskell project.

Change-Id: Ie3492097b351eec743d98e9ca8bc693c00c11a78
2020-05-01 15:35:33 +00:00
Tristan Cacqueray
2e82d88589 hlint: add haskell source code suggestions job
This change adds a new job to run hlint on haskell source files.

Change-Id: Ibf76c5552acecd68dfc56c4f31d8045ca5b233f1
2020-04-26 12:05:12 +00:00
Tristan Cacqueray
d92b39cae2 cabal-test: add initial haskell job
This change adds a new job to test cabal based haskell project.

Change-Id: Idb24eb5f8f9bd1409bae07bf4da415f1d05568e4
2020-04-24 13:12:13 +00:00
vass
32a3ce3f5a Adds roles to install and run hashicorp packer
Change-Id: I82274ef59eda00a735579082bbd37b64c0599c7d
2020-04-13 16:44:32 +02:00
Jan Kundrát
ab60f53292 docs: fix a typo in run-test-command
Change-Id: Iaab71db0e9d7615d1eb7c62a350c5348e81b847d
2020-04-06 13:18:07 +02:00