Запуск Sphinx через tox

У меня есть конфигурация tox, которая позволяет мне выполнять некоторые проверки документации. Это более или менее из официальная документация по tox.

[tox]
envlist = py36, flake8, docs

[testenv:docs]
basepython=python3.6
changedir=docs  # ← causes sphinx-apidoc to misbehave.
deps=-r{toxinidir}/requirements/requirements.txt
commands=
    sphinx-apidoc --force --separate --private --module-first -o docs site '*/*test*' '*/*migration*'
    pytest --maxfail=1 --tb=line -v --junitxml=junit_{envname}.xml check_sphinx.py

Однако первую команду (sphinx-apidoc …) необходимо запустить в корне проекта, иначе шаблоны исключения не будут работать. И это несмотря на то, что я пробовал много возможных вариантов. Вторую команду необходимо запустить в каталоге docs.

Как сделать так, чтобы обе команды выполнялись в разных каталогах?


person Sardathrion - against SE abuse    schedule 10.11.2017    source источник


Ответы (1)


Укажите commands на сценарий оболочки, например.

#!/bin/bash

set -eux

sphinx-apidoc --force --separate --private --module-first -o docs site '*/*test*' '*/*migration*'
cd docs
pytest --maxfail=1 --tb=line -v --junitxml=junit_{envname}.xml check_sphinx.py
person Alex Hall    schedule 10.11.2017