一、Webhook触发Jenkins自动构建
前面文章中,已经可以构建项目了,接下来就使用 Generic Webhook Trigger 插件实现push代码,触发Jenkins自动构建。因为我的仓库在码云上,所以以码云的配置来配置。
安装 Generic Webhook Trigger 插件
上篇文章说到,插件是在 插件管理 中安装,这里就不讲述了。下图是我已经安装好的截图
项目中配置
- 当装好插件后,打开项目配置后,点开构 建触发器 会看到 Generic Webhook Trigger 选项,然后勾选上。构建触发器是要抓取push这个动作,WebHook POST 过来的数据,判断是哪个分支(这里的分支是提前在码云仓库里建好的,我这里以dev为例),是否需要Jenkins拉取最新代码构建。抓取到的数据用变量 ref 接住,内容为 $.ref。详情请移步码云WebHook文档
- 获取到POST的数据,其他的不用管,往下看, Optional filter 选项中,就是根据定义的字符串来触发这个动作,上面配置的原数据是 (dev分支是上面提到的开发分支,push代码后才会触发),Text是匹配出什么结果来触发动作,Text: $ref。当然如果Optional filter不配置,就会默认去匹配 master 分支,配置完成后,点击保存。
码云仓库配置
- 进到仓库中,点击设置,选中WebHooks如下图,然后点击添加 webhook,填写 POST 地址,格式如下:
/*
* username: Jenkins登录用户
* password: Jenkins登录密码
* JenkisUrl: Jenkins访问地址
*/
http://username:password@JenkisUrl/generic-webhook-trigger/invoke
都填好后点击添加,如果配置成功则会有如下返回值,如下图;接下来就可以随便改点东西,推送到码云上,然后回到 Jenkins 上,查看是否自动构建成功。
二、Pulish Over SSH 插件分发部署
Jenkins SSH Key配置
首先安装 Pulish Over SSH 插件,和上文一样,依然是到 插件管理 中查找、安装,这里我已经安装好了,就不在安装了。
下一步配置很重要,系统管理 -> 系统设置 ,一直向下翻找到Pulish Over SSH,进行配置
- Passphrase jenkins用户 SSH Key 的密码,如果未设置,可以不填
- Path to key jenkins用户 SSH 私钥key的路径,可以不填
- Key jenkins用户 SSH 私钥的内容
关于 私钥 的生成,这里不讲解,大家请百度下
SSH Servers配置
这里的配置是对Jenkins系统的配置,可以配置多个,便于向不同服务器推送构建后的文件。配置完成后右下角有一个 Test Configuration 按钮,点击如果出现success,则表示配置成功。
- Name ssh连接的名称,随意
- Hostname 远程服务器的地址,建议IP
- Username 远程服务器登录的用户名
- Remote Directory 远程服务器目录,我填写的根目录
项目中配置
这里的配置是对项目的配置,配置完成后点击保存。
- Name 上面系统配置的name,ssh连接的名称
- Source Files 要出书的源文件,如果是全部,直接填写 目录名称/**
- Remote prefix 需要移除的前缀,针对Source Files,如果上一项中无用的目录层级比较多,可以在这里去掉
- Remote Directory 远程服务器目录,相对路径,因为我在上面配置的是根目录,所以这里填写完整的路径
到这里就完全配置完了,在造轮子过程中,遇到很多问题,一步一步踩坑过来的,也借鉴了很多学习资料,希望大家都能在自己造轮子的路上,早日上岸!