背景

JAVA使用maven、Gradle构建打包,所以只要给jenkins安装该软件,然后拉git上的代码构建完成,把包传到项目的服务器

省去了开发手动上传到项目服务器,这样打包效率快很多

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

添加主机机器

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

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

后端发布 - 图1

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

后端发布 - 图2

安装工具

Jenkins->全局工具配置

可以询问开发,当前他电脑的版本,然后给服务器安装一样的版本即可

可以自己安装,然后填写地址,也可以自动安装(可能网络问题安装失败)

后端发布 - 图3

也可以搞成变量的方式,例如这个是gradle名称,可以方便于不同多版本打包

后端发布 - 图4

新建job任务

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

后端发布 - 图5

General通用

1.丢弃旧的构建

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

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

2.参数化构建过程

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

后端发布 - 图6

后端发布 - 图7

后端发布 - 图8

源码管理

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

后端发布 - 图9

构建触发器

后端发布 - 图10

构建环境

后端发布 - 图11

Pre Steps

后端发布 - 图12

Build

clean install -pl app-version/web -am -Dmaven.test.skip=true
后端发布 - 图13

构建后

构建后是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:当前机器执行脚本

后端发布 - 图14

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

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

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

常见的环境

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

高级

后端发布 - 图15

后端发布 - 图16


瓦雀