【问题标题】:Pass variables across Jenkins Multi-Branch Declarative Pipeline Projects在 Jenkins 多分支声明式管道项目中传递变量
【发布时间】:2017-05-24 21:43:16
【问题描述】:

我有项目 A 和项目 B。我想将参数(如 BranchName 和 ArtifactoryID)从项目 A 传递到项目 B。两者都是使用声明性脚本 Jenkinsfile 的多分支管道。

当我使用 Snippet Generator 时,它告诉我项目“未参数化”。在查看多分支管道的配置时,我看不到参数化它的方法。我错过了什么? (见附件)

谷歌结果显示了这一点,但我不确定它应该如何在多分支管道之间传递参数:https://issues.jenkins-ci.org/browse/JENKINS-32780

【问题讨论】:

    标签: jenkins jenkins-pipeline


    【解决方案1】:

    我想通了。我从这里的评论中得到了答案:Pipeline pass parameters to downstream jobs

    对于使用上面显示的示例的详细说明,我的 Project 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?')
      }
    

    ...以及构建步骤阶段的以下内容

      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)]
        }
      }
    

    Project B 中,然后在我的 jenkinsfile 中,我可以像这样调用参数:

      stage('Collect Info')
      {
        steps
        {
          echo "Hello ${params.PERSON2}"
          echo "PASS_BRANCH_NAME: ${params.PASS_BRANCH_NAME}"
        }
      }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-05
    • 2019-10-11
    • 1970-01-01
    • 2017-10-21
    相关资源
    最近更新 更多