Files
zuul-jobs/roles/nox
Clark Boylan 0fb74ee260 Find tox/nox siblings with normalized package names
We were doing a string equality check on package names to determine when
to remove packages from the constraints file. Python packaging has
become more aggressive about normalizing names and sometimes the tools
(like pip freeze) will give us a normalized name that the package itself
has encoded within it. When that happens our equality checks can fail
because '_' != "-" inside of strings. Fix this by normalizing the names
when comparing them to determine what if any edits should be made to
constraints.

Change-Id: I8f5c24029ded67386619294f9518dbb19c12e9fa
2025-10-23 11:44:42 -07:00
..
2022-12-19 18:41:12 -08:00
2022-12-19 18:41:16 -08:00

Runs nox for a project

This role overrides Python packages installed into nox environments with corresponding Zuul sibling projects and runs nox tests as follows:

  1. Create nox environments. Note this role currently relies on using the default .nox/session name environment paths.
  2. Get Python sibling package names for sibling projects created by Zuul (using required-projects job variable). Package names are searched in following sources:
    • setup.cfg of pbr projects,
    • setup.py,
    • nox_package_name role variable.
  3. Remove sibling packages from nox environments.
  4. Create temporary constraints file, lines for sibling packages are removed.
  5. Install sibling packages from Zuul projects into nox environments with temporary constraints file.
  6. Run nox tests.

Role Variables

Space separated string listing nox sessions to run.

String to select nox sessions via keyword rather than session name.

String to select nox sessions via tag rather than session name.

String to force a specific python version to be used in the session. This allows you to request session tests be run against python 3.11.

Path to a nox configuration file. If not specified the nox will look for noxfile.py by default.

Path to a pip constraints file. Will be provided to nox via NOX_CONSTRAINTS_FILE.

Allows a user to setup the package name to be used by nox, over reading a setup.cfg file in the project.