Coding如何配置webhook触发jenkins自动构建部署
前端
话说因为公司没有运维,所有环境的维护和发布上线不是开发搞就是作为测试的作者本人,又因为某些项目在构建时消耗资源巨大无法完成构建,导致原阿里云的jenkins服务器无法正确部署,而作者就在本地jenkins服务器开辟一个job,实现本地构建打包上传到生产服务器指定路径,再由生产jenkins服务器shell脚本一键部署。做到构建和部署分离,但现实情况是本地jenkins无法外网访问,最近很长一段时间都是在家构建部署,如果因为紧急发布,就无法在本地打包了,故而作者也提供了CLI命令触发jenkins构建,只需要通过jumpserver跳板机去执行shell脚本即可。但是的但是,这样还是不方便,当然没有直接访问jenkins点击触发来得方便。所以作者也有点无赖,怎样才能解决这个问题呢?
想法
本地jenkins大多都是手动构建,就连执行的自动化测试脚本也是通过定时任务去完成的。那么这个难搞的项目可以通过这种方式吗?不大好的设想,毕竟不是每次都需要构建上生产的,也不是一周一个迭代,那么能不能像之前配置github一样,通过git代码仓库的代码push来触发呢?先提一嘴,当前公司使用的coding作为代码仓库,而没有在本地搭建gitlab服务器;再说一个条件就是本地jenkins无法外网访问!excuse me?
巧合
首先,coding是支持在项目设置webhook触发jenkins机制的,测试环境有一个域名暂时使用频率很低,甚至可以说是弃用了;
然后就通过测试环境配置nginx代理到本地jenkins服务器上去了;所以你懂得,前提条件满足了,只要撸起袖子加油干就好了。
说干就干
首先要安装的就是jenkins的功能插件:Coding Webhook Plugin
在job配置--构建触发器,勾选Coding就好,得到webhook地址,记住这个域名必须是外网可以访问的
在jenkins系统管理--系统配置的Jenkins Location地址也要是同一个域名
现在去登录coding--项目--选择左下的项目设置
找到开发者选项,进入service hook,点击新建Service Hook
默认选择webhook下一步即可
在选择代码推送、合并请求,下一步
服务URL就是jenkins上job构建触发器的coding得到的webhook地址
点击测试完成后,再点击状态后面的发送记录,看到测试的记录(自由状态是绿色,代表是成功的,但是jenkins并不会构建)
所以需要自己在项目中修改并push代码,再去jenkins看效果就好。
总结
苦心人天不负,总算是完成这一大举措,既支持本地cli脚本出发,又支持自动构建,这样可以说是两全其美,唯一的问题就是域名要是突然要去做测试,那jenkins的这个webhook地址可能就失效了,为今之计仍不够完美,希望会有更多解决方案吧!
作者:我先测了
链接:https://juejin.cn/post/7057719041313472548