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
254 lines
5.3 KiB
INI
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} []
|