-
Notifications
You must be signed in to change notification settings - Fork 33
/
tox.ini
145 lines (131 loc) · 4.42 KB
/
tox.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
[tox]
minversion = 3.18.0
envlist = py3,pep8
ignore_basepython_conflict = True
[testenv]
basepython = python3
usedevelop = True
passenv =
HOME
allowlist_externals =
bash
make
python3
rm
setenv =
VIRTUAL_ENV={envdir}
PYTHONWARNINGS=default::DeprecationWarning
OS_STDOUT_CAPTURE=1
OS_STDERR_CAPTURE=1
OS_TEST_TIMEOUT=60
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2024.2}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = stestr run {posargs}
[testenv:pep8]
# sphinx8 needs the sphinx package which is required via doc/requirements.txt
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2024.2}
-r{toxinidir}/requirements.txt
-r{toxinidir}/doc/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
bash {toxinidir}/tools/run-bashate.sh
flake8 {posargs} kayobe
# Check the *.rst files
# We use a thin wrapper around doc8 currently, which has support for sphinx
# directives.
python3 {toxinidir}/tools/sphinx8 README.rst CONTRIBUTING.rst doc/source --ignore D001
yamllint etc/kayobe
[testenv:venv]
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2024.2}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/doc/requirements.txt
commands = {posargs}
[testenv:ansible]
# Create the virtualenv with access to system site packages, as this is
# required to use the python and apt modules, which are not available via PyPI.
sitepackages = True
commands =
# Install ansible role dependencies from Galaxy.
bash {toxinidir}/tools/ansible-galaxy-retried.sh install \
-r {toxinidir}/requirements.yml \
-p {toxinidir}/ansible/roles
bash {toxinidir}/tools/test-ansible.sh {posargs}
[testenv:molecule]
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2024.2}
-r{toxinidir}/requirements.txt
-r{toxinidir}/molecule-requirements.txt
commands =
# Install ansible role dependencies from Galaxy.
bash {toxinidir}/tools/ansible-galaxy-retried.sh install \
-r {toxinidir}/requirements.yml \
-p {toxinidir}/ansible/roles
bash -c "source {envdir}/bin/activate && {toxinidir}/tools/test-molecule.sh {posargs}"
[testenv:alint]
commands = /bin/bash -c "ansible-lint {toxinidir}/ansible/*.yml"
[testenv:ansible-syntax]
commands =
# Install ansible role dependencies from Galaxy.
bash {toxinidir}/tools/ansible-galaxy-retried.sh role install \
-r {toxinidir}/requirements.yml \
-p {toxinidir}/ansible/roles
# Install ansible collection dependencies from Galaxy.
bash {toxinidir}/tools/ansible-galaxy-retried.sh collection install \
-r {toxinidir}/requirements.yml \
-p {toxinidir}/ansible/collections
# Perform an Ansible syntax check. Skip some playbooks which require extra
# variables to be defined.
bash -c \
"ansible-playbook \
--connection=local \
--syntax-check \
--list-tasks \
$(find {toxinidir}/ansible \
-maxdepth 1 \
-name '*.yml' \
-not -name idrac-bootstrap-one.yml \
-not -name idrac-bootstrap.yml) \
{posargs}"
[testenv:cover]
setenv =
VIRTUAL_ENV={envdir}
PYTHON=coverage run --source kayobe --parallel-mode
commands =
coverage erase
stestr run {posargs}
coverage combine
coverage report
coverage html -d cover
coverage xml -o cover/coverage.xml
[testenv:docs]
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2024.2}
-r{toxinidir}/doc/requirements.txt
commands =
rm -rf doc/build/html
sphinx-build -W --keep-going -b html doc/source doc/build/html
whereto doc/source/_extra/.htaccess doc/test/redirect-tests.txt
[testenv:pdf-docs]
deps = {[testenv:docs]deps}
commands =
rm -rf doc/build/pdf
sphinx-build -W --keep-going -b latex doc/source doc/build/pdf
make -C doc/build/pdf
[testenv:debug]
commands = oslo_debug_helper {posargs}
[testenv:releasenotes]
deps = {[testenv:docs]deps}
commands =
rm -rf releasenotes/build
sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html releasenotes/source releasenotes/build/html
[flake8]
# E123, E125 skipped as they are invalid PEP-8.
# W504 line break after binary operator
show-source = True
ignore = E123,E125,W504
builtins = _
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build