从另一个流水线中调用参数化的Jenkins流水线

8
有一种方法可以从另一个带有参数的管道触发管道作业,我已经尝试过了。
build job: '/myjob', parameters: [string(name: 'param1', value:'val1')], wait: false

我也尝试过

build job: 'myjob', parameters: [string(name: 'param1', value:'val1')], wait: false

并且

build job: 'myjob', parameters: [[$class: 'StringParameterValue', name: 'param1', value: 'val1']], wait: false

没有运气,它说:
项目类型不支持参数。

你确定你的管道“myjob”位于根路径吗?如果两个管道在同一个视图中,你可以只用名称构建第二个:构建作业:“myjob”。 - Franck Cussac
我尝试了两种方式,使用'myjob'和'/myjob',但在每种情况下它总是显示“项目类型不支持参数”,即使我已经将'myjob'管道参数化。 - bitgandtter
尝试这行代码:build job: 'myjob', parameters: [[$class: 'StringParameterValue', name: 'param1', value: 'val1']] - Franck Cussac
也尝试了但没有成功,将更新主要问题以反映所有尝试,谢谢。 - bitgandtter
你能给我展示一下你带有参数声明的流水线截图吗?还有一个“构建参数”页面的截图。 - Franck Cussac
3个回答

13

因为子任务是另一个多分支管道项目,所以我需要指定要运行的分支,因此使用

build job: 'myjob/master', parameters: [string(name: 'param1', value:'val1')], wait: false

现在它可以工作了


这个能用布尔参数吗?似乎无法让它工作。 - mike01010

1
以下是我用来将参数“test_1”和“test_2”从管道“master”传递到管道“sub-1”的方法。
在主管道中:
build job: 'sub-1', parameters: [[$class: 'StringParameterValue', name: 'test_1', value: 'nameValue'], [$class: 'StringParameterValue', name: 'test_2', value: 'valueValue']], wait: true


在子管道“sub-1”中,通过引用“params”变量来使用。
node {
   echo params.test_1
   echo params.test_2
}

参考:

https://support.cloudbees.com/hc/en-us/articles/221400287-How-to-pass-parameter-to-downstream-job-in-Pipeline-job-


0
根据您的Jenkins工作/管道结构,您应该在作业前加上"../"前缀,例如:
build job: '../myjob/master', parameters: [string(name: 'param1', value:'val1')], wait: false

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接