首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态并联管道

动态并联管道
EN

Stack Overflow用户
提问于 2022-04-27 16:56:11
回答 1查看 373关注 0票数 0

我有一个Jenkins管道,在这里我创建了一些动态的steps,我想知道如何在parallel中运行所有的步骤。

由于我使用script将字符串拆分为迭代数组,所以parallel似乎在抱怨,因为它必须在stage标记之间。

这里是一个代码示例

代码语言:javascript
复制
    stages {
        stage('BuildAll') {
                script {
                    parallel {
                        "${names}".split(",").each { name->
                            stage(name) {
                                sh "env | grep -i NODE_NAME"
                            }
                        }
                    }
            }
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-28 07:26:48

由于在parallel指令中运行的是script函数,所以必须对并行函数使用脚本化的语法:

获取从分支名称到闭包的映射和一个可选参数failFast,该参数>将在任何其他分支发生故障时终止所有分支: 并行firstBranch:{ //做某事},secondBranch:{ //做其他的事情},failFast: true=false false

因此,您可以使用collectEntries方法对列表进行迭代,并生成传递给并行函数的Map。类似于:

代码语言:javascript
复制
stages {
    stage('BuildAll') {
        steps {
            script {
                parallel names.split(',').collectEntries { name ->
                    ["Execution ${name}": {   // Map key is the branch name
                        // Following code will be executed in parallel for each branch
                        stage(name) {
                            sh "env | grep -i NODE_NAME"
                        }
                    }]
                }
            }
        }
    }
}

另一种选择是定义映射,然后调用并行:

代码语言:javascript
复制
stages {
    stage('BuildAll') {
        steps {
            script {
                def executions = names.split(',').collectEntries { name ->
                    ["Execution ${name}": {
                        stage(name) {
                            sh "env | grep -i NODE_NAME"
                        }
                    }]
                }
                parallel executions
            }
        }       
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72032637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档