背景

前端采用nodejs的方式生成静态的网站文件,此时前端本地环境调试成功,只要将代码提交到git上,交给jenkins进行构建即可。那么jenkins也是需要nodejs环境的

说白了就是 本地机器构建好了,还要打包到项目的服务器,此时耗费很多时间,不如直接在jenkins网页构建,让jenkins完成构建,打包到项目的服务器,节省了很多时间

jenkins不光可以完成构建,还可以显示构建时间、回滚项目

添加主机机器

系统管理(左侧栏)-系统设置

此时可以填写机器名,建议Remote Directory使用/目录,因为如果你一个机器有多个途径,/data/product用于后端,/data/web用于前端主目录,但是当你填写/data/product此时这台机器只能使用该目录,想要用/data/web只能重新修改该目录,或者新增一台

前端发布 - 图1

高级功能,设置 ssh端口密码、超时

前端发布 - 图2

新建job任务

创建一个自由风格的job任务

前端发布 - 图3

General通用

1.丢弃旧的构建

  • 保持构建的天数:7
  • 保持构建的最大个数:5

保持天数可以为空,然后构建个数为5。反之也可以,2个同时存在意义就不知道了。肯定是优先保持最大个数5个

2.参数化构建过程

  • branch分支:master、dev等分支,由开发提供
  • ENV环境:可以给机器打标签
  • job:发布的项目名
  • Status状态:发布与回滚
  • Version回滚的版本

前端发布 - 图4

前端发布 - 图5

前端发布 - 图6

分支设置

可以密码、也可以公钥方式进行登录验证,这样使用变量branch由构建参数负责,这样就可以打不同分支master、dev

前端发布 - 图7

环境设置

1.jenkins命令行终端安装nodejs构建环境

  1. npm install -g n #模块n,是专门用来管理node.js的版本
  2. n stable #升级到最新稳定版本
  3. n v6.11.5 #安装指定版本

2.设置nodejs环境

前端发布 - 图8

构建

前端发布 - 图9

构建后

构建后是jenkins构建项目好了之后该做的处理,当然是将构建好的包传到服务器

jenkins构建目录是/var/lib/jenkins/workspace,当前job名为web-dist,那么他实际的目录是/var/lib/jenkins/workspace/web-dist,此时jenkins的主目录就在这样,Source files和Remove prefix是基于此时的job目录的

  • Source files:是jenkins的文件,web/dist.tgz
  • Remove prefix:是jenkins当前目录,web/
  • Remote directory:当前机器的工作目录,如果你在添加主机时使用/data/product目录,那么该目录是主目录,你想把包传递到/data/product/jar-back,那么此时目录是写jar-back就可以了。
  • Exec command:当前机器执行脚本

前端发布 - 图10

此时可以通过label标签来标识环境,如test、uat、prod、prod-3

当我们在uat环境测试完成功之后,确认无误需要将新的更新推送到生产,但是为了更加准确的模拟生产环境,所以有一个灰度环境

生产是通过负载均衡的地址,如果我们有3台生产机器,只要把第三台为0,让其他2台机器工作,由我们自己使用第三台机器来进行灰度测试。

常见的环境

  • test测试环境
  • uat准测试环境
  • prod生产环境
  • prod-3生产第三台机器

高级

前端发布 - 图11

前端发布 - 图12


瓦雀