Commit Graph

45 Commits

Author SHA1 Message Date
Jens Harbott f7ff4c979b Add jobs without the pre-built wheels
All normal CI jobs use wheels that have been built previously, but
possibly are no longer buildable with the current set of requirements.
Add jobs that do not use these wheels to the experimental pipeline for
now.

Change-Id: Id2a5bca02ad37b5fbe3391ece9944112234ac52a
2024-04-05 12:57:59 +02:00
Tony Breeds 5d31764c15 Move the definition of BACKPORTS out of code
Move the library names that we are flexible with - backports from the
std.lib - from a hard coded list in code into a txt file

Change-Id: I414f7c386b838248f45fbce003a64d0c83a9919c
2022-08-08 17:29:55 -05:00
Marcin Juszkiewicz 0559fff727 stop building librdkafka on aarch64
Requirements for confluent-kafka-python are behind what Debian offers so
there is no point in building librdkafka anymore.

Change-Id: Iebb88900ba9a78ba3c2b0348bdc3fca67279bfdf
2022-06-21 15:01:53 +02:00
Sean McGinnis 5b67b111ca Switch node tests to inherit nodejs-run-test-browser.
Current base of nodjs-npm-run-test is deprecated. We need to switch to
the newer base job to pick up new behavior. Horizon npm tests require
a browser so the job inherit nodejs-run-test-browser now.

In addition, tox is not anymore pre-installed on the OpenDev CI images.
npm jobs in horizon need tox, so we need to install it in pre-run phase.

Change-Id: Iffa3f7631bec0a5f7b0c701df87305725cae5708
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Co-Authored-By: Akihiro Motoki <amotoki@gmail.com>
2020-06-23 08:18:09 +09:00
Sean McGinnis 74a5bed896
Ensure pip is installed locally
Recent changes to the base nodepool images removed the system-wide
installation of pip and virtualenv. As a result of this, some
requirements-check jobs are failing with an error that pip could not be
found.

This adds the ensure-pip role as part of pre_tasks in our
requirements-check playbook.

Change-Id: Id4969156383545eb94462677e3321b89c1160b48
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2020-06-17 16:19:06 -05:00
Marcin Juszkiewicz 23111ad39a CI: add requirements-tox-py3x-check-uc job on AArch64
There are moments when bumping versions breaks all non-x86 builds
because upstream forgets to upload source tarball to Pypi.

As we need librdkafka 1.4.0+ we build version from Debian 'testing'.

Change-Id: Ib4a4eac5e5f14eab8104fb8fe4f49c90e333dab0
2020-06-08 11:26:46 +02:00
Zuul 4ee21ab969 Merge "Stop enforcing py2 requirements match starting with U" 2019-11-21 08:51:22 +00:00
Sean McGinnis 3d9c4ca96c
Stop enforcing py2 requirements match starting with U
Ussuri and later will be Python 3 only. This updates our requirements
checks to only enforce local requirements match the exact global
requirements for the py3.5 and later entries.

Python 2 requirements can still be present in the local files, but this
allows teams that want to remove all Python 2 code to clean up their
requirements files for entries that are no longer relevant.

Change-Id: Ifaa44593b08630f84bb50060871412c66315adcc
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-11-15 09:10:29 -06:00
Eyal 1c270c8dd5 Requirements-check fails
openstack_requirements is installed in python2
project-requirements-change.py is run in python3

see:
https://openstack.fortnebula.com:13808/v1/AUTH_e8fd161dc34c421a979a9e6421f823e9/zuul_opendev_logs_91b/694233/1/check/requirements-check/91b72b0/job-output.txt

Change-Id: If5de7301d998bc0ec5034afd853426ae393d1064
2019-11-14 12:58:33 +02:00
Zuul 5620d2c1f9 Merge "Requirements-check: use local repo like any other library" 2019-11-14 08:49:47 +00:00
Tony Breeds af94ab8479 Requirements-check: use local repo like any other library
This ensures the playbook has done a local install of the repo so the
script run can assume that it is installed and can be loaded without
additional handling.

Change-Id: Iaf759b183e6821bf6690195586e7e65bf0533c82
2019-11-13 13:06:33 -06:00
Zuul 4f16a404a0 Merge "Update check-requirements for py3" 2019-11-13 07:56:57 +00:00
Zuul 377ac3cf3d Merge "Handle relative paths for local check-requirements" 2019-11-13 07:38:38 +00:00
Sean McGinnis 58d622019d
Remove requirements-integration job
This job was a legacy job that attempted to verify each project could be
independently installed after all global-requirements had been
installed.

This job is no longer necessary since we have much better coverage with
requirements-check and other jobs that make sure the requirements are
compatible. It is also a legacy zuulv2 job, uses the long deprecated
devstack-gate, and runs with Python 2.7.

For historical reference, this was added originally to PBR back in 2013
[0] and moved to requirements in 2014 [1].

[0] 378261a8cb
[1] 8e073738db

Change-Id: I29abcba929995f9307c392110160d889a29b47c3
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-11-12 11:02:50 -06:00
Sean McGinnis 50f69d5296 Update check-requirements for py3
This updates the virtual environment handling to assume it is running
with Python 3.7 instead of 2.7. It also updates the virtualenv detection
to recognize if it is running python from a virtualenv without the
virtualenv actually being activated.

Change-Id: Ib841f1d6a683eff4836bfeeb73678199745a3a2f
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-11-09 14:57:35 -06:00
Sean McGinnis ca652db8e8 Handle relative paths for local check-requirements
Existing handling was looking for the local path by moving up the
directory chain. With a relative path this would result in an empty
string for the requirements directory, then fail to find fail to find
files in the system root.

Change-Id: I0b77859eea4d2841ba148623b5bca7d1d165c89b
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-11-09 14:57:35 -06:00
Tim Burke f094c78968 Use UTF-8 to decode subprocess output on py3
Otherwise, you get output like

    Branch: master
    Source: src/opendev.org/openstack/swift
    Requirements: /home/zuul/src/opendev.org/openstack/requirements
    git log -n 1 --format=%H
    Patch under test: b'f683ca84318da31492f214f978a55bdc1be70c2c'
    git --git-dir /home/zuul/src/opendev.org/openstack/requirements/.git rev-parse HEAD
    requirements git sha: b'9ebc858033d7998a167941f1b7b060de60d17244'
    virtualenv /tmp/tmp9l32_z5b/venv
    /tmp/tmp9l32_z5b/venv/bin/pip install /home/zuul/src/opendev.org/openstack/requirements
    Checking b'f683ca84318da31492f214f978a55bdc1be70c2c'

(Note the bytes getting interpolated in the "Patch under test",
"requirements git sha", and "Checking" lines.)

Change-Id: I836a6218ff5fccf4aab74b37a5a682601a388106
2019-06-18 20:39:57 -07:00
Zuul 4619e65da7 Merge "Add upper-constraints enforcement for local reqs" 2019-05-12 21:28:49 +00:00
Sean McGinnis 8bad9fe19d Add upper-constraints enforcement for local reqs
This adds the use of upper constraints in our tox environments. Jobs
like openstack-tox-py27 have started failing due to trying to install
lib versions that only support Python 3.

The 'generate' target keeps the unconstrained deps since we actually do
need the latest installed for that.

Updates the requirements-integration job to run using py36 since that
now fails with running under py27. This should get the job to pass until
we are able to rewrite it to not be a legacy job.

NOTE(dmllr): updated install_command to include local constraints file

Change-Id: I2598503c2d4397d7efbb03a76df9a4e91dd0c1cf
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2019-05-12 15:31:10 +02:00
Adam Harwell f47a6d1c4e Retiring neutron-lbaas and neutron-lbaas-dashboard
Change-Id: I30035b683df19173956bd8b1f0eea13a3c2ceedb
2019-05-11 11:52:06 -07:00
Boden R 674e97a631 update git.openstack in _DEFAULT_REQS_DIR
This patch changes the _DEFAULT_REQS_DIR constant to use opendev.org
rather than git.openstack.org in project-requirements-change.py to
address failures such as [1].

[1] http://logs.openstack.org/09/653009/5/check/requirements-check/
cb0e2ad/job-output.txt.gz#_2019-04-22_15_02_24_958181

Change-Id: I8ecadff2737a40d5dece4c7511ebe54a5efddf64
2019-04-22 09:32:53 -06:00
OpenDev Sysadmins fb8f620fe3 OpenDev Migration Patch
This commit was bulk generated and pushed by the OpenDev sysadmins
as a part of the Git hosting and code review systems migration
detailed in these mailing list posts:

http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003603.html
http://lists.openstack.org/pipermail/openstack-discuss/2019-April/004920.html

Attempts have been made to correct repository namespaces and
hostnames based on simple pattern matching, but it's possible some
were updated incorrectly or missed entirely. Please reach out to us
via the contact information listed at https://opendev.org/ with any
questions you may have.
2019-04-19 19:43:33 +00:00
Ian Wienand ce33bf27e5 Replace openstack.org git:// URLs with https://
This is a mechanically generated change to replace openstack.org
git:// URLs with https:// equivalents.

This is in aid of a planned future move of the git hosting
infrastructure to a self-hosted instance of gitea (https://gitea.io),
which does not support the git wire protocol at this stage.

This update should result in no functional change.

For more information see the thread at

 http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003825.html

Change-Id: I53162497c2f53e45139e6a3aa9ff20538ec1b35e
2019-03-24 20:36:01 +00:00
melissaml 78d61699d9 Update the outdated URL
Change-Id: Ife4055db40f99b60a91d5c0fc0485d8334127d8a
2018-09-23 17:40:16 +08:00
Andreas Jaeger 8e808636ee Remove unused job requirements-integration-dsvm-ubuntu-trusty
This job is only used on newton, remove it again.

Change-Id: I978a10c384ae22961fb0948b73199ebae55886f8
2018-08-25 09:56:27 +02:00
Doug Hellmann 38da8d1fb8 import legacy jobs from openstack-zuul-jobs
There are two legacy jobs only used by this repository so they are
being moved from openstack-zuul-jobs to here. They need to be renamed
as part of the copy to avoid colliding with the old job and playbook
names.

Import legacy-requirements-integration-dsvm as
requirements-integration and
legacy-requirements-integration-dsvm-ubuntu-trusty as
requirements-integration-ubuntu-trusty.

Change-Id: I7d251a3f4c79b40ad00b6ce9e73dcc85ddd83edc
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-08-24 16:29:34 +02:00
Doug Hellmann c6ee7f563a switch project-requirements-change to use python3
Update the version of python used to run the requirements-check script
as part of the python3-first goal.

Change-Id: Ifa21c3b3d55988c725e049733b227fa0ee22fbbd
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-07-03 09:21:15 -04:00
Doug Hellmann e25260fcdb skip virtualenv setup when there is already a virtualenv
Support local use more easily by skipping the installation step if it
looks like the user has already done that once manually. This makes
running the script multiple times much much faster.

Change-Id: Id2a139c9d68c2ebcee558cbc493b47167d2a2e1d
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-04-11 20:09:56 +00:00
Doug Hellmann 4bff2d214d remove optimization for values unchanged from the branch
When a requirement setting is changed, require that all requirements
follow the rules.

Without this change, it is possible to partially update the dependency
list for a project in a way that leaves some of the dependencies out
of compliance. With this change, all dependencies must be compliant in
order to update any of them.

Change-Id: I154245339a36618ac2e9a5922bc37121d44bca29
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-04-10 11:18:16 -04:00
Doug Hellmann 3375d70b1f be more explicit about the configuration being tested
Show the directories being read and the SHA of the patch being tested.

Change-Id: Ifa73c15a4cb7d965a397753463fdd2df68ae4acf
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-04-10 11:17:44 -04:00
Doug Hellmann daeb71bfc8 fix the logic for handling default for --reqs
When --reqs is specified on the command line, take the
value. Otherwise select an appropriate default.

Change-Id: I97bf967c49f6765139b89e434297c9985daca28c
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-04-10 10:20:48 -04:00
Doug Hellmann e147e1e8a9 remove dead code
This function moved to check.py.

Change-Id: If5f80e709aa62208205108c4c0bc11dab4d267a0
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-04-03 09:43:44 -04:00
Doug Hellmann a7080bcae5 pick requirements directory based on operating mode
Without this patch, users running the script to test changes locally
must specify both the path to the script and the path to the local
copy of the requirements repository. This is inconvenient.

With this patch, when running in "local" mode the location of the
script is used as the default for the --reqs argument. This means the
user does not need to pass an extra argument on the command line.

Change-Id: I739750ddff2da55ad059641343637f91f3416127
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-04-03 09:27:15 -04:00
Akihiro Motoki 0cc95d4428 Fix key name of lower-constraints.txt
Change-Id: I2516ce4657848cc23e24a2030fe5c5268d79d263
2018-03-30 21:48:26 +09:00
Doug Hellmann 1e78c97426 add validation rules for lower constraints
The requirement lower bound and lower-constraints.txt value must
match.

The lower-constraints.txt value must be compatible with the specified
range, including exclusions.

If there is no lower-constraints.txt file the additional tests are
skipped.

If no minimum is specified, the misconfiguration is left to the other
validation logic to catch.

Only files associated with test jobs are checked because other jobs
are not run with the lower constraints list.

Change-Id: Iefe3ef8a89e965537486a1c9a62ab887b4401530
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-03-29 12:58:57 -04:00
Doug Hellmann 3a378a6c57 rearrange requirements check code to add tests
Rearrange and refactor the existing requirements check logic to better
support testing.  Add a few tests for the function that determines if
a setting matches the global requirements.

Change-Id: I3ea9049cf728b11ef71ca180304ee7041303a409
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-03-27 15:20:14 -04:00
Doug Hellmann f49bec99bc make the --reqs arg to project-requirements-change.py useful
The --reqs argument was not being used which made it difficult to run
the script locally to test it.

This change passes the directory given to --reqs as the requirements
repository directory so that in local mode the repository can live
anywhere.

The default is still set to the location used on the CI nodes.

Change-Id: Id812628345313b781d65140bb3c25adf1eb00bc5
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2018-03-27 11:19:35 -04:00
Matthew Thode 51f376c776
switch to zuul.projects from zuul._projects
Change-Id: I9f5b68e1a6f15957382deb29bc6e6bb462b86b34
2017-12-10 23:32:39 -06:00
Andreas Jaeger 58cac05a76 Fix check-requirements
Fix check-requirements: The assumptions with remote branch are not valid
anymore with Zuul v3, the change is on the proposed branch, check against
HEAD^1 instead.

Use the command module instead of script to get stdout in the
job-output.txt.gz file. Zuul v3 currently will not record the output from script
module in that file, only when command is used.

Note that the script module copied the file to the remote system - the
system where the tests are run - while command does not do this. But
the command is already on the remote system, use correct path for it.

Co-Authored-By: James E. Blair <corvus@inaugust.com>
Change-Id: Ib44332b4daf63b9d3fca6eadf0b4825614ca4aeb
2017-10-31 10:12:22 +11:00
James E. Blair ae5fc2922b Remove unecessary playbook
We should be able to set the tox work dir in the job definition.

Also, updates the files matcher so changes to the jobs cause them
to run.

Change-Id: I519a5257bb3806169ee78dee9ac6ae92d282a889
2017-10-21 05:05:38 +00:00
James E. Blair 339b108aee Add a Zuul v3 native cross-check job
Convert the existing legacy-cross-* jobs over to the
new cross-check-job.

Adds a small bump to upper-constraints in order to test
the success of this review.

Co-Authored-By: Dirk Mueller <dirk@dmllr.de>
Change-Id: Iba6a025e3a10185ad1d8217244b967713cace3f6
2017-10-20 15:33:14 +02:00
Monty Taylor a4ebb1c463
Move chdir into script itself
chdir for script commands isn't added until ansible 2.4 which we don't
run yet.

Change-Id: I4e042979a7bea3fa87d7cffb12e6728a8357dc9f
2017-10-15 08:57:20 -05:00
Monty Taylor 4054ec9fb8
Run check-requirements in the directory of the change
The script assumes it's being run in the directory containing the
proposed change, so we should chdir there. While we're at it, collapse
this to use the 'script' module which copies a script and executes it.

Change-Id: I43ed49d523c3131aad6c892c78fd95aba65c30fe
2017-10-10 13:50:13 -05:00
Monty Taylor bcdb298d71 Stop using zuul-cloner in project-requirements-change
In zuul v3 the repos are pushed to the node and do not need to be
cloned.

Change-Id: Iae56d131002236f2b2c24cc7339ae795f0bbb192
2017-10-04 17:09:42 +00:00
Monty Taylor 5e0f7cba3f Add requirements-check job
This is a straight copy of the original gate-{name}-requirements job,
except it copies the script over to the host rather than depending on a
baked-in copy of the script. Followups should rework it to stop using
zuul-cloner.

(jlk) updated to fix pep8 errors so that the patch can land.

Change-Id: I734db3b3e4d445e15084d1ca6e60cf2fe392385d
2017-10-04 17:09:33 +00:00