我在詹金斯有一份运行蚂蚁脚本的工作.我很容易设法使用"多配置项目"在多个软件版本上测试这个ant脚本.
这种类型的项目非常酷,因为它允许我指定我需要的两个软件的所有版本(在我的例子中是Java和Matlab),它将运行我的ant脚本以及我的参数的所有组合.
然后将这些参数用作字符串,以便在我的ant使用的可执行文件的位置定义中连接.
示例:env.MATLAB_EXE =/usr/local/MATLAB/$ {MATLAB_VERSION}/bin/matlab
这是完美的工作,但现在我正在将此脚本迁移到它的pipline版本.
我设法使用参数化管道插件以管道方式实现相同的脚本.有了这个,我实现了我可以手动选择我将使用哪个版本的软件的点,如果我手动触发构建,我还找到了一种方法来执行此操作,定期在每次运行时选择我想要的参数.
这个解决方案似乎相当有效,但并不令人满意.
我的多配置项目有一些功能,但这不是:
所以我想知道是否有更好的解决方案可以满足上述要点.
长话短说:有没有办法在jenkins中实现多配置项目,但使用管道技术?
我想寻求有关 Jenkins Groovy 管道的帮助,从这里复制: Is it possible to createparallel Jenkins Declarative Pipeline stages in a loop?
我希望在并行运行的几个阶段中在地图下传递几组变量。但是,只有最后一组(地图底部的方括号)会在我的地图中注册。
当并行阶段运行时,映射会成功迭代,但仅限于最后一组(当前install_Stage(it)),忽略其他组。这意味着我得到了一个"stage: install ${product}"并行显示四个阶段的管道,仅此而已。我想通过四个阶段(网络设置、恢复和安装)获得三个并行,按照下面的代码:
#!groovy
@Library('ci_builds')
def products = ["A", "B", "C", "D"]
def parallelStagesMap = products.collectEntries {
switch (it) {
case "A":
static_ip_address = "10.100.100.6"; static_vm_name = "install-vm1"; version = "14.1.60"
break
case "B":
static_ip_address = "10.100.100.7"; static_vm_name = "install-vm2"; version = "15.1"
break
case "C":
static_ip_address = "10.100.100.8"; static_vm_name = "install-vm3"; version = "15.1" …Run Code Online (Sandbox Code Playgroud)