阅读本文大约需要5分钟
前言
在使用jenkins打包过程中,如果只需要根据分支打包,则直接使用“源码管理-Git-Branches to build”直接填写想要打包的分支即可。这是最常用,也是最容易、最简单的方式。
但打包分支总是切来切去,每次打包前到job“配置”中修改分支是一种方式。有没有一种方式可以不用每次都修改“配置”呢?
我们都知道,每次版本发布之后,就会给发布的分支打tag标记,记录每个发布版本对应的代码,便于代码回滚。那么Jenkins是否可以基于tag打包的呢?
有时候,开发正在某个分支修改出了一个大bug,导致该分支打包失败,是要将包回退到该分支某个commit之前的代码。将Jenkins中对应的打包记录工作区中下载需要的包,放到指定服务器,然后手动启动应用。还是有更简单的方式呢?Jenkins能否直接根据某个commit打包呢?
Jenkins实现根据Branch,Tag,commit等信息打包,其实很简单。只需要Git Parameter插件即可实现。
安装
下载git-parameter.hpi插件,然后安装自定义插件;若安装过程出现以下报错:
根据报错日志,可知git-parameter插件需要依赖jquery插件,下载jquery.hpi安装之。
安装完jquery插件,再重新安装git-parameter插件,便可安装成功:
使用
- 源码管理——Git——Branches to build——填写变量,如${BRANCH}
- 参数化构建过程——添加参数——Git Parameter——Name填写上步调用的变量名BRANCH
Git Parameter可以选择不同的Parameter Type来构建
较为简单的用法,至此已经配置完成。构建job时,可以看到, “立即构建”已经变成了”Build with Parameters”,点击后进入参数(分支)选择页面。选择参数,点击“开始构建”。
Git Parameter除了Branch,也可以根据Tag,Revision来拉取代码。另外,还可以在高级配置中,配置过滤条件。具体使用可以结合参数说明配置。
参数说明
Parameter Type
- Tag-为区分版本在代码中打上的标签
- Branch-代码分支
- Branch or Tag-以上两者的集合
- Revision-每个代码提交对应的id
- Pull Request- 我修改了你的代码,所以请求(request)你把我修改过的代码拉(pull)回去看看,比较少用到。
高级选项
- Branch-指定分支
- Branch Filter-分支过滤器,支持正则表达
- Tag Filter-标签过滤器
- Sort Mode-排序方式,顺序或倒序
- Default Value-缺省值,无匹配值时的默认值
- Selected Value-NONE,默认不选;TOP,默认选择第一个;DEFAULT,选择默认值
- Use repository-指定代码仓库
Quick Filter-勾选之后,在构建时会在右侧显示过滤关键字输入框,输入关键字,可以过滤左侧的选项