jenkins动态获取gitlab分支

为什么要动态获取gitlab分支?

每个项目代码库都会有不同的分支,(如果你没有用多分支流水线的情况下)对于普通的流水线项目我们可以 让一条流水线来支持多个分支的发布,其实有时候你会发现每个分支的集成步骤都是差不多的。如果出现差异步骤我们也可以在jenkinsfile中根据不同的分支执行不同的stage。
如何解决固定分支问题?起初我们的流水线项目配置分支可能是采用的选项参数。创建一个选项参数然后把项目经常用到的分支给更新上去,最后开发人员在发布的时候来选择对应的分支。看似解决了固定分支问题,但是后期维护起来非常困难,需要不断的更改参数值。
创建一个字符参数设置一个默认值,然后 交给开发人员自己填写。这样的确方便了配置管理人员,给开发人员增加了负担,手动输入避免不了带来了错误发生的可能。
接下来,我们展示如何动态获取gitlab分支。

在freestyle项目中使用

我们在项目的配置中,勾选参数化构建,然后添加git参数,选择变量名称和参数类型。
jenkins动态获取gitlab分支_第1张图片
然后在源码管理中,填写项目代码库的信息。
jenkins动态获取gitlab分支_第2张图片
最后保存配置,回到作业首页,我们点击项目的参数化构建。此时你会看到项目代码库对应的所有分支已经出现了,我们可以选择分支并构建了。
jenkins动态获取gitlab分支_第3张图片

在Pipeline项目中使用

安装git参数插件

进入到插件管理中,确保你的Jenkins安装了git parameter插件jenkins动态获取gitlab分支_第4张图片

配置参数化构建过程

jenkins动态获取gitlab分支_第5张图片jenkins动态获取gitlab分支_第6张图片

编写jenkinsfile

//pipeline
pipeline{
    agent any
    stages{
        stage("CheckOut"){
            steps{
                script{
                    println("${branchName}")
                    checkout([$class: 'GitSCM', branches: [[name: "${branchName}"]], 
                              doGenerateSubmoduleConfigurations: false, 
                              extensions: [], 
                              submoduleCfg: [], 
                              userRemoteConfigs: [[credentialsId: 'gitlab-user', 
                              url: "${srcUrl}"]]])
                }
            }
        }
    }
}

保存配置,然后执行构建,这样就能够获取到项目代码库的分支了。
jenkins动态获取gitlab分支_第7张图片

你可能感兴趣的:(持续集成,jenkins,git)