一、准备工作
1.1、环境准备
软件 | 版本 | 功能 |
---|---|---|
jenkins | 2.95 | 提供平台 |
插件 | groovy-postbuild | 执行Groovy |
插件 | postbuild-task | 执行Groovy |
插件 | uno-choice | 动态选择工具 |
插件 | role-strategy | 基于角色的权限控制 |
插件 | git-parameter | git分支获取 |
1.2、效果图展示
二、实现方式
2.1、基于Dynamic Parameter Plug-in插件实现
代码语言:javascript复制由于插件本身的安全问题,在Jenkins的插件管理中心已经找不到了~
2.2、基于git-parameter插件实现
2.2.1、演示项目
项目名称 | 地址 |
---|---|
daohang | https://github.com/zhuima/daohang |
开源项目 | 是 |
功用 | 内部导航地址 |
2.2.2、实现方式
代码语言:javascript复制2.2.3、点评
加载速度有点慢
可以列出所有的tag和Branch
2.3、基于Active Choices Plug-in插件实现(五星推荐)
演示项目
项目名称 | 地址 |
---|---|
jumpserver | https://github.com/jumpserver/jumpserver |
开源项目 | 是 |
功用 | 堡垒机、跳板机 |
代码语言:javascript复制2.3.2、说明
本工具可以媲美Dynamic Parameter Plug-in插件
2.2.2、实现方式
代码语言:javascript复制2.3.3、点评
实现方式比较优雅
能用groovy的场景一定要立马使用
代码语言:javascript复制2.3.4、涉及代码
def gettags = ("git ls-remote -h https://github.com/jumpserver/jumpserver.git").execute()
gettags.text.readLines().collect { it.split()[1].replaceAll('refs/heads/', '') }.unique()