在Jenkins多分支声明性管道项目中传递变量

在Jenkins多分支声明性管道项目中传递变量,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我有项目A和项目B。我想将参数(如BranchName和ArtifactoryID)从项目A传递到项目B。两者都是使用声明性脚本文件的多分支管道 当我使用代码段生成器时,它告诉我项目“未参数化”。在查看多分支管道的配置时,我没有看到参数化它的方法。我错过了什么?(见附件) google的结果显示了这一点,但我不确定它应该如何在多分支管道之间传递参数:我发现了这一点。我在这里引用了一条评论的答案: 要使用上面所示的示例进行详细解释,我的项目aJenkins文件在阶段之前会有以下内容: pa

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

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


google的结果显示了这一点,但我不确定它应该如何在多分支管道之间传递参数:

我发现了这一点。我在这里引用了一条评论的答案:

要使用上面所示的示例进行详细解释,我的项目aJenkins文件在阶段之前会有以下内容:

  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中,然后在我的Jenkins文件中,我可以这样调用参数:

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

您是否通过rest调用构建?我在调用POST时收到500或404 HTTP错误