哈德森管道

时间:2010-05-18 17:07:42

标签: hudson

任何人都可以帮忙解决这个问题吗?

我有一份测试工作,一份下游工作和一份加入工作。 我只希望在下游作业成功时运行连接作业。

如果测试作业失败并且下游作业成功,我仍然希望运行连接作业。

任何人都知道一个可以帮助的插件吗?

加入插件不够好,因为我可以将其配置为在测试AND下游成功时运行连接作业,或者无论作业成功/失败,都运行连接。但是,如果下游成功,则不运行联接作业。

为什么我要这样做呢?我想把工作一起管道,但只有在共同的“下游”工作成功的情况下。如果失败,那么我希望管道“破裂”。

在原始问题中添加更多信息: 所以我有一组测试(Test.1,Test.2,Test.3)。我可以从Hudson单独运行它们,它们运行,产生结果并完成。我还希望能够将它们作为管道的一部分运行。 Test.1运行,完成然后运行Test.2。等我有两种不同的方式可以运行Test.1。个人或作为管道的一部分。为了帮助我,我已经使Test.1,Test.2等参数化(真/假)。默认情况下,param为false。因此,当我默认运行Test.1(false)时,测试运行并完成。当我使用param运行Test.1时,我希望它运行Test.2。这第二点我似乎无法做到

非常感谢 约翰

2 个答案:

答案 0 :(得分:1)

与Gareth_bowles类似,我只链接所有作业(无连接)并使用Hudson Parameterized Trigger plugin启动相关作业,即使当前作业失败也是如此。唯一的缺点是,您没有并行运行的作业。

再想一想,无论测试作业是否成功,您都可以使用Hudson Parameterized Trigger plugin在测试作业后运行临时作业。临时作业将始终成功(因为它实际上只是触发连接作业。这样,您的测试作业(从连接作业的视图)将始终成功,只有下游作业确定连接作业是否运行。 / p>

修改

在了解了你真正想做的事情之后,即独立运行Test.N或作为链条的一部分,我会按照我的第一个建议去做。这意味着无论Test.N是成功还是失败,Test.N始终触发Downstream.N作业。您需要Hudson Parameterized Trigger plugin并配置两个触发器。第一个触发器在测试作业成功或不稳定时触发依赖作业,第二个触发器也触发依赖作业但仅在测试作业失败时触发。不要忘记传递你的参数,你就完成了。不是很复杂。

答案 1 :(得分:0)

您是否可以跳过连接插件并使连接作业完全依赖于下游作业?这将满足您的要求,即只有在下游作业成功时才使连接作业运行,只要您确保在下游构建中的依赖关系定义中取消选中“即使构建不稳定时触发”框。