Jenkins -声明式管道-矩阵单元格中的多个键值对

vwoqyblh  于 2023-06-21  发布在  Jenkins
关注(0)|答案(2)|浏览(118)

我正在构建一个Jenkins声明式管道。
下面是我尝试做的要点(作为一个任意的例子)-
1.这里有一个平台列表。为了可读性和并行性,我把它们放在一个矩阵单元中。
1.他们每个人都有一个相关的浏览器。
我希望执行矩阵,以便每个键值列表一起迭代。
例如-

Platforms = ["Windows", "Mac", "Linux"]
Browsers = ["Edge", "Chrome", "Firefox"]

I want the output stages to have these pairings for (Platforms,Browsers)-
    [("Windows", "Edge"),("Mac", "Chrome"),("Linux", "Firefox")]

在实际的例子中,这个列表有12个长,所以我不想用when指令定义太多的stage来手动配对这些值,因为在这些stage中,其他的东西都是一样的。
有没有更好的办法,或者更好的方法?

bt1cpqcv

bt1cpqcv1#

我也在寻找一种更好的方法来在声明性管道中做到这一点。到目前为止,我已经发现了下面的例子和解决方案。
从技术上讲,您可以将脚本化的管道 Package 在script块中,但这违背了声明性管道imo的目的。

他们为此创建了一个问题,但不确定实施时间。

ny6fqffe

ny6fqffe2#

您可以使用excludes块来处理这个问题,但它不是特别漂亮。

matrix {
  axes {
    axis {
      name 'PLATFORM'
      values 'Windows', 'Mac', 'Linux'
    }
    axis {
      name 'BROWSER'
      values 'Edge', 'Chrome', 'Firefox'
    }
  }
  excludes {
    // Exclude any pairs that have PLATFORM == Windows, BROWSER != Edge
    exclude {
      axis {
        name 'PLATFORM'
        values 'Windows'
      }
      axis {
        name 'BROWSER'
        notValues 'Edge'
      }
    }
    // repeat for each expected pair
  }
}

相关问题