From a51444d87185951ae7bdefb148f7850ce2e36fb4 Mon Sep 17 00:00:00 2001 From: "Hasko, Vladimir" Date: Tue, 21 Feb 2023 10:36:29 +0000 Subject: [PATCH] adding tox.ini Reviewed-by: gtema Co-authored-by: Hasko, Vladimir Co-committed-by: Hasko, Vladimir --- tox.ini | 175 +++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 110 insertions(+), 65 deletions(-) diff --git a/tox.ini b/tox.ini index 5a5506d..130e82a 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] minversion = 3.1 -envlist = py310,pep8 +envlist = py39,pep8 skipsdist = True ignore_basepython_conflict = True @@ -8,88 +8,133 @@ ignore_basepython_conflict = True usedevelop = True install_command = pip install {opts} {packages} deps = - -r{toxinidir}/requirements.txt + -r{toxinidir}/requirements.txt commands = stestr run {posargs} - stestr slowest + stestr slowest [testenv:pep8] commands = - doc8 doc/source README.rst + doc8 doc/source README.rst [testenv:venv] deps = - -r{toxinidir}/requirements.txt + -r{toxinidir}/requirements.txt commands = {posargs} +# This env is invoked in the periodic pipeline and is therefore responsible to +# build all relevant docs at once. [testenv:docs] -deps = - -r{toxinidir}/doc/requirements.txt +deps = -r{toxinidir}/doc/requirements.txt +allowlist_externals = + mkdir + cp + sh commands = - sphinx-build -W --keep-going -b html doc/source/ doc/build/html + {[testenv:api-ref]commands} + {[testenv:json-api-ref]commands} + {[testenv:umn]commands} + {[testenv:json-umn]commands} -[testenv:api-ref] -# This environment is called from CI scripts to test and publish -# the API Ref to docs.otc-service.com -deps = - -r{toxinidir}/requirements.txt -whitelist_externals = rm -commands = - rm -rf api-ref/build - sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html - -[testenv:api-ref-pdf-docs] -deps = {[testenv:api-ref]deps} -envdir = {toxworkdir}/api-ref -whitelist_externals = - rm - make -commands = - rm -rf api-ref/build/pdf - sphinx-build -a -E -W -b latex api-ref/source api-ref/build/pdf - make -C api-ref/build/pdf - -[testenv:umn] -# This environment is called from CI scripts to test and publish -# the UMN to docs.otc-service.com -deps = - -r{toxinidir}/requirements.txt -whitelist_externals = rm -commands = - rm -rf umn/build - sphinx-build -W -b html -d umn/build/doctrees umn/source umn/build/html - -[testenv:umn-pdf-docs] -deps = {[testenv:umn]deps} -envdir = {toxworkdir}/umn -whitelist_externals = +[testenv:docs-pdf] +deps = -r{toxinidir}/doc/requirements.txt +allowlist_externals = rm + mkdir make bash + cp +commands = + mkdir -p doc/build/pdf + {[testenv:api-ref-pdf-docs]commands} + {[testenv:umn-pdf-docs]commands} + + +# HTML version +[testenv:api-ref] +deps = -r{toxinidir}/doc/requirements.txt +allowlist_externals = + cp + mkdir +commands = + sphinx-build -W --keep-going -b html api-ref/source doc/build/html/api-ref + mkdir -p api-ref/build/html + cp -av doc/build/html/api-ref api-ref/build/html + +# Json version (for search) +[testenv:json-api-ref] +deps = -r{toxinidir}/doc/requirements.txt +allowlist_externals = + cp + mkdir + sh +commands = + sphinx-build -W --keep-going -b json api-ref/source doc/build/json/api-ref + # Drop data useless for the search - wrap it also with sh/xargs due to bugs + # in tox + sh -c "find doc/build/json -type d -and '(' -name '_images' -or -name '_static' -or -name '_sources' ')' -print0 | xargs -0 rm -rf" + mkdir -p api-ref/build/json + cp -av doc/build/json/api-ref api-ref/build/json + +# PDF version +[testenv:api-ref-pdf-docs] +deps = -r{toxinidir}/doc/requirements.txt +allowlist_externals = + rm + mkdir + make + bash + cp +commands = + rm -rf api-ref/build/pdf + sphinx-build -W --keep-going -b latex api-ref/source api-ref/build/pdf/ + bash -c "for f in api-ref/build/pdf/*.gif; do convert $f $\{f/%gif/png\}; done || true" + bash -c "for f in api-ref/build/pdf/*.tex; do sed -iorig 's/\.gif//g' $f; done" + make -C api-ref/build/pdf + mkdir -p doc/build/pdf + cp api-ref/build/pdf/ddm-api-ref.pdf doc/build/pdf/ + + +# HTML version +[testenv:umn] +deps = -r{toxinidir}/doc/requirements.txt +allowlist_externals = + cp + mkdir +commands = + sphinx-build -W --keep-going -b html umn/source doc/build/html/umn + mkdir -p umn/build/html + cp -av doc/build/html/umn umn/build/html + +# Json version (for search) +[testenv:json-umn] +deps = -r{toxinidir}/doc/requirements.txt +allowlist_externals = + cp + mkdir + sh +commands = + sphinx-build -W --keep-going -b json umn/source doc/build/json/umn + # Drop data useless for the search - wrap it also with sh/xargs due to bugs + # in tox + sh -c "find doc/build/json -type d -and '(' -name '_images' -or -name '_static' -or -name '_sources' ')' -print0 | xargs -0 rm -rf" + mkdir -p umn/build/json + cp -av doc/build/json/umn umn/build/json + +# PDF version +[testenv:umn-pdf-docs] +deps = -r{toxinidir}/doc/requirements.txt +allowlist_externals = + rm + mkdir + make + bash + cp commands = rm -rf umn/build/pdf - sphinx-build -a -E -W -b latex umn/source umn/build/pdf + sphinx-build -W --keep-going -b latex umn/source umn/build/pdf/ bash -c "for f in umn/build/pdf/*.gif; do convert $f $\{f/%gif/png\}; done || true" bash -c "for f in umn/build/pdf/*.tex; do sed -iorig 's/\.gif//g' $f; done" make -C umn/build/pdf + mkdir -p doc/build/pdf + cp umn/build/pdf/ddm-umn.pdf doc/build/pdf/ -[testenv:dev-guide] -# This environment is called from CI scripts to test and publish -# the Developer Guide to docs.otc-service.com -deps = - -r{toxinidir}/requirements.txt -whitelist_externals = rm -commands = - rm -rf dev_guide/build - sphinx-build -W -b html -d dev_guide/build/doctrees dev_guide/source dev_guide/build/html - -[testenv:dev-guide-pdf-docs] -deps = {[testenv:dev-guide]deps} -envdir = {toxworkdir}/dev_guide -whitelist_externals = - rm - make - sh -commands = - rm -rf dev_guide/build/pdf - sphinx-build -a -E -W -b latex dev_guide/source dev_guide/build/pdf - make -C dev_guide/build/pdf