在免费的Jenkins中为完整的长期运行的部署/“构建”链创建一个单个 Jenking作业管道作业是否有意义,因为可恢复的checkpoint
不是可用?
我正在查看Jenkins'开放/免费Pipeline Bundle的当前版本。
我会注意到,我认为你在免费获得的内容非常简单,看到大部分内容(工作流程 - 作业本身,stage-view,... )一年或两年后,它只是CloudBees商业企业捆绑的一部分。
在我看来,鉴于Jenkins Pipleine的stash
ing能力和多节点功能,它确实 - 并且确实如此广告 - 可以创建完整并在单个 Jenkins工作中完成构建/测试/捆绑/部署链。
这与允许您跨多个Jenkins Jobs分割“阶段”的"historical"(?) Build Pipeline Plugin形成对比。编排这些作业一直都是麻烦,更不用说在作业之间传递工件并控制它们在不同节点上运行的方式。
除了做从Old Build Pipeline Plugin获得的东西能够重启“阶段”(当它失败时) - 这是有效的,因为“阶段”只是一个Jenkins工作运行你可以重复(它也将运行所有下游的东西)。
我们项目的C ++ Builds具有数小时的编译持续时间,运行时间更长的自动化测试以及最终在几分钟内完成的打包和设置创建。
如果我执行“pipleine-build”,如果由于设置创建相关的问题导致最终的设置创建失败,我不想要重建项目并重新运行该单元试验。我想修复设置脚本并重做设置创建,这将(希望)成功完成此次运行。 ...或者,如果某些自动化测试失败,例如,怀疑构建环境原因,我想修复构建环境并从重新运行我的管道失败的测试向前,而不做多个小时重新编译。
New Jenkins Job Pipeline捆绑 的情况恰好可以从checkpoint
开始。除了:它是Enterprise Bundle的一部分,这意味着它不是免费的。 (我会注意到我将很好给了CloudBees,但是我不移动使用多节点 - 你喜欢并且也能够做到 - 只要你喜欢开放软件到受限制的许可软件,我必须跟踪节点数量,确保测试环境甚至可以设置许可证等。)
所以,鉴于对我而言,New Jenkins Job Pipeline 不能能够从失败的步骤中恢复,似乎我回到正方形无论如何,我必须将长期运行的东西分成多个工作岗位。
这引出了一个问题:Jenkins Job Pipleine是否真的是这项工作的最佳工具 - 如果我必须协调多个工作并且我想在创建方面简化和自动化这个,我也可以使用Job DSL Plugin从单一点维持所有这些工作 - 然后问题是“自由式”工作是否也不能完成这项工作。
另一方面,我可能会遗漏一些东西,还有另一个好的单一工作方法吗?
我会注意到,管道运行的Replay
选项看起来很有希望,如果有点粗糙......
答案 0 :(得分:0)
CloudBees最近决定开源检查点插件,您可以在评论中列出的linked issue on the Jenkins Jira中看到。
但我还没有看过这个插件的公开发布版本。