kiwi-el8/tox.ini
Marcus Schäfer ccc2336db0
Don't use poetry publish
Publishing to pypi is done via pypa/gh-action-pypi-publish
and the respective auth token. Calling poetry publish does
not work because this is not authorized
2024-03-06 10:39:31 +01:00

254 lines
5.3 KiB
INI

# Tox configuration file
#
# For more information, see https://tox.readthedocs.org
#
# Run it with
# a) all targets
# $ tox
#
# b) with specific targets (build only documentation):
# $ tox -e doc
#
[tox]
minversion = 3.3.0
isolated_build = True
skip_missing_interpreters = True
skipsdist = True
envlist =
check,
unit_py3_12,
unit_py3_11,
unit_py3_10,
unit_py3_9,
packagedoc
[testenv]
description =
{unit_py3_9,unit_py3_10,unit_py3_11,unit_py3_12}: Unit Test run with basepython set to {basepython}
devel: Test KIWI
allowlist_externals =
bash
travis-sphinx
rstxml2docbook
cp
make
rm
mv
flake8
poetry
python
pytest
basepython =
unit_py3_12: python3.12
unit_py3_11: python3.11
unit_py3_10: python3.10
unit_py3_9: python3.9
release: python3.10
check: python3
devel: python3
packagedoc: python3
passenv =
*
usedevelop = True
deps =
-r.virtualenv.dev-requirements.txt
# Test run with basepython set to 3.9
[testenv:unit_py3_9]
setenv =
PYTHONPATH={toxinidir}/test
changedir=test/unit
commands =
{[testenv:mypy]commands}
{[testenv:unit]commands}
# Test run with basepython set to 3.10
[testenv:unit_py3_10]
setenv =
PYTHONPATH={toxinidir}/test
changedir=test/unit
commands =
{[testenv:mypy]commands}
{[testenv:unit]commands}
# Test run with basepython set to 3.11
[testenv:unit_py3_11]
setenv =
PYTHONPATH={toxinidir}/test
changedir=test/unit
commands =
{[testenv:mypy]commands}
{[testenv:unit]commands}
# Test run with basepython set to 3.12
[testenv:unit_py3_12]
setenv =
PYTHONPATH={toxinidir}/test
changedir=test/unit
commands =
{[testenv:mypy]commands}
{[testenv:unit]commands}
[testenv:mypy]
description = Static Type Checking Base
skip_install = True
usedevelop = True
setenv =
PYTHONUNBUFFERED=yes
WITH_COVERAGE=yes
passenv =
*
deps = {[testenv]deps}
changedir=test/unit
commands =
bash -c 'cd ../../ && mypy kiwi'
[testenv:unit]
description = Unit Test Base
skip_install = True
usedevelop = True
setenv =
PYTHONUNBUFFERED=yes
WITH_COVERAGE=yes
passenv =
*
deps = {[testenv]deps}
changedir=test/unit
commands =
bash -c 'cd ../../ && poetry install --all-extras'
bash -c 'cd ../../ && mypy kiwi'
pytest --doctest-modules --no-cov-on-fail --cov=kiwi \
--cov-report=term-missing --cov-fail-under=100 \
--cov-config .coveragerc {posargs}
[testenv:doc]
description = Documentation build suitable for local review
skip_install = True
usedevelop = True
deps = {[testenv]deps}
changedir=doc
commands =
{[testenv:doc.html]commands}
{[testenv:doc.man]commands}
[testenv:doc_man]
description = Documentation build run suitable for PyPi release
skip_install = True
usedevelop = True
deps = {[testenv]deps}
changedir=doc
commands =
{[testenv:doc.man]commands}
[testenv:packagedoc]
description = Documentation build run suitable for doc deployment in package(rpm)
skip_install = True
usedevelop = True
deps = {[testenv]deps}
changedir=doc
commands =
{[testenv:doc.man]commands}
[testenv:doc_gh_pages]
description = Documentation build suitable for doc deployment to github pages
skip_install = True
usedevelop = True
deps = {[testenv:doc]deps}
changedir=doc
commands =
{[testenv:doc.man]commands}
travis-sphinx --outdir build_gh_pages build --nowarn --source ./source
bash -c 'touch ./build_gh_pages/.nojekyll'
[testenv:doc_suse]
description = Documentation build suitable for SUSE documentation
skip_install = True
usedevelop = True
deps = {[testenv:doc]deps}
changedir=doc
commands =
{[testenv:doc.xml]commands}
rstxml2docbook -v --no-split -o build/xml/book.xml build/restxml/index.xml
bash -c 'mkdir -p build/images/src/png && cp -a source/.images/* build/images/src/png'
cp DC-kiwi build/
bash -c 'cd build && daps -d DC-kiwi html'
[testenv:doc.html]
description = Documentation build html result
skip_install = True
deps = {[testenv:doc]deps}
changedir=doc
commands =
make html
[testenv:doc.xml]
description = Documentation build xml result
skip_install = True
deps = {[testenv:doc]deps}
changedir=doc
commands =
make xml
rm -rf build/restxml
mv build/xml build/restxml
[testenv:doc.man]
description = Documentation build man pages
skip_install = True
deps = {[testenv:doc]deps}
changedir=doc
commands =
make man
[testenv:check]
description = Source code quality/integrity check
deps = {[testenv]deps}
skip_install = True
usedevelop = True
commands =
flake8 --statistics -j auto --count {toxinidir}/kiwi
flake8 --statistics -j auto --count {toxinidir}/test/unit
flake8 --statistics -j auto --count {toxinidir}/test/scripts
bash -c 'shellcheck -e SC1091,SC1090,SC2001,SC2174,SC1117,SC2048,SC2004 {toxinidir}/dracut/modules.d/*/*.sh -s bash'
bash -c 'shellcheck -e SC1091,SC1090,SC2001,SC2174,SC1117,SC2048,SC2004 {toxinidir}/kiwi/config/functions.sh -s bash'
# PyPi upload
[testenv:release]
deps = {[testenv]deps}
skip_install = True
usedevelop = True
commands =
poetry build --format=sdist
[testenv:scripts]
description = Integration tests of the builtin shell scripts
deps =
{[testenv]deps}
changedir=test/scripts
commands =
pytest -s -vv {posargs}
[testenv:devel]
passenv = *
allowlist_externals = *
commands = {posargs} []