在 Jenkins 上从 SCM 构建管道上使分支名称动态化

问题描述 投票:0回答:1

我正在设置一个 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 上设置,因为之前已完成签出。一些帮助将不胜感激。

git jenkins
1个回答
0
投票

如果您希望单独构建每个分支,那么您应该选择多分支管道。将其配置为指向您的 GitHub 组织,并将“发现分支”策略设置为“所有分支”。然后运行一次“扫描组织”选项,它应该会自动检测您的存储库以及存储库内的所有分支(只要它们中有 Jenkinsfile)。然后您可以一一构建这些分支中的每一个。阅读更多内容请参阅文档

© www.soinside.com 2019 - 2024. All rights reserved.