背景
JAVA使用maven、Gradle构建打包,所以只要给jenkins安装该软件,然后拉git上的代码构建完成,把包传到项目的服务器
省去了开发手动上传到项目服务器,这样打包效率快很多
jenkins不光可以完成构建,还可以显示构建时间、回滚项目
添加主机机器
系统管理(左侧栏)-系统设置
此时可以填写机器名,建议Remote Directory
使用/目录,因为如果你一个机器有多个途径,/data/product用于后端,/data/web用于前端主目录,但是当你填写/data/product此时这台机器只能使用该目录,想要用/data/web只能重新修改该目录,或者新增一台
高级功能,设置 ssh端口密码、超时
安装工具
Jenkins->全局工具配置
可以询问开发,当前他电脑的版本,然后给服务器安装一样的版本即可
可以自己安装,然后填写地址,也可以自动安装(可能网络问题安装失败)
也可以搞成变量的方式,例如这个是gradle名称,可以方便于不同多版本打包
新建job任务
创建一个自由风格的job任务
General通用
1.丢弃旧的构建
- 保持构建的天数:7
- 保持构建的最大个数:5
保持天数可以为空,然后构建个数为5。反之也可以,2个同时存在意义就不知道了。肯定是优先保持最大个数5个
2.参数化构建过程
- branch分支:master、dev等分支,由开发提供
- ENV环境:可以给机器打标签
- job:发布的项目名
- Status状态:发布与回滚
- Version回滚的版本
源码管理
可以密码、也可以公钥方式进行登录验证,这样使用变量branch由构建参数负责,这样就可以打不同分支master、dev
构建触发器
构建环境
Pre Steps
Build
clean install -pl app-version/web -am -Dmaven.test.skip=true
构建后
构建后是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:当前机器执行脚本
此时可以通过label标签来标识环境,如test、uat、prod、prod-3
当我们在uat环境测试完成功之后,确认无误需要将新的更新推送到生产,但是为了更加准确的模拟生产环境,所以有一个灰度环境
生产是通过负载均衡的地址,如果我们有3台生产机器,只要把第三台为0,让其他2台机器工作,由我们自己使用第三台机器来进行灰度测试。
常见的环境
- test测试环境
- uat准测试环境
- prod生产环境
- prod-3生产第三台机器
高级