【问题标题】:jenkins start django server after successful buildjenkins 构建成功后启动 django 服务器
【发布时间】:2014-07-18 18:57:58
【问题描述】:

我们使用jenkins 作为持续集成系统。我们有两台由jenkins 验证的 django 服务器。 jenkins 成功验证第一台服务器。第二台服务器依赖于第一台服务器。因此,我们希望在第一个服务器验证结束时启动第一个服务器本身。

我们使用 python、virtualenv 和 django 并定义Virtualenv Builder 如下:

pip install -r requirements.txt
rm -f .coverage
fab localhost test
coverage xml
nohup python manage.py runserver 9090 &

问题是由于 nohup,构建永远不会结束。

构建成功后如何启动服务器?

【问题讨论】:

    标签: django jenkins virtualenv


    【解决方案1】:

    我遇到了同样的问题。

    肯,

    我尝试使用fabric,但再次python manage.py runserver - 连续运行,所以下一个命令没有启动。

    就在几分钟前,我的同事向我展示了如何使用 nohup 和 Jenkins 的变量 BUILD_ID,从构建中获得成功并离开Django 服务器运行:

    BUILD_ID=dontKillMe nohup python manage.py runserver host_server &

    这适用于我们的 Django 项目测试。

    【讨论】:

      【解决方案2】:

      由于您使用 fabric 进行测试,我建议您定义另一个 fabric 任务,例如,deploy,假设构建成功。

      就像对 fab 的调用完成成功构建一样,您会到达 nohup 行,我希望 deploy 任务也会返回。

      您可能还想考虑将服务器设为服务(通过/etc/init.d 样式脚本,或upstart如果是 Ubuntu),并让 fabric 任务停止当前正在运行的任务,复制它需要的任何新文件(或类似进程),然后重新启动它。

      假设您上面有一个 bash 脚本或类似的脚本,您可能还想定义 set -e 以便在任何命令返回不成功代码的情况下,脚本将失败,进而导致构建失败。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-04
        • 2018-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多