我在詹金斯有两个工作,这两个工作都需要相同的参数。
如何使用参数运行第一个作业,以便在触发第二个作业时使用相同的参数?
Answers:
1.构建后操作>选择“在其他项目上触发参数化构建”
2.输入带有value的环境变量。Value也可以是Jenkins Build Parameters。
详细步骤可以在这里查看:-
希望对您有所帮助:)
这里接受的答案不适用于我的用例。我需要能够在一个作业中动态创建参数并将其传递给另一个作业。饰演Mark McKenna提到的那样,似乎没有办法将变量从Shell构建步骤导出到后期构建操作。
我通过使用参数化触发器插件实现了解决方法,方法是将值写入文件,然后将该文件用作要通过“添加构建后操作”->“触发参数化构建...”导入的参数,然后选择“添加参数”- >“来自属性文件的参数”。
我认为上述答案需要一些更新:
我试图创建一个动态目录来存储上游构建工件,因此我想将上游作业内部版本号传递给下游作业,但是我尝试了上述步骤,但无法使其正常工作。运作方式如下:
这是因为新版本的jenkins要求您也要在下游作业中定义变量。希望对您有所帮助。
(对于其他Google员工)
如果您正在使用Build Flow插件构建严肃的管道可以使用DSL在作业之间传递参数,如下所示:
假定可用的字符串参数“ CVS_TAG”,以便将其传递给其他作业:
build("pipeline_begin", CVS_TAG: params['CVS_TAG'])
parallel (
// will be scheduled in parallel.
{ build("pipeline_static_analysis", CVS_TAG: params['CVS_TAG']) },
{ build("pipeline_nonreg", CVS_TAG: params['CVS_TAG']) }
)
// will be triggered after previous jobs complete
build("pipeline_end", CVS_TAG: params['CVS_TAG'])
显示可用变量/参数的提示:
// output values
out.println '------------------------------------'
out.println 'Triggered Parameters Map:'
out.println params
out.println '------------------------------------'
out.println 'Build Object Properties:'
build.properties.each { out.println "$it.key -> $it.value" }
out.println '------------------------------------'