-
Notifications
You must be signed in to change notification settings - Fork 3
/
tox.ini
149 lines (139 loc) · 5.03 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
# Tox configuration file
# Read more under https://tox.wiki/
[tox]
minversion = 3.15
envlist = py3096
isolated_build = True
# tests can be ran through tox or directly via pipenv and the
# pytest package used as --dev dependency
#
# pipenv run pytest -s --use-running-containers --docker-compose-no-build --pyargs fhirpack tests
[testenv]
description = Invoke pytest to run automated tests
setenv =
TOXINIDIR = {toxinidir}
passenv =
*
extras =
testing
deps =
pytest
pytest-docker-compose
commands =
echo "################# TOX [ textenv ] ##################"
echo $TOXINIDIR
ls -1la .
pytest -s --use-running-containers --docker-compose-no-build --pyargs fhirpack {posargs}
allowlist_externals= echo
ls
[testenv:{lint}]
description =
lint: lint the codebase using black
changedir = {toxinidir}
skip_install = True
deps =
lint: black
commands =
ls -1la .
lint: echo "################# TOX [ textenv lint ] ##################"
lint: black .
allowlist_externals= echo
ls
[testenv:{visualize}]
description =
visualize: Generate SVG diagrams of the classes and packages in this library
changedir = {toxinidir}
deps =
visualize: pylint
commands =
ls -1la .
visualize: echo "################# TOX [ textenv lint ] ##################"
# visualize: pyreverse fhirpack -o dot -p fhirpack -k -A -s1
visualize: pyreverse fhirpack -o dot -p fhirpack -k -A -s0
visualize: gv2gml packages_fhirpack.dot -o packages_fhirpack.gml
visualize: gv2gml classes_fhirpack.dot -o classes_fhirpack.gml
allowlist_externals= echo
ls
gv2gml
[testenv:{build,clean}]
description =
build: Build the package in isolation according to PEP517, see https://github.com/pypa/build
clean: Remove old distribution files and temporary build artifacts (./build and ./dist)
# https://setuptools.pypa.io/en/stable/build_meta.html#how-to-use-it
skip_install = True
changedir = {toxinidir}
deps =
build: vistir==0.6.1 #TODO: remove when https://github.com/Madoshakalaka/pipenv-setup/issues/138 is fixed
build: pipenv-setup
build: build
build: black
commands =
build: echo '################# TOX [ textenv build ] ##################'
build: black .
build: pipenv-setup sync --pipfile
build: python -m build {posargs}
clean: echo '################# TOX [ textenv clean ] ##################'
clean: bash -c "rm -Rf dist build"
allowlist_externals= echo
bash
[testenv:{docs,docs-live,doctests,linkcheck}]
description =
docs: Invoke sphinx-build to build the docs
doctests: Invoke sphinx-build to run doctests
linkcheck: Check for broken links in the documentation
setenv =
DOCSDIR = {toxinidir}/docs
BUILDDIR = {toxinidir}/docs/_build
docs: BUILD = html
docs-live: BUILD = html
doctests: BUILD = doctest
linkcheck: BUILD = linkcheck
skip_install = True
deps =
sphinx
sphinx-autobuild
myst-parser
nbsphinx
-r {toxinidir}/docs/requirements.txt
commands =
docs: echo '################# TOX [ textenv docs ] ##################'
docs: ls -1la .
docs: jupyter kernelspec list
# docs: python -m ipykernel install --user --name=python3
# docs: jupyter kernelspec list
# docs: pipenv run sphinx-build --color -a -b {env:BUILD} -d "{env:BUILDDIR}/doctrees" "{env:DOCSDIR}" "{env:BUILDDIR}/{env:BUILD}" {posargs}
docs: pipenv run sphinx-build --color -b {env:BUILD} -d "{env:BUILDDIR}/doctrees" "{env:DOCSDIR}" "{env:BUILDDIR}/{env:BUILD}" {posargs}
# docs-live: pipenv run sphinx-autobuild --pre-build "rm -Rf {env:BUILDDIR}" --port 0 -b {env:BUILD} -d "{env:BUILDDIR}/doctrees" "{env:DOCSDIR}" "{env:BUILDDIR}/{env:BUILD}" {posargs}
docs-live: pipenv run sphinx-autobuild --port 0 -b {env:BUILD} -d "{env:BUILDDIR}/doctrees" "{env:DOCSDIR}" "{env:BUILDDIR}/{env:BUILD}" {posargs}
allowlist_externals= echo
ls
jupyter
python
[testenv:{release,publish}]
description =
Release or publish the package local to the configured package index server.
By default, it uses testpypi. If you really want to publish your package
to be publicly accessible in PyPI, use the `-- --repository pypi` option.
skip_install = True
changedir = {toxinidir}
passenv =
TWINE_USERNAME
TWINE_PASSWORD
TWINE_REPOSITORY
# CI_API_V4_URL
# CI_PROJECT_ID
# CI_JOB_TOKEN
setenv =
# TWINE_PASSWORD=${CI_JOB_TOKEN}
# TWINE_USERNAME=gitlab-ci-token
deps =
publish: python-dotenv[cli]
publish: twine
commands =
publish: python -m twine check dist/*
# publish: dotenv -f .env run python -m twine upload --repository-url https://gitlab.com/api/v4/projects/35679300/packages/pypi dist/*
publish: python setup.py sdist bdist_wheel
# python -m twine upload -r testpypi dist/*
# publish: pipenv run bump2version --verbose --allow-dirty patch --tag --commit
publish: dotenv -f .env run python -m twine upload dist/*
# publish: python -m twine upload --repository-url {env:CI_API_V4_URL}/projects/{env:CI_PROJECT_ID}/packages/pypi dist/*