Add tox and Zuul CI environments for Trixie
Add tox environments and Zuul check/gate jobs for unit testing,
coverage analysis, and security scanning for nfv and nova-api-proxy,
running on both Debian Bullseye and Trixie.
Trixie is the default target, so its tox environments and Zuul jobs
use the plain names (pep8, pylint, black, py313, coverage, bandit,
linters). Bullseye (py3.9) environments and jobs carry an explicit
-bullseye suffix; Bullseye tox environments override basepython/deps
via a [bullseye] section.
Requirements files:
- test-requirements.txt: Trixie test dependencies (default)
- test-requirements-bullseye.txt: Bullseye test dependencies
- .coveragerc: Coverage configuration for nova-api-proxy
Tox environments (nfv/tox.ini):
- Trixie (default, py3.13): pep8, pylint, black, py313, coverage,
bandit
- Bullseye (py3.9): pep8-bullseye, pylint-bullseye, black-bullseye,
py39-bullseye, coverage-bullseye, bandit-bullseye
Tox environments (nova-api-proxy/tox.ini):
- Trixie (default): pep8, pylint, black, coverage
- Bullseye: pep8-bullseye, pylint-bullseye, black-bullseye,
coverage-bullseye
Root tox.ini:
- Default [testenv] targets Trixie (python3.13)
- Dummy envs for Zuul compatibility
Zuul jobs (.zuul.yaml):
- Voting (gate), Trixie: nfv-tox-linters, nfv-tox-pep8,
nfv-tox-pylint, nfv-tox-black, nfv-tox-py313, nfv-tox-coverage,
nfv-tox-bandit, nova-api-proxy-tox-pep8,
nova-api-proxy-tox-pylint, nova-api-proxy-tox-black,
nova-api-proxy-tox-coverage
- Non-voting (check only), Bullseye: the corresponding
nfv-tox-*-bullseye and nova-api-proxy-tox-*-bullseye jobs
Playbooks:
- fetch-coverage.yaml: Collect nfv coverage artifacts from
UTCoverage/ directory. Directory named UTCoverage/ to follow
the naming convention used by other StarlingX repos.
- fetch-coverage-nova-api-proxy.yaml: Upload proxy coverage.
Test-Plan:
PASS: tox -e pep8,pylint,black,py313,coverage,bandit (nfv/)
PASS: tox -e pep8-bullseye,pylint-bullseye,black-bullseye (nfv/)
PASS: tox -e py39-bullseye,coverage-bullseye (nfv/)
PASS: tox -e pep8,pylint,black,coverage (nova-api-proxy/)
PASS: tox -e pep8-bullseye,coverage-bullseye (nova-api-proxy/)
PASS: tox -e linters, linters-bullseye
PASS: tox -e docs, releasenotes, api-ref
Story: 2011781
Task: 54324
Assisted-by: Amazon Q Developer (Kiro)
Change-Id: Iacf7eb6a6197e91a85b07633c68936c17210db65
Signed-off-by: Dharniss G R <dharniss.gr@windriver.com>