以前我们在发布项目时都要手动进行打包,然后使用FTP或者其他方式同步到服务器上,这种方式非常繁琐和低效,而且容易出现环境发布错误,为了解决这些问题我们可以使用jenkins来进行自动化发布。
我使用的系统是CentOS 7.5,在安装环境的时候其他系统会有区别。
jenkins发布工作流程
- 本地push代码
- 服务端jenkins拉取代码
- 将代码移到web服务工作目录
- 发送邮件通知
准备
- git仓库(可以是gitlab,github,码云或者其他带web hooks的git仓库)
- 服务器一台(windows或者Linux都可以,本文使用的是CentOS 7.5 64位)
- 服务器安装git,java,jenkins
安装java
yum install java
验证是否安装成功
java -version
如果有版本号输出表示安装成功
安装git
yum install git
验证是否安装成功
git --version
安装jenkins
提示:操作系统不一样下载的包也不一样,安装命令也不一样
-
打开jenkins.io/zh/download…,选择对应系统的安装文件
-
安装 (安装包目录下执行)
sudo rpm -ih jenkins-2.121.3-1.1.noarch.rpm -
启动
service jenkins start
如果启动成功,我们在浏览器输入http://服务器地址:8080就能访问到入门页面了,如果不能访问检查8080端口是否被占用。
在服务器上输入cat /var/lib/jenkins/secrets/initialAdminPassword查看管理员密码,输入密码后点击继续。
然后选择安装推荐的插件等待安装完成
安装完成后我们点击右下角使用admin账号继续
然后点击保存并完成
点击开始使用 jenkins就会跳转到首页
创建任务
点击开始创建一个新任务,输入名称,选择构建一个自由风格的软件项目,然后点击确定
配置源码管理
- 点击
源码管理 - 选择
GIT Repository URL填写我们git仓库地址
Branches to build输入我们需要拉取的分支
构建配置
git拉取完成后,我们需要将代码复制到web服务的目录下,这里我们可以使用sshell命令来进行操作
- 点击
构建 - 点击
增加构建步骤,选择执行sshell
- 输入复制文件命令
cp -r ./dist/* /var/project/test(注意路径和文件夹名称,需要改成你项目的路径)
然后点击保存,现在我们可以点击左边菜单中的立即构建来发布项目。
web hooks 自动发布
到此我们构建就配置好了,但是还是需要我们提交代码后打开jenkins点击构建,接下来我们实现git push代码之后自动进行构建
安装Generic Webhook Trigger插件
- 回到首页,点击
系统管理->插件管理
- 点击
可选插件,搜索Generic Webhook Trigger,然后点击直接安装
- 安装完成后返回首页,点击项目名称,选择
配置
- 点击
构建触发器,选择Generic Webhook Trigger
- 在
Token处填写一个token (不能与其他项目token重复),然后点击保存
git配置hooks(github添加方法类似,在设置中添加)
- 打开git项目页面,选择配置 -> WebHook -> 添加
- 在
URL处填写地址你的jenkins服务器地址:端口/generic-webhook-trigger/invoke?配置的token,例如我的地址就是http://192.168.3.18:8080/generic-webhook-trigger/invoke?token=test-project - 点击保存,后续只要
push代码,jenkins便会自动发布
邮件提醒
构建完成后将结果和log发送到邮箱,以qq邮箱为例,其他邮箱类似
- 在
jenkins插件中搜索Email Extension Plugin安装 (如果搜索不到就去以安装里面搜索下是否已经安装了) - 安装完成后,回到首页,点击
系统管理->系统配置
-
系统管理员邮件地址:填写配置的邮箱地址
-
找到
Extended E-mail Notification选项,填写以下配置- SMTP server:邮箱的SMTP地址,qq邮箱是
smtp.qq.com163邮箱是smtp.163.com,其他邮箱可以自行查找 - Default user E-mail suffix:邮箱后缀
- 点击右下角高级,填写下图配置
配置中
User Name为你的邮箱,Password为你的smtp密码,可以去邮箱设置中查看- Default Content Type:选择
HTML(text/html) - Default Recipients:填写默认收件人
- SMTP server:邮箱的SMTP地址,qq邮箱是
-
配置完成后返回项目设置,选择
构建后操作,点击增加构建后操作步骤,选择Editable Email Notification -
Project Recipient List选项填写你通知的邮箱 -
Attach Build Log选择
Attach Build Log,发送邮件的时候附带构建日志 -
点击
Add Trigger选择Always然后点击保存 -
配置完成后点击保存,然后点击
立即构建就可以测试我们的邮件通知是否能发送成功
结尾
到此我们就完成了jenkins的自动化发布,但是这还只是简单的配置,后续我还会继续写如何发布到远程服务器,正是环境和测试环境区分, node和golang的构建发布。
ps: flutter-weui是使用flutter实现的一个weui组件库,支持安卓,ios(web和桌面也可以)现在已经实现了将近30多个组件,喜欢的赏赐个Star✨✨