forked from infra/otc-metadata
151 lines
4.8 KiB
Django/Jinja
151 lines
4.8 KiB
Django/Jinja
[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]
|
|
allowlist_externals =
|
|
doc8
|
|
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
|
|
{%- for doc in docs %}
|
|
{[testenv:{{ doc.type }}]commands}
|
|
{[testenv:json-{{ doc.type }}]commands}
|
|
{%- endfor %}
|
|
|
|
{% if docs|length > 0 %}
|
|
[testenv:pdf-docs]
|
|
deps =
|
|
{[testenv:docs]deps}
|
|
{[testenv:bindeps]deps}
|
|
allowlist_externals =
|
|
rm
|
|
mkdir
|
|
wget
|
|
make
|
|
bash
|
|
cp
|
|
commands =
|
|
mkdir -p doc/build/pdf
|
|
mkdir -p doc/build/html
|
|
{[testenv:bindeps]commands}
|
|
mkdir -p {toxinidir}/_templates
|
|
wget -O {toxinidir}/_templates/longtable.tex.jinja https://gitea.eco.tsi-dev.otc-service.com/infra/docs-templates/raw/branch/main/templates/longtable.tex.jinja
|
|
wget -O {toxinidir}/_templates/tabular.tex.jinja https://gitea.eco.tsi-dev.otc-service.com/infra/docs-templates/raw/branch/main/templates/tabular.tex.jinja
|
|
wget -O {toxinidir}/_templates/tabulary.tex.jinja https://gitea.eco.tsi-dev.otc-service.com/infra/docs-templates/raw/branch/main/templates/tabulary.tex.jinja
|
|
{%- for doc in docs %}
|
|
{%- if doc.pdf_enabled %}
|
|
{[testenv:{{ doc.type }}-pdf-docs]commands}
|
|
{%- endif %}
|
|
{%- endfor %}
|
|
{% endif %}
|
|
|
|
{% for doc in docs -%}
|
|
{% set loc = doc.rst_location | replace('/source', '') %}
|
|
# HTML version
|
|
[testenv:{{ doc.type }}]
|
|
deps = {[testenv:docs]deps}
|
|
allowlist_externals =
|
|
cp
|
|
mkdir
|
|
commands =
|
|
sphinx-build -W --keep-going -b html {{ loc }}/source doc/build/html_temp/{{ doc.type }}
|
|
sphinx-minify --input-directory doc/build/html_temp/{{ doc.type }} --output-directory doc/build/html/{{ doc.type }}
|
|
{%- if doc.type == 'dev-guide' %}
|
|
mkdir -p dev_guide/build/html
|
|
cp -av doc/build/html/dev-guide dev_guide/build/html
|
|
{%- else %}
|
|
mkdir -p {{ doc.type }}/build/html
|
|
cp -av doc/build/html/{{ doc.type }} {{ doc.type }}/build/html
|
|
{%- endif %}
|
|
|
|
# Json version (for search)
|
|
[testenv:json-{{ doc.type }}]
|
|
deps = {[testenv:docs]deps}
|
|
allowlist_externals =
|
|
cp
|
|
mkdir
|
|
sh
|
|
commands =
|
|
sphinx-build -W --keep-going -b json {{ loc }}/source doc/build/json/{{ doc.type }}
|
|
# 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"
|
|
{%- if doc.type == 'dev-guide' %}
|
|
mkdir -p dev_guide/build/json
|
|
cp -av doc/build/json/dev-guide dev_guide/build/json
|
|
{%- else %}
|
|
mkdir -p {{ doc.type }}/build/json
|
|
cp -av doc/build/json/{{ doc.type }} {{ doc.type }}/build/json
|
|
{%- endif %}
|
|
|
|
# PDF version
|
|
[testenv:{{ doc.type }}-pdf-docs]
|
|
deps = {[testenv:docs]deps}
|
|
allowlist_externals =
|
|
rm
|
|
mkdir
|
|
make
|
|
bash
|
|
cp
|
|
commands =
|
|
rm -rf {{ loc }}/build/pdf
|
|
cp -r {toxinidir}/_templates {{ loc }}/source/_templates/
|
|
sphinx-build -W --keep-going -b latex {{ loc }}/source {{ loc }}/build/pdf/
|
|
bash -c "for f in {{ loc }}/build/pdf/*.gif; do convert $f[0] $\{f/%gif/png\}; done || true"
|
|
bash -c "for f in {{ loc }}/build/pdf/*.tex; do sed -iorig 's/\.gif//g' $f; done"
|
|
make -C {{ loc }}/build/pdf LATEXMKOPTS="-interaction=nonstopmode"
|
|
mkdir -p doc/build/pdf
|
|
cp {{ loc }}/build/pdf/{{ service_type }}-{{ doc.type }}.pdf doc/build/pdf/
|
|
cp {{ loc }}/build/pdf/{{ service_type }}-{{ doc.type }}.pdf doc/build/html/
|
|
{% endfor %}
|
|
|
|
[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 |