如何触发另一个需要$BRANCH变量的Jenkins管道?

如何触发另一个需要$BRANCH变量的Jenkins管道?,jenkins,Jenkins,我有3条管道。说: 构建和发布 build 发布 我正在重构我的管道,这样我就可以从构建和发布中调用构建和发布作业。大致如下: // build-and-release JenkinsFile node('master') { build job: "build", propagate: true, wait: true build job: "release", propagate: true, wait: true } // build JenkinsFile node('mast

我有3条管道。说:

构建和发布
build
发布

我正在重构我的管道,这样我就可以从
构建和发布
中调用
构建
发布
作业。大致如下:

// build-and-release JenkinsFile
node('master') {
  build job: "build", propagate: true, wait: true
  build job: "release", propagate: true, wait: true
}

// build JenkinsFile
node('master') {
  stage('Build') {
    // do stuff
  }
}

// release JenkinsFile
node('master') {
  stage('Release') {
    // do other stuff
  }
}
这似乎是可行的,但是
构建
发布
管道始终假定分支是主分支。当我运行
构建和发布
作业时,我选择要构建的分支


如何使其他作业使用我从
构建和发布
中选择的相同$BRANCH?

您可以将
构建
发布
作业配置为参数化作业,然后可以将分支名称作为参数发送,如下所示:-

// build-and-release JenkinsFile
node('master') {
  build job: 'build', parameters: [string(name: 'Branch', value: "${env.BRANCH_NAME}")], propagate: true, wait: true
  build job: 'release', parameters: [string(name: 'Branch', value: "${env.BRANCH_NAME}")], propagate: true, wait: true
}
然后,您可以在build And release的Jenkins文件中使用分支变量

注意:-您可以在上面的示例中配置任何其他参数类型字符串参数已配置,有关更多信息,请参阅