[关闭]
@CYTand 2018-07-25T09:51:31.000000Z 字数 1355 阅读 2474

Jenkins 多配置项目(Multi-configuration project)

Jenkins

若本文为离线html文件,则阅读体验略差,建议阅读原文~
原文链接:https://www.zybuluo.com/CYTand/note/1217854

原参数:

@rem 参数为目标文件最终部署到服务器什么位置的问题,不同job会有不同,所以源代码中不应关心,由配置管理员单独配置
@rem jenkinsbuild.bat E:\Jenkins_Release\%JOB_NAME% human test
powershell -command Set-ExecutionPolicy RemoteSigned
powershell platform\build.by.args.ps1 -Output Y:\vm-jenkins3CI\%JOB_NAME% -Purpose human -Release test -JobName %JOB_NAME% -Tool vs2017 -QtVer 5.9 -Packing packing -BuildNum %BUILD_NUMBER% -DateTime %BUILD_ID% -SvnVer %SVN_REVISION% -SFDAVer 2.2.0 -FDAVer 1.0.0 -CEVer 2.2.0 -DebugScript 0 -UnitTest yes -Product us66

思路

1、需要重新建立一个项目,类型为 Multi-configuration project

2、其他设置不变,只需要在 Configuration Matrix 模块中设定变量及可选值,比如我们参数中常需要更改的两个参数是 PurposeRelease(参数中标粗的字串),那就把这两个当成可选参数;(Todo:其实版本号也应该要改,而且需要跟着purpose走,人用 尾数.0、兽用尾数 .1,再看看用什么形式改更简单);
如增加
• 第一个:
name: purpose
value: human vet
• 第二个:
name: release
value: test release

注意:一定要勾选按顺序执行

3、那原参数中,human和test的位置就可以使用 %purpose%%release% 替换即可

4、这样的话会在一个build中构建四次,因为 2*2=4,分别生成:人用test、人用release、兽用test、兽用release,但实际上我们可以不需要生成这么,多,那就可以使用过滤器去除不需要的构建就行,比如归档时我们不需要 兽用 test,可以在 filter中使用 purpose=="vet" && release != "test" 过滤掉

解决done:其实版本号也应该要改,而且需要跟着purpose走,人用 尾数.0、兽用尾数 .1,再看看用什么形式改更简单;

可以增加一个version变量,值为 0 和 1 ,那就把每个版本号的尾数替换为 %version%

通过过滤器筛选出要编译的版本:

( purpose == "human" && release == "release" && version == "0" ) 
|| ( purpose == "human" && release == "test" && version == "0" )
|| ( purpose == "vet" && release == "release" && version == "1" )


添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注