动态替换jenkinsfile中的分支名称

时间:2018-03-18 15:51:45

标签: jenkins jenkins-pipeline

我是Jenkins的新手,并坚持用Jenkins替换Jenkins文件中的分支名称。

我想写一个常见的Jenkins文件,并且我想从Jenkins中选择分支名称。以下是我Jenkins文件的片段

  

checkout([$ class:'GitSCM',branches:[[name:'* / master']],

无论我从Jenkins中选择哪个分支名称,它都应该在Jenkinsfile中替换它并进行构建。

我已经完成了答案 parametrized build

有点不能做同样的事情。 任何人都可以将我转到我可以通过的文档/链接并实现相同的吗?

我的变化:

checkout([$class: 'GitSCM', branches: [[name: 'params.Branch_Select']],

在此输入图片说明

GIT PARAMETER

BRANCH SPECIFIER

Jenkinsfile

Error

2 个答案:

答案 0 :(得分:1)

我已经解决了上述问题。取消勾选方框。

Lightbox

答案 1 :(得分:0)

在Jenkins文件中,添加一个参数部分,该部分将接受BRANCH_NAME作为参数

parameters {
        string(defaultValue: "master", description: 'enter the branch name to use', name: 'BRANCH_NAME')
    }

并在结帐步骤中使用该变量,如下所示:

checkout([$class: 'GitSCM', branches: [[name: "*/${BRANCH_NAME}"]]])

注意:您必须运行一次构建才能看到“使用参数构建”选项。

只有结帐阶段的示例管道:

pipeline{
    agent any
    parameters {
        string(defaultValue: "develop", description: 'enter the branch name to use', name: 'BRANCH_NAME')
    }
    stages{
        stage('Checkout'){
            steps{
                checkout([$class: 'GitSCM', branches: [[name: "*/${BRANCH_NAME}"]], gitTool: 'jgit', userRemoteConfigs: [[url: "https://github.com/githubtraining/hellogitworld.git"]]])
                //checkout([$class: 'GitSCM', branches: [[name: "*/${BRANCH_NAME}"]],url:'https://github.com/brianmyers/hello'])
            }
        }
    }
}