JENKINS + GITEE实现项目自动化构建和部署
概述
因为需要构建的代码托管在gitee平台,所以完成项目自动化构建/部署离不开webhook
为什么是jenkins
选用jenkins主要有以下几个考虑:
- jenkins是所有CI产品中安装和配置最简单的,只要简单的几步就可以完成
- 它基于WEB访问,用户界面非常友好,直观和灵活
- 并且拥有大量的插件.这些插件极大的扩展了jenkins的功能.而且它是开源的 开源的 源的
什么是webhook
简答来说就是一种反向的API机制,类似于触发器.既然是触发器,就有出发条件.当满足条件时,源网站可以发起一个HTTP请求到webhook配置的URL地址.
以gitee为例:
可选择事件包括 Push/Tag push/Issue/Pull Request/评论等.当事件触发激活时,会向配置的URL地址上发送HTTP请求并附带项目的信息/提交记录等.稍后配置jenkins时会用到.
配置jenkins任务
linux版本: Red Hat 8.5.0-4
jenkins版本: Jenkins 2.361
java版本: 1.8
node版本: v14.6.1 (PS. 我是通过nvm进行node多版本控制的)
前置
在新建jenkins任务前,需要先安装所需要的插件.可根据个人情况,自行进入 系统管理>插件管理 安装.我的代码时托管到gitee的.所以再此基础上额外安装了Gitee Plugin 和 Generic Webhook Trigger Plugin 插件
如图:
正式创建task任务
点击 Dashboard > 新建任务 打开任务创建页面.根据页面提示,填写任务名称/构建方式 我选择的是第一种 构建一个自由风格的软件项目 然后点击确认.
如图:
点击确认后,会跳转到对应的配置页面,按页面提示进行填写.
general配置:
源码管理:
构建触发器:
需要注意的是这里的URL地址/密码需要在gitee托管平台 仓库 > 管理 >webhooks 内填写
因为需要获取webhooks推送过来的post content ,所以只解析获取了 ref
参数获取配置如图:
Build Steps:
我是通过shell脚本进行创建的,大概思路是:
- 获取分支版本号
- 判断分支版本是否存在 不存在 从gitee平台拉取
- 进入分支版本目录进入工作空
- 拉取最新代码
- 执行打包操作
- 备份/部署/启动服务
配置好后,一个简单的根据分支进行自动化构建及部署的环境就弄好了.现在你只要将代码推送到gitee托管平台.jenkins就会自动部署.妈妈再也不担心更新不及时了