以前我们在发布项目时都要手动进行打包,然后使用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.com
163邮箱是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✨✨