-
-
Notifications
You must be signed in to change notification settings - Fork 891
/
Copy pathtox.ini
171 lines (163 loc) · 4.3 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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
[tox]
requires =
setuptools>=65.3
tox>=4.24.2
tox-extra>=2.1
tox-uv>=1.25
env_list =
py312
py311
py310
lint
pkg
docs
skip_missing_interpreters = true
[testenv]
description =
Run the tests under {base_python}
devel: and ansible devel branch
package = editable
extras =
cli
opt
test
pass_env =
CI
CI_JIRA_*
CURL_CA_BUNDLE
FORCE_COLOR
GITHUB_*
HOME
LANG
LC_*
NO_COLOR
PYTEST_*
PYTEST_REQPASS
PYTHON*
PYTHONBREAKPOINT
PYTHONIOENCODING
PYTHONPYCACHEPREFIX
PY_COLORS
REQUESTS_CA_BUNDLE
RTD_TOKEN
SETUPTOOLS_SCM_DEBUG
SSH_AUTH_SOCK
SSL_CERT_FILE
TWINE_*
USERNAME
UV_*
XDG_CACHE_HOME
set_env =
CI_JIRA_ADMIN = admin
CI_JIRA_ADMIN_PASSWORD = admin
CI_JIRA_ISSUE = Task
CI_JIRA_URL = http://localhost:2990/jira
CI_JIRA_USER = jira_user
CI_JIRA_USER_FULL_NAME = Newly Created CI User
CI_JIRA_USER_PASSWORD = jira
COVERAGE_FILE = {env:COVERAGE_FILE:{env_dir}/.coverage.{env_name}}
COVERAGE_PROCESS_START = {tox_root}/pyproject.toml
FORCE_COLOR = 1
PIP_CONSTRAINT = {tox_root}/.config/constraints.txt
PIP_DISABLE_PIP_VERSION_CHECK = 1
PRE_COMMIT_COLOR = always
UV_CONSTRAINT = {tox_root}/.config/constraints.txt
deps, devel, hook, lint, pkg, pre, py310, schemas: PIP_CONSTRAINT = /dev/null
deps, devel, hook, lint, pkg, pre, py310, schemas: UV_CONSTRAINT = /dev/null
commands_pre =
sh -c "rm -f {env_dir}/.coverage.* 2>/dev/null || true"
{env_python} -m pip check
commands =
git clean -xdf jira tests
python -m pip check
coverage run -m pytest {posargs: \
-ra \
--showlocals \
--doctest-modules \
--durations=10 \
}
{py,py310,py311,py312,py313}: sh -c "coverage combine -a -q --data-file={env_dir}/.coverage {work_dir}/*/.coverage.* && coverage xml --data-file={env_dir}/.coverage -o {env_dir}/coverage.xml --fail-under=0 && coverage report --data-file={env_dir}/.coverage"
allowlist_externals =
git
sh
docker = jira
[testenv:lint]
description = Run all linters
skip_install = true
deps =
pre-commit>=4.1
pre-commit-uv>=4.1.4
pytest>=7.2.2 # to updated schemas
setuptools>=51.1.1
pass_env =
{[testenv]pass_env}
PRE_COMMIT_HOME
commands_pre =
commands =
{env_python} -m pre_commit run --all-files --show-diff-on-failure {posargs:}
[testenv:pkg]
description =
Build package, verify metadata, install package and assert behavior when ansible is missing.
skip_install = true
deps =
build>=0.9
pip
pipx
twine>=4.0.1
commands_pre =
commands =
{env_python} -c 'import os.path, shutil, sys; \
dist_dir = os.path.join("{tox_root}", "dist"); \
os.path.isdir(dist_dir) or sys.exit(0); \
print("Removing \{!s\} contents...".format(dist_dir), file=sys.stderr); \
shutil.rmtree(dist_dir)'
{env_python} -m build --outdir {tox_root}/dist/ {tox_root}
python3 -m twine check --strict {tox_root}/dist/*
sh -c "pip3 install {tox_root}/dist/*.whl"
sh -c "jirashell --help > /dev/null"
{env_python} -m pip uninstall -y jira
[testenv:docs]
description = Builds docs
package = editable
skip_install = false
extras =
cli
docs
set_env =
DYLD_FALLBACK_LIBRARY_PATH = /opt/homebrew/lib:{env:LD_LIBRARY_PATH}
NO_COLOR = 1
TERM = dump
commands_pre =
commands =
sphinx-build \
--verbose \
--write-all \
--nitpicky --fail-on-warning \
-b html --color \
-d "{toxworkdir}/docs_doctree" \
docs/ "{toxworkdir}/docs_out"
python -c \
'import pathlib; ' \
'docs_dir = pathlib.Path(r"{toxworkdir}") / "docs_out"; index_file = docs_dir / "index.html"; print(f"\nDocumentation available under `file://\{index_file\}`\n\nTo serve docs, use `python3 -m http.server --directory \{docs_dir\} 0`\n")'
skipdist = False
[testenv:deps]
description = Bump all test dependencies
skip_install = true
deps =
{[testenv:lint]deps}
commands_pre =
commands =
pre-commit run --all-files --show-diff-on-failure --hook-stage manual deps
pre-commit autoupdate
tox -e lint
env_dir = {work_dir}/lint
[testenv:maintenance]
commands =
python examples/maintenance.py
[docker:jira]
image = addono/jira-software-standalone:latest
[gh-actions]
python =
3.10: py310
3.11: py311
3.12: py312