Ste*_*all 79 continuous-integration hudson jenkins
我在詹金斯有两个工作,两个都需要相同的参数.
如何使用参数运行第一个作业,以便在触发第二个作业时使用相同的参数?
Łuk*_*nek 71
您可以使用参数化触发器插件,它允许您将参数从一个任务传递到另一个任务.
您还需要添加从下游传递的上游参数.
Vin*_*eph 31
1.Post-Build Actions>选择"在其他项目上触发参数化构建"
2.输入带有value的环境变量.值也可以是Jenkins Build Parameters.
详细步骤可以在这里看到: -
希望它有用:)
Nig*_*rby 23
这里接受的答案对我的用例不起作用.我需要能够在一个作业中动态创建参数并将它们传递给另一个作业.正如Mark McKenna所提到的那样,似乎没有办法将变量从shell构建步骤导出到post构建操作.
我通过将值写入文件并使用该文件作为参数通过"添加后构建操作" - >"触发器参数化构建..."然后选择"添加参数" - 来实现使用参数化触发器插件的变通方法- >'属性文件中的参数'.
小智 12
我认为上面的答案需要一些更新:
我试图创建一个动态目录来存储我的上游构建工件,所以我想将我的上游作业构建号传递给下游作业我尝试了上述步骤,但无法使其工作.以下是它的工作原理:
这是因为新版本的jenkins要求您在下游作业中定义变量.我希望它有用.
Off*_*rmo 10
(对于谷歌同行)
如果您使用Build Flow Plugin构建一个严重的管道,您可以使用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'])
Run Code Online (Sandbox Code Playgroud)
显示可用变量/参数的提示:
// 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 '------------------------------------'
Run Code Online (Sandbox Code Playgroud)
除了Nigel Kirby之外,我只想添加我的答案,因为我还没有评论:
为了传递动态创建的参数,您还可以在"Execute Shell"磁贴中导出变量,然后将其传递给"其他项目上的触发器参数化构建"=>"预定义参数"=>给出"YOUR_VAR = $ YOUR_VAR".我的团队使用此功能将npm包版本从构建作业传递到部署作业
更新:上面只适用于Jenkins注入的参数,从shell创建的参数仍然需要使用相同的方法.例如.echo YOUR_VAR = $ {YOUR_VAR}> variable.properties并将该文件传递给下游
| 归档时间: |
|
| 查看次数: |
144583 次 |
| 最近记录: |