Jenkins构建多配置项目

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

可以解决的问题:

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

思路

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

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 参数是可变的,那我们可以利用两个变量将以上参数简化为一条:

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

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

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

步骤

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

2、其他设置与一般任务相同,只是多了一个模块 Configuration Matrix

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
    这个是指定所有版本要按顺序编译,建议勾选

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

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

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

posted @ 2018-07-24 20:30  CYTyeah  阅读(4871)  评论(1编辑  收藏  举报