【实战】Jenkins配置Git push后自动构建
# 前言
Jenkins 持续构建集成是软件版本迭代的一大利器,对于前端攻城狮来说,本身对服务器的接触就少,也并不愿意去做这个事。Jenkins持续构建省去了繁琐的服务器替换包的过程,同时有历史构建记录和每次构建的变更记录,这为我们回退和检查构建情况提供了便利。
本文假设你已经搭建了一些基础环境,如Git环境,Node环境等。如未处理请自行百度
# Jenkins配置步骤
1. 在Jenkins中进入你要配置自动构建的项目
![](https://upload-images.jianshu.io/upload_images/8646214-c8702432831cf5ef.png?imageMogr2/auto-orient/strip|imageView2/2/w/1143)
要设置自动构建的项目
2. 点击左侧配置选项进行项目发包配置(首先你得有配置的权限)
![](https://upload-images.jianshu.io/upload_images/8646214-fe15f3df8b14bb66.png?imageMogr2/auto-orient/strip|imageView2/2/w/752)
工程中点击配置
3. 对项目的各个模块进行信息填写
这一步是比较关键的,配置文档有几个信息需要填写
- 属于描述解释类信息,可以不填。如果需要添加构建条件时也可以在这里勾选某个选项,比如,勾选“参数化构建过程”,就可以在配置构建时用户选择使用的分支。
![](https://upload-images.jianshu.io/upload_images/8646214-846aaf110ce83246.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200)
General部分
- 填写构建仓库信息,你要发布的代码就从这里拷贝过来的
![](https://upload-images.jianshu.io/upload_images/8646214-87a6513f2bae596f.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200)
源码管理模块
- 设置git触发构建的动作
![](https://upload-images.jianshu.io/upload_images/8646214-96f1f9502f2f93b3.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200)
设置触发器
- 选用node作为构建环境
![](https://upload-images.jianshu.io/upload_images/8646214-b055a559c28e8e33.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200)
构建环境设置
- 构建执行的脚本命令
![](https://upload-images.jianshu.io/upload_images/8646214-23929c1416943052.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200)
构建脚本命令
# 服务器上的脚本
在上一个步骤中,我们除了配置安装依赖、打包和scp
文件到服务器上外,还配置了 ssh root@10.231.111.111 '/bin/bash /data/web/shellscript.sh'
。 意思是连接远程服务器,去执行shellscript.sh
这个脚本文件。
通常情况下,该脚本需要设置这么几个内容
- 备份现有的应用服务包
- 解压新包并将其挪至nginx指定的服务路径下(最好输出解压包时的日志)
- 修改新包的宿主和宿组
- 移除清空服务器上接收远程文件的文件夹(一般为
/opt
)
这里列举出一个实例
至此,关于Jenkins的配置已经处理完成了。此时已经能实现手动发版时拉取最新的GitLab上指定分支的代码。
当然,笔者并不满足于此,还想实现git push
后自动发版的配置,真正实现自动持续构建集成
# GitLab配置步骤
1. 进入配置自动构建的项目
![](https://upload-images.jianshu.io/upload_images/8646214-1c2328ce08efdf65.png?imageMogr2/auto-orient/strip|imageView2/2/w/972)
选中要配置的项目
2. 点击 setting --> Integrations
设置Webhooks
![](https://upload-images.jianshu.io/upload_images/8646214-4d270d9904c2fa8a.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200)
设置webhooks
3. 增加一个webhook
(1)Jenkins的回调地址,在Jenkins配置中的3.3步骤中笔者已标明
(2)secret token 也需要去Jenkins配置中生成。还是在如上3.3配置截图中,右下角有一个高级按钮,点开展示如下:
![](https://upload-images.jianshu.io/upload_images/8646214-83f95fcb92150e2c.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200)
生成secret token
OK,我们来添加一个webhook并进行测试
![](https://upload-images.jianshu.io/upload_images/8646214-c95cfc7d86916219.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200)
添加webhook
点击测试可达性,如果页面提示如下,说明webhook添加成功
![](https://upload-images.jianshu.io/upload_images/8646214-2cb954926bdebe19.png?imageMogr2/auto-orient/strip|imageView2/2/w/747)
测试结果
好了,去你的项目中试试git push
操作吧