You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在声明式Jenkins Pipeline单阶段并行运行多slave代理拷贝制品

Jenkins多Slave代理并行拷贝制品最优方案

你之前使用&&拼接标签的方案属于用法错误:Jenkins标签表达式里的&&是要求目标节点同时具备所有指定标签,而非让任务同时运行在多个标签对应的节点上,因此会触发找不到对应节点的报错。
你最初手写多并行阶段的逻辑是正确的,只是冗余度高,通过动态生成并行阶段的方式即可解决重复编码问题。

实现方案

通过Groovy脚本动态生成并行阶段配置,无需手动编写10个子阶段,代码示例如下:

pipeline {
    agent none
    stages {
        stage ('Copy Artifacts to All Agents') {
            steps {
                script {
                    // 这里填写所有需要执行拷贝的Slave标签列表,10台直接加10个元素即可
                    def agentLabels = [
                        "BS-QA-Agent-7",
                        "BS-QA-Agent-6",
                        // 剩余8个代理标签按同样格式补全即可
                        "BS-QA-Agent-5",
                        "BS-QA-Agent-4"
                    ]
                    // 生成并行阶段映射
                    def parallelStages = agentLabels.collectEntries { label ->
                        ["Run on ${label}" : {
                            node(label) {
                                stage("Copy to ${label}") {
                                    copyArtifacts projectName: "${BUILDPROJECT}", selector: lastSuccessful(), target: 'artifacts'
                                }
                            }
                        }]
                    }
                    // 执行所有并行阶段
                    parallel parallelStages
                }
            }
        }
    }
}

注意事项

  • 该方案和你手动编写多并行阶段的执行效果完全一致,所有代理会同时执行制品拷贝操作
  • 只需维护agentLabels列表即可,新增/移除代理无需修改核心执行逻辑,冗余度极低
  • 需提前确认Copy Artifact插件已安装,且对应任务的制品拷贝权限已开通

内容的提问来源于stack exchange,提问作者Ashik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:36:05