首页 > 解决方案 > 如何触发另一个需要 $BRANCH 变量的 Jenkins 管道?

问题描述

我有 3 条管道。说:

build-and-release build release

build我正在重构我的管道,以便我可以releasebuild-and-release. 这些方面的东西:

// 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
  }
}

这似乎按原样工作,但buildrelease管道始终假定分支是 MASTER。当我运行这项build-and-release工作时,我会选择我想要构建的分支。

如何让其他工作使用我选择的相同 $BRANCH build-and-release

标签: jenkins

解决方案


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

// 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
}

然后您可以在构建和发布的 Jenkinsfile 中使用Branch变量。

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


推荐阅读