378e039dba
We added nox somewhat recently and set it up to mimic existing tox jobs. This meant adding py27 jobs. Since then (in OpenDev at least) only a single project has used the py27 job: Bindep. Bindep is dropping support for python2.7 as the need for it has come to an end. Additionally, nox doesn't work with python2.7 out of the box due to a virtualenv dependency that ends up being too new for python2.7 venv creation. Rather than hack around that let's drop python2.7 job support. Change-Id: I52c07b01ad173304c19b13a10927fdadf9d84170
614 lines
16 KiB
YAML
614 lines
16 KiB
YAML
- job:
|
|
name: tox
|
|
parent: unittests
|
|
description: |
|
|
Base job containing setup and teardown for tox-based test jobs.
|
|
|
|
This performs basic host and general project setup tasks common
|
|
to all tox unit test jobs.
|
|
|
|
Responds to these variables:
|
|
|
|
.. zuul:jobvar:: tox_envlist
|
|
|
|
Use the specified tox environments (``ALL`` selects all).
|
|
|
|
.. zuul:jobvar:: tox_environment
|
|
:type: dict
|
|
|
|
Environment variables to pass in to the tox run.
|
|
|
|
.. zuul:jobvar:: tox_extra_args
|
|
|
|
String containing extra arguments to append to the tox command line.
|
|
|
|
.. zuul:jobvar:: tox_constraints_file
|
|
|
|
Path to a pip constraints file. Will be provided to tox in the
|
|
TOX_CONSTRAINTS_FILE environment variable if it exists.
|
|
|
|
.. zuul:jobvar:: tox_install_siblings
|
|
:default: true
|
|
|
|
Override tox requirements that have corresponding zuul git repos
|
|
on the node by installing the git versions into the tox virtualenv.
|
|
|
|
.. zuul:jobvar:: tox_install_bindep
|
|
:default: true
|
|
|
|
Whether or not to run the binary dependencies detection and
|
|
installation with bindep.
|
|
run: playbooks/tox/run.yaml
|
|
pre-run: playbooks/tox/pre.yaml
|
|
post-run: playbooks/tox/post.yaml
|
|
vars:
|
|
tox_environment:
|
|
NOSE_WITH_HTML_OUTPUT: 1
|
|
NOSE_HTML_OUT_FILE: nose_results.html
|
|
NOSE_WITH_XUNIT: 1
|
|
|
|
- job:
|
|
name: tox-fips
|
|
parent: unittests-fips
|
|
description: |
|
|
Base job containing setup and teardown for fips and tox-based test jobs.
|
|
|
|
This performs basic host and general project setup tasks common
|
|
to all tox unit test jobs related to fips.
|
|
|
|
Responds to these variables:
|
|
|
|
.. zuul:jobvar:: tox_envlist
|
|
|
|
Use the specified tox environments (``ALL`` selects all).
|
|
|
|
.. zuul:jobvar:: tox_environment
|
|
:type: dict
|
|
|
|
Environment variables to pass in to the tox run.
|
|
|
|
.. zuul:jobvar:: tox_extra_args
|
|
|
|
String containing extra arguments to append to the tox command line.
|
|
|
|
.. zuul:jobvar:: tox_constraints_file
|
|
|
|
Path to a pip constraints file. Will be provided to tox in the
|
|
TOX_CONSTRAINTS_FILE environment variable if it exists.
|
|
|
|
.. zuul:jobvar:: tox_install_siblings
|
|
:default: true
|
|
|
|
Override tox requirements that have corresponding zuul git repos
|
|
on the node by installing the git versions into the tox virtualenv.
|
|
|
|
.. zuul:jobvar:: tox_install_bindep
|
|
:default: true
|
|
|
|
Whether or not to run the binary dependencies detection and
|
|
installation with bindep.
|
|
run: playbooks/tox/run.yaml
|
|
pre-run: playbooks/tox/pre.yaml
|
|
post-run: playbooks/tox/post.yaml
|
|
vars:
|
|
tox_environment:
|
|
NOSE_WITH_HTML_OUTPUT: 1
|
|
NOSE_HTML_OUT_FILE: nose_results.html
|
|
NOSE_WITH_XUNIT: 1
|
|
|
|
- job:
|
|
name: tox-py27
|
|
parent: tox
|
|
description: |
|
|
Run unit tests for a Python project under cPython version 2.7.
|
|
|
|
Uses tox with the ``py27`` environment.
|
|
vars:
|
|
tox_envlist: py27
|
|
python_version: "2.7"
|
|
|
|
- job:
|
|
name: tox-py34
|
|
parent: tox
|
|
description: |
|
|
Run unit tests for a Python project under cPython version 3.4.
|
|
|
|
Uses tox with the ``py34`` environment.
|
|
|
|
Changes to the zuul-jobs collection are no longer regression tested with
|
|
Python 3.4, but this job definition is being retained for backward
|
|
compatibility.
|
|
vars:
|
|
tox_envlist: py34
|
|
python_version: "3.4"
|
|
|
|
- job:
|
|
name: tox-py35
|
|
parent: tox
|
|
description: |
|
|
Run unit tests for a Python project under cPython version 3.5.
|
|
|
|
Uses tox with the ``py35`` environment.
|
|
|
|
Changes to the zuul-jobs collection are no longer regression tested with
|
|
Python 3.5, but this job definition is being retained for backward
|
|
compatibility.
|
|
vars:
|
|
tox_envlist: py35
|
|
python_version: "3.5"
|
|
|
|
- job:
|
|
name: tox-py36
|
|
parent: tox
|
|
description: |
|
|
Run unit tests for a Python project under cPython version 3.6.
|
|
|
|
Uses tox with the ``py36`` environment.
|
|
vars:
|
|
tox_envlist: py36
|
|
python_version: "3.6"
|
|
|
|
- job:
|
|
name: tox-py37
|
|
parent: tox
|
|
description: |
|
|
Run unit tests for a Python project under cPython version 3.7.
|
|
|
|
Uses tox with the ``py37`` environment.
|
|
vars:
|
|
tox_envlist: py37
|
|
python_version: "3.7"
|
|
|
|
- job:
|
|
name: tox-py38
|
|
parent: tox
|
|
description: |
|
|
Run unit tests for a Python project under cPython version 3.8.
|
|
|
|
Uses tox with the ``py38`` environment.
|
|
vars:
|
|
tox_envlist: py38
|
|
python_version: "3.8"
|
|
|
|
- job:
|
|
name: tox-py39
|
|
parent: tox
|
|
description: |
|
|
Run unit tests for a Python project under cPython version 3.9.
|
|
|
|
Uses tox with the ``py39`` environment.
|
|
vars:
|
|
tox_envlist: py39
|
|
python_version: "3.9"
|
|
|
|
- job:
|
|
name: tox-py310
|
|
parent: tox
|
|
description: |
|
|
Run unit tests for a Python project under cPython version 3.10.
|
|
|
|
Uses tox with the ``py310`` environment.
|
|
vars:
|
|
tox_envlist: py310
|
|
python_version: "3.10"
|
|
|
|
- job:
|
|
name: tox-py311
|
|
parent: tox
|
|
description: |
|
|
Run unit tests for a Python project under cPython version 3.11.
|
|
|
|
Uses tox with the ``py311`` environment.
|
|
vars:
|
|
tox_envlist: py311
|
|
python_version: "3.11"
|
|
|
|
- job:
|
|
name: tox-docs
|
|
# This is not parented to tox since we do not need
|
|
# the roles from its parent unittests.
|
|
description: |
|
|
Run documentation unit tests.
|
|
|
|
Uses tox with the ``docs`` environment.
|
|
vars:
|
|
tox_envlist: docs
|
|
bindep_profile: compile doc
|
|
run: playbooks/tox/run.yaml
|
|
pre-run:
|
|
- playbooks/tox-docs/pre.yaml
|
|
- playbooks/tox/pre.yaml
|
|
post-run:
|
|
- playbooks/tox/docs-post.yaml
|
|
- playbooks/tox/post.yaml
|
|
|
|
- job:
|
|
name: tox-linters
|
|
parent: tox
|
|
description: |
|
|
Runs code linting tests.
|
|
|
|
Uses tox with the ``linters`` environment.
|
|
vars:
|
|
tox_envlist: linters
|
|
test_setup_skip: true
|
|
|
|
- job:
|
|
name: tox-molecule
|
|
parent: tox
|
|
pre-run: playbooks/tox/pre-molecule.yaml
|
|
description: |
|
|
Runs Ansible molecule testing on a system where docker is available.
|
|
|
|
Uses tox with the ``molecule`` environment.
|
|
vars:
|
|
tox_envlist: molecule
|
|
|
|
- job:
|
|
name: tox-pep8
|
|
parent: tox
|
|
description: |
|
|
Runs code pep8 tests.
|
|
|
|
Uses tox with the ``pep8`` environment.
|
|
vars:
|
|
tox_envlist: pep8
|
|
test_setup_skip: true
|
|
|
|
- job:
|
|
name: tox-cover
|
|
parent: tox
|
|
description: |
|
|
Run code coverage tests.
|
|
|
|
Uses tox with the ``cover`` environment.
|
|
post-run: playbooks/tox/cover-post.yaml
|
|
vars:
|
|
tox_envlist: cover
|
|
|
|
- job:
|
|
name: tox-bashate
|
|
parent: tox
|
|
description: |
|
|
Run bashate tests.
|
|
|
|
Uses tox with the ``bashate`` environment.
|
|
vars:
|
|
tox_envlist: bashate
|
|
|
|
- job:
|
|
name: tox-nodejs-npm
|
|
parent: tox
|
|
description: |
|
|
Run tests using tox but with the javascript toolchain installed
|
|
and available as well. A combination of the tox and nodejs-npm
|
|
jobs. By default will run npm before running the tox environment listed.
|
|
|
|
Responds to these variables:
|
|
|
|
.. zuul:jobvar:: tox_envlist
|
|
|
|
Use the specified tox environments (``ALL`` selects all).
|
|
|
|
.. zuul:jobvar:: tox_environment
|
|
:type: dict
|
|
|
|
Environment variables to pass in to the tox run.
|
|
|
|
.. zuul:jobvar:: tox_extra_args
|
|
|
|
String containing extra arguments to append to the tox command line.
|
|
|
|
.. zuul:jobvar:: tox_constraints_file
|
|
|
|
Path to a pip constraints file. Will be provided to tox in the
|
|
TOX_CONSTRAINTS_FILE environment variable if it exists.
|
|
|
|
.. zuul:jobvar:: tox_install_siblings
|
|
:default: true
|
|
|
|
Override tox requirements that have corresponding zuul git repos
|
|
on the node by installing the git versions into the tox virtualenv.
|
|
|
|
.. zuul:jobvar:: npm_command
|
|
:default: build
|
|
|
|
Command to pass to npm.
|
|
|
|
.. zuul:jobvar:: node_version
|
|
:default: 6
|
|
|
|
The version of Node to use.
|
|
|
|
.. zuul:jobvar:: javascript_content_dir
|
|
:default: dist
|
|
|
|
Directory, relative to zuul_work_dir, holding build content.
|
|
|
|
.. zuul:jobvar:: zuul_work_dir
|
|
:default: {{ zuul.project.src_dir }}
|
|
|
|
Path to operate in.
|
|
pre-run: playbooks/javascript/pre.yaml
|
|
run: playbooks/tox/npm.yaml
|
|
post-run: playbooks/javascript/post.yaml
|
|
vars:
|
|
npm_command: build
|
|
|
|
- job:
|
|
name: nox
|
|
parent: unittests
|
|
description: |
|
|
Base job containing setup and teardown for nox-based test jobs.
|
|
|
|
This performs basic host and general project setup tasks common
|
|
to all nox unit test jobs.
|
|
|
|
Responds to these variables:
|
|
|
|
.. zuul:jobvar:: nox_session
|
|
|
|
Use the specified nox sessions
|
|
|
|
.. zuul:jobvar:: nox_keyword
|
|
|
|
Use the specified nox keyword
|
|
|
|
.. zuul:jobvar:: nox_tag
|
|
|
|
Use the specified nox tag
|
|
|
|
.. zuul:jobvar:: nox_force_python
|
|
|
|
Force nox to run the selected sessions under this version of python.
|
|
|
|
.. zuul:jobvar:: nox_config_file
|
|
|
|
Override the default noxfile.py configuration path.
|
|
|
|
.. zuul:jobvar:: nox_environment
|
|
:type: dict
|
|
|
|
Environment variables to pass in to the nox run.
|
|
Nox behaves differently when CI=1 is set. Consider setting this
|
|
if you override the role defaults.
|
|
|
|
.. zuul:jobvar:: nox_extra_args
|
|
|
|
String containing extra arguments to append to the nox command line.
|
|
|
|
.. zuul:jobvar:: nox_constraints_file
|
|
|
|
Path to a pip constraints file. Will be provided to nox in the
|
|
NOX_CONSTRAINTS_FILE environment variable if it exists.
|
|
|
|
.. zuul:jobvar:: nox_install_siblings
|
|
:default: true
|
|
|
|
Override nox requirements that have corresponding zuul git repos
|
|
on the node by installing the git versions into the nox virtualenv.
|
|
|
|
.. zuul:jobvar:: nox_install_bindep
|
|
:default: true
|
|
|
|
Whether or not to run the binary dependencies detection and
|
|
installation with bindep.
|
|
run: playbooks/nox/run.yaml
|
|
pre-run: playbooks/nox/pre.yaml
|
|
|
|
- job:
|
|
name: nox-py36
|
|
parent: nox
|
|
description: |
|
|
Run unit tests for a Python project under cPython version 3.6.
|
|
|
|
Uses nox with the ``test`` keyword forcing python 3.6.
|
|
vars:
|
|
nox_keyword: tests
|
|
nox_force_python: "3.6"
|
|
python_version: "3.6"
|
|
|
|
- job:
|
|
name: nox-py37
|
|
parent: nox
|
|
description: |
|
|
Run unit tests for a Python project under cPython version 3.7.
|
|
|
|
Uses nox with the ``test`` keyword forcing python 3.7.
|
|
vars:
|
|
nox_keyword: tests
|
|
nox_force_python: "3.7"
|
|
python_version: "3.7"
|
|
|
|
- job:
|
|
name: nox-py38
|
|
parent: nox
|
|
description: |
|
|
Run unit tests for a Python project under cPython version 3.8.
|
|
|
|
Uses nox with the ``test`` keyword forcing python 3.8.
|
|
vars:
|
|
nox_keyword: tests
|
|
nox_force_python: "3.8"
|
|
python_version: "3.8"
|
|
|
|
- job:
|
|
name: nox-py39
|
|
parent: nox
|
|
description: |
|
|
Run unit tests for a Python project under cPython version 3.9.
|
|
|
|
Uses nox with the ``test`` keyword forcing python 3.9.
|
|
vars:
|
|
nox_keyword: tests
|
|
nox_force_python: "3.9"
|
|
python_version: "3.9"
|
|
|
|
- job:
|
|
name: nox-py310
|
|
parent: nox
|
|
description: |
|
|
Run unit tests for a Python project under cPython version 3.10.
|
|
|
|
Uses nox with the ``test`` keyword forcing python 3.10.
|
|
vars:
|
|
nox_keyword: tests
|
|
nox_force_python: "3.10"
|
|
python_version: "3.10"
|
|
|
|
- job:
|
|
name: nox-py311
|
|
parent: nox
|
|
description: |
|
|
Run unit tests for a Python project under cPython version 3.11.
|
|
|
|
Uses nox with the ``test`` keyword forcing python 3.11.
|
|
vars:
|
|
nox_keyword: tests
|
|
nox_force_python: "3.11"
|
|
python_version: "3.11"
|
|
|
|
- job:
|
|
name: nox-cover
|
|
parent: nox
|
|
description: |
|
|
Run code coverage tests.
|
|
|
|
Uses nox with the ``cover`` keyword.
|
|
post-run: playbooks/nox/cover-post.yaml
|
|
vars:
|
|
nox_keyword: cover
|
|
|
|
- job:
|
|
name: nox-linters
|
|
parent: nox
|
|
description: |
|
|
Runs code linting tests.
|
|
|
|
Uses nox with the ``linters`` keyword.
|
|
vars:
|
|
nox_keyword: linters
|
|
test_setup_skip: true
|
|
|
|
- job:
|
|
name: nox-docs
|
|
# This is not parented to nox since we do not need
|
|
# the roles from its parent unittests.
|
|
description: |
|
|
Run documentation unit tests.
|
|
|
|
Uses nox with the ``docs`` keyword.
|
|
vars:
|
|
nox_keyword: docs
|
|
bindep_profile: compile doc
|
|
run: playbooks/nox/run.yaml
|
|
pre-run:
|
|
- playbooks/nox/docs-pre.yaml
|
|
- playbooks/nox/pre.yaml
|
|
post-run:
|
|
- playbooks/nox/docs-post.yaml
|
|
|
|
- job:
|
|
name: build-python-release
|
|
description: |
|
|
Build a source tarball and a bdist wheel for uploading.
|
|
pre-run: playbooks/python/pre.yaml
|
|
run: playbooks/python/release.yaml
|
|
post-run: playbooks/python/tarball-post.yaml
|
|
|
|
- job:
|
|
name: python-upload-pypi
|
|
parent: build-python-release
|
|
description: |
|
|
Generate and upload a python source tarball and binary wheel
|
|
|
|
Requires a variable ``pypi_info`` be set which is a dict
|
|
containing authentication values. See
|
|
`<https://zuul-ci.org/docs/zuul-jobs/python-roles.html#role-upload-pypi>`__
|
|
post-run: playbooks/python/upload-pypi.yaml
|
|
|
|
- job:
|
|
name: build-sphinx-docs
|
|
description: |
|
|
Build documentation using Sphinx
|
|
|
|
Additional requirements can be provided in a project in either the
|
|
file ``doc/requirements.txt`` or ``test-requirements.txt``. (The first
|
|
file found in that order will be the one used) Non-python distro
|
|
requirements can be specified in ``bindep.txt`` using the ``doc`` tag.
|
|
|
|
Runs `whereto https://docs.openstack.org/whereto/latest/` after the build
|
|
if it is installed.
|
|
|
|
Responds to these variables:
|
|
|
|
.. zuul:jobvar:: constraints_file
|
|
|
|
Optional path to a pip constraints file for installing python
|
|
libraries.
|
|
|
|
.. zuul:jobvar:: sphinx_python
|
|
:default: python2
|
|
|
|
Version of python to use, either ``python2`` or ``python3``.
|
|
|
|
.. zuul:jobvar:: zuul_work_dir
|
|
:default: {{ zuul.project.src_dir }}
|
|
|
|
Directory to operate in.
|
|
pre-run: playbooks/sphinx/pre.yaml
|
|
run: playbooks/sphinx/run.yaml
|
|
post-run: playbooks/sphinx/post.yaml
|
|
|
|
- job:
|
|
name: build-reno-releasenotes
|
|
description: |
|
|
Build releasenotes using reno
|
|
|
|
Additional requirements can be provided in a project in either the
|
|
file ``doc/requirements.txt`` or ``test-requirements.txt``. (The first
|
|
file found in that order will be the one used) Non-python distro
|
|
requirements can be specified in ``bindep.txt`` using the ``doc`` tag.
|
|
|
|
Responds to these variables:
|
|
|
|
.. zuul:jobvar:: constraints_file
|
|
|
|
Optional path to a pip constraints file for installing python
|
|
libraries.
|
|
|
|
.. zuul:jobvar:: sphinx_python
|
|
:default: python2
|
|
|
|
Version of python to use, either ``python2`` or ``python3``.
|
|
|
|
.. zuul:jobvar:: zuul_work_dir
|
|
:default: {{ zuul.project.src_dir }}
|
|
|
|
Directory to operate in.
|
|
# Release notes always build on master.
|
|
override-checkout: master
|
|
pre-run: playbooks/releasenotes/pre.yaml
|
|
run: playbooks/releasenotes/run.yaml
|
|
post-run: playbooks/releasenotes/post.yaml
|
|
files:
|
|
- ^releasenotes/.*
|
|
- bindep.txt
|
|
- doc/requirements.txt
|
|
- test-requirements.txt
|
|
- tox.ini
|
|
|
|
- job:
|
|
name: markdownlint
|
|
files: '^.*\.md$'
|
|
pre-run: playbooks/markdownlint/pre.yaml
|
|
run: playbooks/markdownlint/run.yaml
|
|
post-run: playbooks/markdownlint/post.yaml
|
|
description: |
|
|
Check any markdown for basic lint problems. Include a file named
|
|
`.markdownlint.json` that is configured according to
|
|
https://github.com/DavidAnson/markdownlint#optionsconfig
|
|
to control rule specifics.
|
|
vars:
|
|
node_version: 18
|