-
-
Notifications
You must be signed in to change notification settings - Fork 874
/
tox.ini
146 lines (137 loc) · 3.62 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
[tox]
minversion = 4.0
isolated_build = True
requires =
tox-extra
envlist =
lint
pkg
docs
py312
py311
py310
py39
ignore_basepython_conflict = True
skip_missing_interpreters = True
skipdist = True
[gh-actions]
python =
3.9: py39
3.10: py310
3.11: py311
3.12: py312
[testenv]
usedevelop = True
# hide deps from stdout https://github.com/tox-dev/tox/issues/601
# list_dependencies_command=echo
extras =
cli
opt
test
sitepackages=False
commands=
git clean -xdf jira tests
python -m pip check
python make_local_jira_user.py
python -m pytest {posargs}
setenv =
PIP_CONSTRAINT={toxinidir}/constraints.txt
PIP_LOG={envdir}/pip.log
PIP_DISABLE_PIP_VERSION_CHECK=1
# Avoid 2020-01-01 warnings: https://github.com/pypa/pip/issues/6207
PYTHONWARNINGS=ignore:DEPRECATION::pip._internal.cli.base_command
CI_JIRA_URL=http://localhost:2990/jira
CI_JIRA_ADMIN=admin
CI_JIRA_ADMIN_PASSWORD=admin
CI_JIRA_USER=jira_user
CI_JIRA_USER_FULL_NAME=Newly Created CI User
CI_JIRA_USER_PASSWORD=jira
CI_JIRA_ISSUE=Task
passenv =
CI
CI_JIRA_*
CURL_CA_BUNDLE
PIP_*
REQUESTS_CA_BUNDLE
SSL_CERT_FILE
TWINE_*
GITHUB_*
XDG_CACHE_HOME
# For Windows users, getpass.get_user() needs USERNAME
USERNAME
allowlist_externals =
git
sh
[testenv:deps]
description = Update dependency lock files
# Force it to use oldest supported version of python or we would lose ability
# to get pinning correctly.
basepython = python3.9
skip_install = true
deps =
pip-tools >= 6.4.0
pre-commit >= 2.13.0
commands =
pip-compile --upgrade -o constraints.txt --extra cli --extra docs --extra opt --extra async --extra test --strip-extras
{envpython} -m pre_commit autoupdate
[testenv:docs]
extras =
cli
docs
# changedir=docs
usedevelop = True
skipdist = False
setenv =
PYTHONHTTPSVERIFY=0
commands =
sphinx-build \
--verbose \
--write-all \
--nitpicky --fail-on-warning \
-b html --color \
-d "{toxworkdir}/docs_doctree" \
docs/ "{toxworkdir}/docs_out"
# Print out the output docs dir and a way to serve html:
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")'
[testenv:pkg]
basepython = python3
description =
Build package, verify metadata, install package and assert behavior when ansible is missing.
deps =
build >= 0.7.0
twine
pip
skip_install = true
# Ref: https://twitter.com/di_codes/status/1044358639081975813
commands =
# build wheel and sdist using PEP-517
{envpython} -c 'import os.path, shutil, sys; \
dist_dir = os.path.join(r"{toxinidir}", "dist"); \
os.path.isdir(dist_dir) or sys.exit(0); \
print("Removing \{!s\} contents...".format(dist_dir), file=sys.stderr); \
shutil.rmtree(dist_dir)'
{envpython} -m build \
--outdir {toxinidir}/dist/ \
{toxinidir}
# Validate metadata using twine
twine check --strict {toxinidir}/dist/*
# Install the wheel
sh -c "pip3 install {toxinidir}/dist/*.whl"
# Check if cli was installed
jirashell --help
# Uninstall the wheel
{envpython} -m pip uninstall -y jira
[testenv:lint]
deps = pre-commit>=1.17.0
commands=
python -m pre_commit run --color=always {posargs:--all}
setenv =
PIP_CONSTRAINT=
skip_install = true
usedevelop = false
[testenv:maintenance]
# this will obliterate your jira instance, used to clean the CI server
commands=
python examples/maintenance.py