仅在测试成功的情况下,如何与Jenkins一起部署Drupal

时间:2018-09-25 15:27:24

标签: jenkins drupal-8 phpunit-testing

我对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 个答案:

答案 0 :(得分:0)

因此,您的订单似乎还可以-先拉然后运行测试。 但是,您可以有2个Jenkins工作。首先运行,您的任务。仅当您的第一项工作顺利完成时,第二项才会运行。 有多种方法可以从脚本中获取退出状态-有关此问题,请参见以下插件/说明。

How to mark Jenkins builds as SUCCESS only on specific error exit values (other than 0)?

How to mark a build unstable in Jenkins when running shell scripts