Как развернуть Drupal с Jenkins, только если тесты пройдены успешно
У меня есть некоторые сомнения относительно правильной конфигурации Jenkins для обеспечения непрерывной интеграции проекта Drupal, но я прихожу к некоторым противоречиям. Позвольте мне объяснить: развертывание, в конце концов, заключается в выполнении:
cd / path / to / web / root
pull from git
drush config:import
drush cache:rebuild
Тесты запускаются командой
../vendor/bin/phpunit --verbose --log-junit ../tests_output/phpunit.xml -c ../phpunit.xml
Противоречие в том, что я не понимаю, когда нужно запускать тесты. До проверки не имеет смысла, потому что последние изменения отсутствуют, после проверки, если какой-либо тест пойдет не так, я смогу восстановить ситуацию до проверки (но я не уверен, что это безопасное действие).
Я пытаюсь запустить тесты непосредственно в рабочей области jenkins, и для этого я также создал отдельную базу данных, но в данный момент получаю ошибку:
Drupal\Tests\field_example\Functional\TextWidgetTest::testSingleValueField
Behat\Mink\Exception\ElementNotFoundException: Button with id|name|label|value "Log in" not found
Какой может быть лучшая стратегия для подражания?
1 ответ
Итак, ваш заказ выглядит нормально - сначала потяните, а затем запустите тесты. Тем не менее, вы можете иметь 2 рабочих места Jenkins. Сначала запускай свои задачи. 2-й выполняется ТОЛЬКО если ваша первая работа завершается без сбоев. Есть способы получить статус выхода из скриптов - см. Следующие плагины / заметки об этом.
Как пометить сборки Jenkins как SUCCESS только на определенных значениях выхода из ошибки (кроме 0)?
Как пометить нестабильную сборку в Jenkins при запуске сценариев оболочки