如何使用 Bamboo 开始 Play 而无需永远继续部署?

Posted

技术标签:

【中文标题】如何使用 Bamboo 开始 Play 而无需永远继续部署?【英文标题】:How to start Play using Bamboo without having the deployment continue forever? 【发布时间】:2014-07-09 04:29:58 【问题描述】:

我们已经用 Java 创建了一个 Play 应用程序,并正在使用 Atlassian Bamboo's SSH 任务:cd path/to/application/directory && start "" play run 将其部署到开发环境虚拟机。这会转到正确的位置,启动一个新的控制台,然后开始播放:服务器已成功启动,我们可以毫无问题地访问该站点。

问题在于 Bamboo 中的部署任务永远不会停止,因为它仍在监视调用 play run 的控制台——在 Bamboo 状态下,我们看到类似 Deploying for 7,565 minutes 的内容。我们认为添加 start "" 可以解决这个问题,但在 Bamboo 中它与添加 play run 相同。另外,当我们需要重新部署时,我们必须先停止正在进行的部署,然后手动重新启动它。

两个问题:

    我们如何从 Bamboo 启动服务器以完成部署计划? 我们如何在下一次部署开始时从 Bamboo 停止/杀死以前的服务器?

【问题讨论】:

【参考方案1】:

Bamboo 不适合后台任务。有一个类似的问题,最终,我们编写了一个在后台运行的 bash 脚本。

start.sh &1> /dev/null &2 > /dev/null &

【讨论】:

你有 Windows 的等效 .bat 文件吗? 你在windows上部署? 是的,我们的客户有一个 WAMP 堆栈,我们正在我们的开发/测试环境中模仿它。 您正在为 Play 应用程序模仿 php 堆栈?大富?但是,不知道如何在 Windows 环境中执行此操作。我假设它会像在 Linux 上一样创建一个 PID 文件。你可以从那里开始。【参考方案2】:

完全不熟悉 WAMP 堆栈或 play cli,但尝试将其作为 powershell 命令运行,该命令应立即运行并退出

powershell -command "& <your command here>"

或失败

powershell -command "& start-job  <your command here> "

【讨论】:

【参考方案3】:

对于 Windows,您可以使用 Groovy 脚本运行后台任务。 Groovy 可以将外部程序作为进程执行:

"/bin/application.exe".execute()

然后您可以检查应用程序是否正在运行:

println "tasklist /fi \"imagename eq application.exe\"".execute().text

【讨论】:

以上是关于如何使用 Bamboo 开始 Play 而无需永远继续部署?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Bamboo任务中启用自定义bitbucket jspm注册表项?

在 Bamboo 中构建 repo 时动态选择分支

Bamboo build-dir过多的空间可以用cron工作清理吗?

从 Bamboo 构建开始 Bamboo 部署

Atlassian Bamboo如何识别python pytest报告[关闭]

如何从 Bamboo 代理脚本成功运行 iOS 模拟器