Jenkins管道调用其他管道阶段

时间:2018-02-02 00:34:13

标签: jenkins jenkins-plugins jenkins-pipeline

我正在使用Jenkins Pipeline并且有一个预期的场景:

在管道作业'测试A' - 阶段'Checkout_A'中它调用其他管道作业'测试B' - 阶段'Checkout_B',在测试B中的那个阶段完成后,控制器应该重新返回管道作业'测试A '并执行Stage('Build_A')再次调用管道作业'Test B' - Stage('Build_B')然后控制器应该重新返回管道作业'Test A'并执行Stage('Transfer_A')。

1)下面是我正在使用的语法,但它的工作方式不符合上述要求,请参考您对如何实现此方法的意见。

2)我想使用这种方法主要是为了显示管道上游作业本身的不同阶段而不是下游作业。是否有任何方法或插件可用于显示下游作业的阶段以及上游作业流程。

Test A
_______

Stage ('Checkout_A')
build job: 'Test B, stage: 'Checkout_B'', 
		  parameters: [string(name: 'GIT_URL', value: String.valueOf(ssh://git@xxx/aaa.git )),
		  string(name: 'CREDENTIALS', value: String.valueOf('xxxx123')
		   ] 
		  
Stage ('Build_A')
build job: 'Test B, stage: 'Build_B', 
		  parameters: [string(name: 'GIT_URL', value: String.valueOf(ssh://git@xxx/aaa.git )),
		  string(name: 'CREDENTIALS', value: String.valueOf('xxxx123')
		   ]

Stage ('Transfer_A')
build job: 'Test B', Stage: 'Transfer_B'

Test B
________

 stage 'Checkout_B'
          git (url: '${GIT_URL}',
          credentialsId: '${CREDENTIALS}')
		  build job: 'Test A, stage: Build_A'
		  
Stage ('Build_B')
        bat 'call "E:\\MSBuild\\12.0\\Bin\\MSBuild.exe" Sample.sln '
		  build job: 'Test A, stage: Transfer_A'
		  
Stage ('Transfer_B')
       Xcopy(Source, destination)

1 个答案:

答案 0 :(得分:0)

如您所见,build步骤没有名为stage的参数。你根本无法在其他工作中运行任意阶段 - 你只能触发完整的工作,从头到尾。如果你真的想把它分开(为了可重用性?),那么让舞台的内容成为额外的工作。

关于调用工作中的内联可视化:不,我不希望很快就能实现这一点。查看roadmap,您只会看到实际获得转到被叫作业的链接的项目。