在日常的工作当中,会有许许多多的测试环境,一个项目往往会有很多的子系统,子系统之间是通过不同的项目单独进行构建。比如下面我们公司的场景:
我们有branches、branchesv2、branchesv3、branchesv4、tags5个测试环境,每一个测试环境中会有
www.abc.com
h5.abc.com
m.abc.com
vip.abc.com
orderapi.abc.com
pics.abc.com
以上各个系统,而且一直在做加法,面对如此多的测试环境,对于运维工作是一个很大的挑战。

PS:特殊需求,针对我们交付后的测试环境必须对代码进行冻结,不能将代码构建到交付环境

具体需求点:
1.需要适应环境的变化,动态调整测试环境
2.快速更新每个子系统的参数配置

方案:
1.采用K8S的命名空间增加或者销毁测试环境
2.集中管理jenkins参数来源

集中管理jenkins参数有以下几种方案:
1.通过SVN目录来动态获取(list subversion tags插件)
2.通过Extended Choice Parameter中配置文件进行管理

通过对比我们发现SVN动态获取比较麻烦,需要依赖SVN。对此我们选择了配置文件的方案。
1.首选我们在新建一个c:\conf\jks.conf配置文件作为参数的配置,文件内容如下:
envs=branches,branchesv2,branchesv3,branchesv4,tags

2.jenkins如果没有安装Extended Choice Parameter,需要单独安装一下

3.在项目的配置中选择This project is parameterized,同时选择Extended Choice Parameter

Jenkins参数化构建之集中管理参数

点击保存即可。

4.构建的时候就可以选择
Jenkins参数化构建之集中管理参数

只要编辑c:\conf\jks.conf文件中的参数即可达到修改构建环境。