如何防止旧版本进入并发阶段1

时间:2016-05-18 09:21:59

标签: jenkins jenkins-workflow jenkins-pipeline

我们已经设置了一个Jenkins构建管道,该管道使用Maven构建一个大型项目,包括更新,编译,单元测试和部署(到Nexus)的阶段。 "部署到Nexus" stage具有并发性1,以确保在任何时间点不超过一个构建。但是,此设置不会阻止较旧的构建在稍后的构建完成后进入该阶段。

例如,如果构建#2在构建#1之后是startet并且命中一个快节点,那么它可能超过构建#1并进入"部署到Nexus"第一阶段。 Build#1不能同时进入这个阶段,所以等到build#2完成;但是构建#1进入这个阶段,从而覆盖了后来构建部署的Maven工件,这不是你想要的。

必须有一种方法可以避免这种情况,即防止旧版本进入以后版本已成功执行的阶段。我只是找不到解决这个问题的方法......有什么想法吗?

2 个答案:

答案 0 :(得分:1)

upcoming milestone步骤可以解决此问题。

答案 1 :(得分:0)

发送作业的当前内部版本号并添加一个简单的条件,使用以下Jenkins URL使用作业的最新成功内部版本号对其进行测试:

http://JenkinsMaster:Port/job/MyJob/lastSuccessfulBuild/buildNumber

如果当前内部版本号小于上一个成功版本号,则跳过上载。

祝你好运!