Jap*_*r24 4 jenkins jenkins-pipeline
我有项目 A 和项目 B。我想将参数(如 BranchName 和 ArtifactoryID)从项目 A 传递到项目 B。两者都是使用声明性脚本 Jenkinsfile 的多分支管道。
当我使用代码片段生成器时,它告诉我该项目“未参数化”。在查看多分支管道的配置时,我没有看到对其进行参数化的方法。我缺少什么?(见附件)
谷歌结果显示了这一点,但我不确定它应该如何在多分支管道之间传递参数: https://issues.jenkins-ci.org/browse/JENKINS-32780
我明白了这一点。我利用了此处评论中的答案: 管道将参数传递给下游作业
有关使用上面显示的示例的详细说明,我的项目 A jenkinsfile 在各阶段之前将包含以下内容:
parameters
{
string(name: 'BRANCH_PASSED_OVER', defaultValue: '${env.BRANCH_NAME}', description: 'pass branch value')
string(name: 'PERSON2', defaultValue: 'Mr Jenkins', description: 'Who should I say hello to?')
}
Run Code Online (Sandbox Code Playgroud)
...以及构建步骤阶段的以下内容
stage('Build downstream')
{
steps
{
build job: 'BUILD/CMTest2/' + env.BRANCH_NAME.replaceAll("/", "%2F"), wait: false, parameters: [string(name: 'PERSON2', value: params.PERSON2), string(name: 'PASS_BRANCH_NAME', value: env.BRANCH_NAME)]
}
}
Run Code Online (Sandbox Code Playgroud)
在项目 B中,然后在我的 jenkinsfile 中,我可以像这样调用参数:
stage('Collect Info')
{
steps
{
echo "Hello ${params.PERSON2}"
echo "PASS_BRANCH_NAME: ${params.PASS_BRANCH_NAME}"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8415 次 |
| 最近记录: |