有4个职位:
Build1
Build2
Test1
Test2
Build1 和 Build2 可以同时启动
只有在 Build1 和 Build2 完成时才应启动 Test1 。
只有在 Tes1 完成时才应启动 Tes2
此外,我希望能够分别开始所有这些工作
有没有办法根据这些规则设置工作?
答案 0 :(得分:4)
创建新作业时,通常可以指定必须构建哪个上游项目才能开始此作业。
此选项位于构建触发器 - >在创建/修改作业时构建其他项目后构建。
答案 1 :(得分:2)
我认为你有几种选择。我的假设是,我们正在谈论长时间运行的工作,否则我只是将它们串在一起作为一个怪物工作(在一个工作中的几个构建步骤)并创建单独的工作来单独运行它们。
如上所述,对于长期工作,请查看join plugin。作为一般的FYI,有一个页面解释了为什么要将测试作业与构建作业分开。请参阅here。
答案 2 :(得分:1)
“Promoted Builds Plugin”可以是一个很好的解决方案:您可以配置主作业“Build”,除了启动2个下游构建“Build1,Build2”(在构建后的操作中)之外什么都不做。 然后,您必须添加一个促销流程“当下面的下游项目成功构建时”选择“Build1,Build2”,并使用相关的下游构建操作“Test1”。 如果“Build1”和“Build2”构建成功(状态为STABLE),则“Build”将被提升,“Test1”将被排队。 最后,您将Test2作为Test1的构建后操作触发。
但是你必须要知道,很多“Build”实例都被排队,你不能依赖lastSuccessful构建永久链接(当“Test1”调用时,下一个“Build1”或“Build2”可能已经构建了第一个“Build”将弹出队列),你将不得不设计一种方法来跟踪你正在测试的构建版本。
参数化触发器插件可以帮助解决这个问题:例如,您可以将上游构建的id作为参数传递。
答案 3 :(得分:0)
我正在运行Hudson版本1.346。
您可以在“构建触发器”下查看“构建其他项目后构建”。
它说“可以指定多个项目,如'abc,def'”
所以你应该能够在Test1的配置中为该字段添加'Build1,Build2'。
答案 4 :(得分:0)
你可以保留你的Test1& Test2作为单独的作业,而不是构建的一部分。
当Build1和Build2完成时,Test1可以作为下游构建启动。 Test2可以是Test1的下游作业。