使用Jenkins实现前端自动化发布和通知,让你的发布只需要git push

3,528

以前我们在发布项目时都要手动进行打包,然后使用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:填写默认收件人
  • 配置完成后返回项目设置,选择构建后操作,点击增加构建后操作步骤,选择Editable Email Notification

  • Project Recipient List选项填写你通知的邮箱

  • Attach Build Log选择Attach Build Log,发送邮件的时候附带构建日志

  • 点击Add Trigger选择Always然后点击保存

  • 配置完成后点击保存,然后点击立即构建就可以测试我们的邮件通知是否能发送成功

结尾

到此我们就完成了jenkins的自动化发布,但是这还只是简单的配置,后续我还会继续写如何发布到远程服务器正是环境和测试环境区分, nodegolang的构建发布。

ps: flutter-weui是使用flutter实现的一个weui组件库,支持安卓,ios(web和桌面也可以)现在已经实现了将近30多个组件,喜欢的赏赐个Star✨✨