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

如何在Jenkins运行流水线时动态创建复制自现有流水线的新流水线

在Jenkins流水线中动态复制现有流水线的实现方案

完全可以在运行中的流水线里动态复制现有流水线创建新任务,核心是利用Jenkins的Groovy脚本能力直接操作内部Job对象,以下是具体实现方案:

核心实现代码

在你的流水线步骤中加入以下Groovy脚本,即可完成复制:

pipeline {
    agent any
    stages {
        stage('动态复制流水线') {
            steps {
                script {
                    // 替换为你的原流水线名称和要创建的新流水线名称
                    def sourceJobName = "原流水线的名称"
                    def targetJobName = "新流水线的名称"

                    // 获取Jenkins实例和原Job对象
                    def jenkins = Jenkins.get()
                    def sourceJob = jenkins.getItem(sourceJobName)

                    if (sourceJob) {
                        // 复制原Job配置并创建新Job
                        def newJob = jenkins.copy(sourceJob, targetJobName)
                        // 保存新Job的配置
                        newJob.save()
                        echo "✅ 已成功复制流水线:${sourceJobName} → ${targetJobName}"
                    } else {
                        error "❌ 未找到指定的原流水线:${sourceJobName}"
                    }
                }
            }
        }
    }
}

关键注意事项

  • 权限要求:执行该流水线的用户需要拥有「创建Job」和「读取原流水线」的权限;如果Jenkins开启了脚本安全模式,需要将Jenkins.get()、jenkins.getItem()、jenkins.copy()这些方法添加到脚本审批列表(路径:Jenkins管理 → 脚本审批)
  • 配置完整性:复制操作会完整继承原流水线的核心配置,但如果原流水线依赖特定插件、凭据或节点标签,需要确保新流水线所在环境具备相同的依赖条件
  • 版本兼容性:该方案基于Jenkins核心API,大部分主流版本(2.x以上)都适用,建议先在测试环境验证后再部署到生产环境

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 20:05:21