我正在设置一个 Jenkins 管道,当我推送提交时会触发该管道。为此,我必须使用 SCM 中的管道脚本,我必须在“分支说明符”字段中动态设置分支的名称(“任何”为空白)。
如何使条目通用,因为推送可以来自任何分支。我尝试将其留空,但当我构建管道时,它默认为不同的分支,这是不需要的。
我当前的管道脚本看起来像这样
pipeline {
agent any
stages {
stage('Step 1') {
steps {
checkout poll: false, scm: scmGit(
branches: [[name: scm.branches[0].name ]],
extensions: [submodule(parentCredentials: true, recursiveSubmodules: true, reference: '')],
userRemoteConfigs: [[
credentialsId: 'xxxxx',
url: 'https://github.com/xxx/xxx.git'
]]
)
}
}
.. more stages
}
}
我在结账步骤中设置分支名称,但在构建中设置,但从 SCM GUI 看来我必须提供分支名称,如图所示。
我提供了一个 $GIT_BRANCH 环境变量,但不知道在哪里设置它,因为它无法在 Jenkinsfile 上设置,因为之前已完成签出。一些帮助将不胜感激。
如果您希望单独构建每个分支,那么您应该选择多分支管道。将其配置为指向您的 GitHub 组织,并将“发现分支”策略设置为“所有分支”。然后运行一次“扫描组织”选项,它应该会自动检测您的存储库以及存储库内的所有分支(只要它们中有 Jenkinsfile)。然后您可以一一构建这些分支中的每一个。阅读更多内容请参阅文档。