【问题标题】:how to deploy Drupal with Jenkins only if the tests are successful仅当测试成功时如何使用 Jenkins 部署 Drupal
【发布时间】:2019-03-01 06:57:10
【问题描述】:

我对 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

最好的策略是什么?

【问题讨论】:

    标签: jenkins drupal-8 phpunit


    【解决方案1】:

    所以,您的订单似乎没问题 - 先拉动然后运行测试。 但是,您可以拥有 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

    【讨论】:

    • 我写了一个非常简单的测试,jenkins 运行良好(这意味着脚本是正确的,如果测试出错它会停止所有的执行)。此时问题似乎是从詹金斯的工作区我无法访问数据库并且找不到标签“登录”。出错的测试扩展了 BrowserTestBase
    猜你喜欢
    • 1970-01-01
    • 2018-04-11
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多