Jenkins构建多配置项目

本文参考自Jenkins相关资料,结合本人实际使用状况编写。
相关文档:python

能够解决的问题:

有时,咱们但愿项目可以根据不一样参数、或不一样环境来编译,若使用多个项目来实现,则有些浪费资源,那么最好是能够实现:在一个项目中,就能根据给出的不一样参数来编译不一样版本。
我这里以自定义参数为例。windows

思路

好比当前项目的参数有四种(非完整参数,简单举例而已)ide

python -Purpose test -version 1.0
python -Purpose release -version 1.0
python -Purpose test -version 1.1
python -Purpose release -version 1.1

能够看到 Purpose 和 version 参数是可变的,那咱们能够利用两个变量将以上参数简化为一条:ui

python -Purpose %purp% -version 1.%ver%

其中的 purp 可取值为 testrelease,ver 可取值为 01.spa

有了目标,接下来就是在Jenkins中的应用实践。3d

步骤

一、须要新建一个任务,类型为:构建一个多配置项目(Build multi-configuration project)
这里写图片描述code

二、其余设置与通常任务相同,只是多了一个模块 Configuration Matrix blog

a)在Add axis中,选择User-defined Axis,本例须要两个变量,因此须要再增长一个User-defined Axis
这里写图片描述图片

b)这里定义变量和对应的值,Name中是变量名,Values中是变量可取的值,中间以空格或回车隔开(注意:当可取值比较复杂的时候,建议每一个值用英文双引号隔离,值之间仍以空格、回车隔开),如图,填入前面提过的变量和值,此时 purpver 就是能够在构建参数中直接使用的变量了
这里写图片描述资源

c)这个模块的下方有两个可选项须要注意:

  • Combination Filter
    这个是过滤器,目前咱们定义了两个变量,也就是说最后会获得 2*2=4 个版本,而有时咱们并不想拿到全部组合的版本,那么这个过滤器就能够起做用了,好比咱们不想编译 python -Purpose test -version 1.1这个版本,过滤方法如图。
    BTW,当有多个版本要过滤时,可使用括号和 || 分隔,如:
    (purp == "test" && ver != "1") || (purp == "test" && ver != "0")
    这里写图片描述
  • Run each configuration sequentially
    这个是指定全部版本要按顺序编译,建议勾选

三、构建参数
以上咱们已经获得所需变量,那就能够在构建中写入完整的参数配置,这里选择的是Windows 批处理命令(注意:使用变量的方式因命令而异,好比windows下的变量使用%,因此这里用的是 %purp%%ver%

python -Purpose %purp% -version 1.%ver%
这里写图片描述

四、保存后,查看项目,有一个参数矩阵,经过圆球能够对每一个版本的构建结果一目了然(注意这里的0和1是咱们刚刚定义的变量值,不是序号)
这里写图片描述

相关文章
相关标签/搜索