Запуск команды в фоновом режиме с использованием токса - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь реализовать дополнительную процедуру CI для существующего продукта с открытым исходным кодом, и я застрял в проблеме, я не знаю, как ее решить.

Идея, лежащая в основе этой процедуры, следующая.

  • Документация, сгенерированная с помощью отчетов mkdocs и mkdocs (и с ошибками) при появлении каких-либо предупреждений.
  • mkdocs выполняется с подкомандой serve в фоновом режиме (аналогично запуску обратно с & в конце) - это создание веб-сервера на http://127.0.0.1:8080 с документацией.
  • мой тест / инструмент, проверяющий работающий сервер и обслуживающую документацию.

Вопрос

Как я могу поддерживать работу mkdocs в фоновом режиме, используя tox? Мне нужно, чтобы он работал, пока мой инструмент выполняет собственные тесты.

Я уже пытался сделать следующее:

  • , чтобы использовать bash и выполнить команду как
bash -c 'mkdocs serve --theme readthedocs'

это не сбой, веб-сайт недоступен.

  • следующая команда не может быть запущена с
mkdocs serve --theme readthedocs 2>&1 > /dev/null &

PS:

  • https://www.mkdocs.org/ - генератор документации.
  • Мой инструмент - простая программа проверки контента.

1 Ответ

0 голосов
/ 10 ноября 2019

Я не заметил проблемы с mkdocs (, что серверу нужно некоторое время для запуска ). Рабочие примеры для этого сценария следующие:

[testenv:docs]
basepython = python3
ignore_errors = True
whitelist_externals = sh
commands =
    ; -s abort the build on any warnings
    mkdocs build -s --clean --site-dir build/docs/html --theme readthedocs
    ; running mkdocs to serve documentation on 127.0.0.1:3001
    sh -c 'mkdocs serve --dev-addr 0.0.0.0:3001 --theme readthedocs 2>&1 > /dev/null &'
    ; checking liveness
    deadlinks http://127.0.0.1:3001/ -n10 -r3 --no-progress --fiff

deps =
     -r{toxinidir}/requirements_dev.txt
...