vds*_*dsf 10 continuous-integration hudson build jenkins jenkins-plugins
我正试图在Jenkins中并行运行以下工作流程.例如,A和B同时运行.A一完成同时运行A2和A3等等......
这似乎是一个非常常见的用例,但我尝试过的大多数插件都不支持超过1级深度,下面的A分支就是这种情况.加入插件在这里似乎没有帮助.
我读到了有关使用Promotion插件的内容,但是我对有关指纹/工件的归档以使其工作有点神秘感.
关于如何使这个简单的构建管道工作的任何线索?

正如jgritty指出的,您可以使用Build flow plugin。为了获得您想要的并行执行类型,您可以运行与以下构建流程脚本等效的内容:
buildTrigger = build("Trigger")
parallel(
{
buildA = build("A")
buildA1 = build("A1")
parallel(
{
buildA2 = build("A2")
},
{
buildA3 = build("A3")
},
)
},
{
buildB = build("B")
buildB1 = build("B1")
},
)
buildResults = build("GatherResult")
Run Code Online (Sandbox Code Playgroud)
在这个脚本中,第一个parallel块负责 A 和 B 分支。一旦进入分支,每个构建都是连续的,直到您添加更多parallel块。
有一个非常有效的解决方案:Multi-Job 插件。它完全符合您的要求。使用MultiJob 插件,您可以将您的工作拆分为连续运行的阶段。在每个阶段,作业并行运行。
为简单起见,我将假设 A 和 B 是您希望并行运行的“编译作业”。进一步假设可能有 A-Test(及其子项)和 B-Test,它们也是不同的工作。
您可以按如下方式创建多作业:New Item -> Multijob Project
在项目中创建两个阶段(添加构建步骤“MultiJob Phase”)。第一个是 COMPILE,您将添加 Phase Job 的“A”和“B”。
您可以更改 COMPILE 阶段作业的选项,以便如果任一阶段失败,则整个阶段中止(默认),或允许作业继续。
接下来,您为 TEST添加另一个 MultiJob Phase Build步骤,并向其添加“A-Test”和“B-Test”。请记住,A、B、A-Test 和 B-Test 都是独立的作业,如果需要,也可以单独运行。
就是这样。当作业运行时,它将包含指向子作业的链接,因此您可以看到子作业发生了什么。