This repository has been archived by the owner on Jan 5, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 39
/
Copy pathtox.ini
144 lines (135 loc) · 4.12 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
[tox]
minversion = 3.9.0
envlist =
lint
docs
packaging
py
py-devel
# do not enable skip missing to avoid CI false positives
skip_missing_interpreters = False
isolated_build = True
[testenv]
usedevelop = True
# do not put * in passenv as it may break builds do to reduced isolation
passenv =
CI
CONTAINER_*
DOCKER_*
GITHUB_*
HOME
PODMAN_*
PYTEST_*
SSH_AUTH_SOCK
TERM
setenv =
ANSIBLE_CONFIG={toxinidir}/ansible.cfg
ANSIBLE_CALLABLE_WHITELIST={env:ANSIBLE_CALLABLE_WHITELIST:timer,profile_roles}
ANSIBLE_CALLABLE_ENABLED={env:ANSIBLE_CALLABLE_WHITELIST:timer,profile_roles}
ANSIBLE_NOCOWS=1
ANSIBLE_DISPLAY_FAILED_STDERR=1
ANSIBLE_VERBOSITY=1
PYTHONDONTWRITEBYTECODE=1
PYTHONUNBUFFERED=1
# Disabled new resolved due to https://github.com/pypa/pip/issues/8713
# new resolve a must or test extras will not install right
# PIP_USE_FEATURE=2020-resolver
MOLECULE_NO_LOG=0
deps =
!devel: ansible-core>=2.12
!devel,!dockerfile: molecule[test]
devel: git+https://github.com/ansible/ansible#egg=ansible-core
devel: git+https://github.com/ansible-community/molecule.git@main#egg=molecule[test]
dockerfile: ansible-core>=2.12
selinux
extras =
lint
test
commands =
# failsafe as pip may install incompatible dependencies
pip check
# failsafe for broken installation
molecule --version
# failsafe for preventing changes that may break pytest collection
python -m pytest -p no:cov --collect-only
python -m pytest {posargs:-l}
allowlist_externals =
find
rm
sh
[testenv:lint]
description = Runs all linting tasks
commands =
# to run a single linter you can do "pre-commit run flake8"
python -m pre_commit run {posargs:--all}
deps = pre-commit>=1.18.1
extras =
skip_install = true
usedevelop = false
[testenv:docs]
description = Invoke sphinx-build to build the HTML docs
# doc requires py3 due to use of f'' strings and using only python3 as
# basepython risks using python3.4 which is not supported.
basepython = python3
passenv = *
usedevelop = False
commands =
python -m sphinx \
-a -n -W \
-b html --color \
-d "{toxinidir}/docs/docstree" \
docs/ "{toxinidir}/docs/docstree/html"
# Print out the output docs dir and a way to serve html:
python -c \
'import pathlib; '\
'docs_dir = pathlib.Path(r"{toxinidir}") / "docs/docstree/html"; 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")'
extras =
docs
[testenv:docs-livereload]
description = Invoke sphinx-autobuild to build and reload the HTML docs
basepython = {[testenv:docs]basepython}
passenv = {[testenv:docs]passenv}
usedevelop = {[testenv:docs]usedevelop}
commands =
python -m sphinx_autobuild docs/ "{toxworkdir}/docs/html"
deps =
sphinx-autobuild>=0.7.1,<1.0
extras =
docs
[testenv:dockerfile]
description = Tests ability to build ansible enabled container images (
# This relies on system version of Ansible and does not install any
# dependencies. That is by design as it allows us to test compatibility with
# system ansible from Ubuntu, which is known to be very old.
deps =
skip_install = true
usedevelop = false
passenv = {[testenv]passenv}
setenv = {[testenv]setenv}
commands =
ansible --version
ansible-galaxy collection install -r requirements.yml
ansible-playbook -i localhost, src/molecule_docker/playbooks/validate-dockerfile.yml
allowlist_externals =
ansible
ansible-galaxy
ansible-playbook
[testenv:packaging]
description =
Do packaging/distribution. If tag is not present or PEP440 compliant upload to
PYPI could fail
# `usedevelop = true` overrides `skip_install` instruction, it's unwanted
usedevelop = false
# don't install molecule itself in this env
skip_install = true
deps =
build >= 0.7.0
twine >= 3.2.0 # pyup: ignore
setenv =
commands =
rm -rfv {toxinidir}/dist/
python -m build \
--outdir {toxinidir}/dist/ \
{toxinidir}
# metadata validation
sh -c "python -m twine check --strict {toxinidir}/dist/*"