jenkins - 在 Jenkins 多分支声明式管道项目之间传递变量

标签 jenkins jenkins-pipeline

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

当我使用代码段生成器时,它告诉我该项目“未参数化”。在查看多分支管道的配置时,我没有看到参数化它的方法。我错过了什么? (见附件)

enter image description here

enter image description here

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

最佳答案

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

有关使用上面显示的示例的详细说明,我的 项目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)]
    }
  }

B项目然后在我的 jenkinsfile 中,我可以像这样调用参数:
  stage('Collect Info')
  {
    steps
    {
      echo "Hello ${params.PERSON2}"
      echo "PASS_BRANCH_NAME: ${params.PASS_BRANCH_NAME}"
    }
  }

关于jenkins - 在 Jenkins 多分支声明式管道项目之间传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44011837/

相关文章:

android - 使用Jenkins构建Gradle项目时出错

Jenkins 不执行 Jenkinsfile 中的步骤

Jenkins 管道和信号量

svn - Jenkins:服务器 SSL 证书验证失败 - 颁发者不受信任

git - 为什么 bitbucket 分支项目会 checkout 两次?

jenkins - 如何在Jenkins Job Builder中运行maven生成的jar文件

jenkins - 启动 Jenkins 服务器时 GroovyHookScript 中的异常

控制台日志中的Jenkins声明性管道掩码参数密码

java - Jenkins 管道异常 java.io.NotSerializedException : hudson. model.User

jenkins - 确定 Jenkins 脚本化管道中的失败阶段