jenkins - 如何简单地执行键的值,其中值是元素列表,每个元素执行应该在jenkins groovy中并行执行
问题描述
我有如下的json {
“数据1”:[“苹果”,“芒果”,“葡萄”],“数据2”:[“猕猴桃”,“木瓜”]
}
我想执行为
node{
stage1 {
// Here I need to get values of key ("data1") and execute each element of the list in parallel
}
stage2 {
// Here I need to get values of key ("data2") and execute each element of the list in parallel
}
}
解决方案
所以parallel
需要一个Map<String, Closure>
(其中字符串是日志中显示的步骤的标签,闭包是执行的操作)。在您的情况下,您有一个列表并希望将其转换为地图。您可以使用 for 循环或使用collectEntries函数来执行此操作。
data = [data1: ["apple","mango","grapes"], data2: ["kiwi","papaya"]]
node {
stage("stage1"){
parallel data.data1.collectEntries{fruit -> [fruit, { println("processing $fruit") }]}
}
}
如果你运行它,它将输出:
[apple] processing apple
[mango] processing mango
[grapes] processing grapes
推荐阅读
- apache-spark - 如何在 Kubernetes 上向 Spark 发送作业。无法实例化外部调度程序
- tmux - 如果客户端的屏幕尺寸太小,有没有办法拒绝客户端连接到 tmux?
- xcode - 如何防止 CI 因构建编号冲突而陷入循环?
- tfs - TFS 搁置集/门控签入失败:TF400898:发生内部错误
- ruby-on-rails - 如何修改文件的目录名/路径?
- ios - SIGSEGV 崩溃:com.apple.root.default-qos
- cairo - 很棒的 WM:径向渐变是如何工作的
- python - .loc[index, col] 和 .loc[index][col] 有什么区别?
- python - How to make new window in pygame?
- android - Kotlin/Java 继承和接口