现状
选用gitlab ci作为持续集成工具
通过分支管理不同阶段版本,dev, alpha, beta, release
每次推送,自动代码检视,sonar,编译和部署,可以通过
[ci skip]
跳过编译
问题
根据分支编译,容易在不同分支改动,来回合并容易冲突,不好管理
不同版本阶段编译脚本非常类似,但每次都要写,改变一个,需要复制粘贴到其它分支编译脚本,容易出错
每次推代码都会自动编译部署,没有有环节控制,比如何时部署,何时不部署,部署到哪
环境变量应该在部署的时候增加进去,编译只负责打包
war包的控制性不好,可以打成tgz包,这样在部署前还可以更改包内的内容,并可以做文件比较,检验,插入文件等操作
部署和编译是相同的docker镜像,不好控制
优化目标
- 脚本文件做主要的编译,环境变量区分不同版本编译
- 根据trigger触发编译不同的版本,而不是通过分支控制
- 根据trigger触发部署,而不是自动部署,部署需授权
操作方法
- 使用脚本文件加环境变量的方式控制编译