1、首先看一下实现的效果:
选中不同的项目(TARGET_PROJECT),下面的分支,版本号的选项都会自动刷新,实现不用人工输入即可构建job,本文的构建适合用于php+gitlab代码更新,为方便实验gitlab用的是github的公共仓库,再次由于不熟悉groovy语法,利用的是shell脚本执行的返回值,简单处理后再展示,对于参数怎么传怎么取,本文可以提供一个完美的参考。
2、所用插件:Active Choices
Plug-in、Groovy、Pipeline
3、所用jenkins是运行在docker之上,版本为2.164.3
docker启动命令:
docker run -u
root --rm
-d -p
8080:8080 -p
50000:50000 -v
jenkins-data:/var/jenkins_home
-v /var/run/docker.sock:/var/run/docker.sock
jenkins/jenkins:2.164.3
4、初始化安装插件完成之后,新建一个pipline任务,我这边已经建好,所以提示已存在
5、勾选参数化构建过程
一、添加选项参数:
名称:TARGET_PROJECT
选项:
red1.hat.com
red2.hat.com
red3.hat.com
描述:
请选择要发布域名:
二、添加参数-Active
Choices Reactive Parameter:
Name:TARGET_BRANCH
勾选Groovy Script,脚本为:
if(TARGET_PROJECT.equals("red1.hat.com")){
def gettags = ("git
ls-remote -h
https://github.com/lanmaodage/groovy1.git").execute()
gettags.text.readLines().collect {
it.split(