【发布时间】:2014-06-11 10:44:45
【问题描述】:
在 jenkins 中是否有任何方法,一旦我们检测到失败的构建,作业将 perforce 代码恢复到最后成功的构建更改列表并再次触发构建。
流动 - 1. 所以一旦我们构建失败 - 通知将发送给开发团队,可能会导致构建失败
将最近的代码恢复为上一个工作代码并提交
启动构建。
【问题讨论】:
在 jenkins 中是否有任何方法,一旦我们检测到失败的构建,作业将 perforce 代码恢复到最后成功的构建更改列表并再次触发构建。
流动 - 1. 所以一旦我们构建失败 - 通知将发送给开发团队,可能会导致构建失败
将最近的代码恢复为上一个工作代码并提交
启动构建。
【问题讨论】:
这是可能的,但我看不出有任何理由或用例这样做,因为它不是正确的工作流程并且可能会造成混淆。 但是,如果您决定这样做,则需要执行以下步骤: 示例如何使用 Perforce 源代码控制来做到这一点。 作业设置中的步骤:
【讨论】:
Jenkins 不是生产服务器。它运行任务并且没有我知道的用于此目的的选项。
你的源代码是什么?网络应用程序?其他的 ? 您正在执行哪些步骤? 你在执行一些自动测试吗?
我的假设是您进行了一些可能使构建无效的测试。
应该运行这些测试: * 在模拟服务器上以防止在您的服务器上部署 * 或其他地方
这样,如果构建失败,则不会部署任何内容。
如果构建成功,您可以正常部署您的项目。
如果这没有回复您的答案,请提供所需的信息,以了解更多您的工作流程。
【讨论】:
如果您使用 Nexus 或 Artifactory 等工件存储库来管理项目工件,那么当检测到故障时,您始终可以重新部署应用程序的先前工作版本。
您没有取消任何可能破坏构建的签入代码,但您正在保留您的测试环境。您可以配置 Jenkins 以通知签入最新错误更改集的用户,他们可以解决问题。
Jenkins 还提供了丰富的 API,允许您删除作业、启动作业、获取有关以前运行的作业的信息。您可以利用其中一些服务以及您的工件存储库来实现您描述的体验。
【讨论】: