相关疑难解决方法(0)

詹金斯管道多配置项目

原始情况:

我在詹金斯有一份运行蚂蚁脚本的工作.我很容易设法使用"多配置项目"在多个软件版本上测试这个ant脚本.

这种类型的项目非常酷,因为它允许我指定我需要的两个软件的所有版本(在我的例子中是Java和Matlab),它将运行我的ant脚本以及我的参数的所有组合.

然后将这些参数用作字符串,以便在我的ant使用的可执行文件的位置定义中连接.

示例:env.MATLAB_EXE =/usr/local/MATLAB/$ {MATLAB_VERSION}/bin/matlab

这是完美的工作,但现在我正在将此脚本迁移到它的pipline版本.

管道迁移:

我设法使用参数化管道插件以管道方式实现相同的脚本.有了这个,我实现了我可以手动选择我将使用哪个版本的软件的点,如果我手动触发构建,我还找到了一种方法来执行此操作,定期在每次运行时选择我想要的参数.

这个解决方案似乎相当有效,但并不令人满意.

我的多配置项目有一些功能,但这不是:

  1. 使用多个参数,我可以设置内插它们并执行每个组合
  2. 执行清楚地分开,并且在构建历史/构建细节中很容易识别已经使用了哪些设置
  3. 只是在参数中添加一个新的"可能"值就会产生所需的执行

请求

所以我想知道是否有更好的解决方案可以满足上述要点.

长话短说:有没有办法在jenkins中实现多配置项目,但使用管道技术?

jenkins jenkins-pipeline

7
推荐指数
2
解决办法
5068
查看次数

迭代 Jenkins Groovy 映射,具有多个集合

我想寻求有关 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)

groovy jenkins jenkins-groovy jenkins-pipeline

1
推荐指数
1
解决办法
6186
查看次数