我们已经设置了一个Jenkins构建管道,该管道使用Maven构建一个大型项目,包括更新,编译,单元测试和部署(到Nexus)的阶段。 "部署到Nexus" stage具有并发性1,以确保在任何时间点不超过一个构建。但是,此设置不会阻止较旧的构建在稍后的构建完成后进入该阶段。
例如,如果构建#2在构建#1之后是startet并且命中一个快节点,那么它可能超过构建#1并进入"部署到Nexus"第一阶段。 Build#1不能同时进入这个阶段,所以等到build#2完成;但是构建#1进入这个阶段,从而覆盖了后来构建部署的Maven工件,这不是你想要的。
必须有一种方法可以避免这种情况,即防止旧版本进入以后版本已成功执行的阶段。我只是找不到解决这个问题的方法......有什么想法吗?
答案 0 :(得分:1)
upcoming milestone
步骤可以解决此问题。
答案 1 :(得分:0)
发送作业的当前内部版本号并添加一个简单的条件,使用以下Jenkins URL使用作业的最新成功内部版本号对其进行测试:
http://JenkinsMaster:Port/job/MyJob/lastSuccessfulBuild/buildNumber
如果当前内部版本号小于上一个成功版本号,则跳过上载。
祝你好运!