为什么要动态获取gitlab分支?
每个项目代码库都会有不同的分支,(如果你没有用多分支流水线的情况下)对于普通的流水线项目我们可以 让一条流水线来支持多个分支的发布,其实有时候你会发现每个分支的集成步骤都是差不多的。如果出现差异步骤我们也可以在jenkinsfile中根据不同的分支执行不同的stage。
如何解决固定分支问题?起初我们的流水线项目配置分支可能是采用的选项参数。创建一个选项参数然后把项目经常用到的分支给更新上去,最后开发人员在发布的时候来选择对应的分支。看似解决了固定分支问题,但是后期维护起来非常困难,需要不断的更改参数值。
创建一个字符参数设置一个默认值,然后 交给开发人员自己填写。这样的确方便了配置管理人员,给开发人员增加了负担,手动输入避免不了带来了错误发生的可能。
接下来,我们展示如何动态获取gitlab分支。
在freestyle项目中使用
我们在项目的配置中,勾选参数化构建,然后添加git参数,选择变量名称和参数类型。
然后在源码管理中,填写项目代码库的信息。
最后保存配置,回到作业首页,我们点击项目的参数化构建。此时你会看到项目代码库对应的所有分支已经出现了,我们可以选择分支并构建了。
在Pipeline项目中使用
安装git参数插件
进入到插件管理中,确保你的Jenkins安装了git parameter插件
配置参数化构建过程
编写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}"]]])
}
}
}
}
}
保存配置,然后执行构建,这样就能够获取到项目代码库的分支了。