[tox] minversion = 3.1 envlist = py39,pep8 skipsdist = True ignore_basepython_conflict = True [testenv] usedevelop = True install_command = pip install {opts} {packages} deps = -r{toxinidir}/requirements.txt commands = stestr run {posargs} stestr slowest [testenv:pep8] commands = doc8 doc/source README.rst [testenv:venv] deps = -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 -c https://raw.githubusercontent.com/opentelekomcloud-docs/docs-constraints/main/constraints.txt allowlist_externals = mkdir cp sh rm sphinx-build commands = rm -rf doc/build/html doc/build/html_temp doc/build/doctrees sphinx-build -a -E -W -d doc/build/doctrees -b html doc/source doc/build/html_temp sphinx-minify --input-directory doc/build/html_temp/ --output-directory doc/build/html {[testenv:caf]commands} {[testenv:json-caf]commands} {[testenv:blueprints]commands} {[testenv:json-blueprints]commands} [testenv:docs-pdf] deps = {[testenv:docs]deps} {[testenv:bindeps]deps} allowlist_externals = rm mkdir wget make bash cp commands = mkdir -p doc/build/pdf {[testenv:bindeps]commands} {[testenv:caf-pdf-docs]commands} {[testenv:blueprints-pdf-docs]commands} # HTML version [testenv:caf] deps = {[testenv:docs]deps} allowlist_externals = cp mkdir commands = sphinx-build -W --keep-going -b html caf/source doc/build/html_temp/caf sphinx-minify --input-directory doc/build/html_temp/caf --output-directory doc/build/html/caf mkdir -p caf/build/html cp -av doc/build/html/caf caf/build/html # Json version (for search) [testenv:json-caf] deps = {[testenv:docs]deps} allowlist_externals = cp mkdir sh commands = sphinx-build -W --keep-going -b json caf/source doc/build/json/caf # 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 caf/build/json cp -av doc/build/json/caf caf/build/json # PDF version [testenv:caf-pdf-docs] deps = {[testenv:docs]deps} allowlist_externals = rm mkdir make bash cp commands = rm -rf caf/build/pdf sphinx-build -W --keep-going -b latex caf/source caf/build/pdf/ bash -c "for f in caf/build/pdf/*.gif; do convert $f $\{f/%gif/png\}; done || true" bash -c "for f in caf/build/pdf/*.tex; do sed -iorig 's/\.gif//g' $f; done" make -C caf/build/pdf mkdir -p doc/build/pdf cp caf/build/pdf/architecture-center-cloud-adoption-framework.pdf doc/build/pdf/ # HTML version [testenv:blueprints] deps = {[testenv:docs]deps} allowlist_externals = cp mkdir commands = sphinx-build -W --keep-going -b html blueprints/source doc/build/html_temp/blueprints sphinx-minify --input-directory doc/build/html_temp/blueprints --output-directory doc/build/html/blueprints mkdir -p blueprints/build/html cp -av doc/build/html/blueprints blueprints/build/html # Json version (for search) [testenv:json-blueprints] deps = {[testenv:docs]deps} allowlist_externals = cp mkdir sh commands = sphinx-build -W --keep-going -b json blueprints/source doc/build/json/blueprints # 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 blueprints/build/json cp -av doc/build/json/blueprints blueprints/build/json # PDF version [testenv:blueprints-pdf-docs] deps = {[testenv:docs]deps} allowlist_externals = rm mkdir make bash cp commands = rm -rf blueprints/build/pdf sphinx-build -W --keep-going -b latex blueprints/source blueprints/build/pdf/ bash -c "for f in blueprints/build/pdf/*.gif; do convert $f $\{f/%gif/png\}; done || true" bash -c "for f in blueprints/build/pdf/*.tex; do sed -iorig 's/\.gif//g' $f; done" make -C blueprints/build/pdf mkdir -p doc/build/pdf cp blueprints/build/pdf/architecture-center-blueprints.pdf doc/build/pdf/ [testenv:bindeps] deps = bindep allowlist_externals = wget rm bash commands = rm -rf {toxinidir}/bindep.txt rm -rf {toxinidir}/packages.txt wget -O {toxinidir}/bindep.txt https://raw.githubusercontent.com/opentelekomcloud/otcdocstheme/main/bindep.txt bash -c "bindep test -b -f {toxinidir}/bindep.txt > {toxinidir}/packages.txt || true" bash -c 'if [ -s {toxinidir}/packages.txt ]; then if command -v apt &>/dev/null; then apt update && xargs apt install --no-install-recommends -y < {toxinidir}/packages.txt; fi; fi' bash -c 'if [ -s {toxinidir}/packages.txt ]; then if command -v dnf &>/dev/null; then dnf install -y $(cat {toxinidir}/packages.txt); fi; fi' [doc8] ignore = D001 extensions = .rst, .yaml