Jenkins配置项目提交推送到不同分支时构建不同项目
1. 创建Jenkins项目
如果你是基于Maven依赖构建,可创建一个maven项目,如果不是,可创建一个自由风格项目。
2. 配置Jenkins项目
这里我对触发构建新插件简单介绍下:
如果我需要分别为git上的分支(假设为develop和master)进行构建,那么我需要分别为两个分支两个项目XX-develop和XX-master,并且以第一种方式我还需在webhook上建立两个推送,这样每次我push,才会对这两个项目触发构建,但是,问题来了,假如我push到develop,但是我的master对应的jenkins项目也跟着进行了一个不必要的构建,这样明显存在着问题,所以我google了新的解决方案,就是采用Generic Webhook Trigger Plugin进行正则的匹配构建。
插件对应配置如下:
Generic Webhook Trigger主要有: Post content parameters、 Header parameters、Request parameters和Optional filter这几个组成。
其中,Post content parameters是对POST请求数据的处理,其他 Header parameters、Request parameters类似,在众多变量中,我们可以筛选到一个具有标识分支的变量,ref。
当我们push到develop时,WebHook推送的信息中,ref为refs/heads/develop,而push到master是ref则为refs/heads/master,所以使用Generic Webhook Trigger Plugin则可以通过正则对推送内容中的ref进行匹配构建,如上图所示。
WEB HOOK推送的请求头示例:
3. 设置Web Hook
gitea的Web hook在仓库设置中,创建一个Gogs的WebHOOK,因为jenkins还未支持Gitea的WebHook。
接着填写推送地址,因为我用的触发构建操作的插件是Generic Webhook Trigger,它的推送地址格式是
http://[host]/generic-webhook-trigger/invoke?token=abc123
此处的Token比较重要,用来区分项目,可为不同项目建立一个唯一的Token,通常token设置如下图所示:
如果你还嫌不够安全,可以在为触发构建添加一个Secret,对应的jenkins设置处如下图:
4. 测试push触发自动构建
点击测试推送,即可发送一条测试推送,如果配置没问题,jenkins会接受到该推送并触发一系列操作。
注意事项:
gradle项目接入jenkins,因为develop分支对应的项目版本要为latest,这个镜像构建出来的才为latest,所以需要为build.gradle添加version设置,如:
if (project.hasProperty('projVersion')) {
project.version = project.projVersion
} else {
project.version = '10.0.0'
}
构建时便可以动态改变版本了。
gradle -PprojVersion=latest build
需要导入本地jar时,有两种方法:
- 传统方法,直接拉到jenkins所在服务器,进行手动导包。
- 创建Jenkins项目,进行自动构建并执行导入仓库命令。
更多推荐
所有评论(0)