我对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
遵循的最佳策略是什么?
答案 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