如何在 Jenkins 中克隆工作?
Posted
技术标签:
【中文标题】如何在 Jenkins 中克隆工作?【英文标题】:How do I clone a job in Jenkins? 【发布时间】:2014-07-13 08:18:49 【问题描述】:Jenkins
具有 Gerrit
插件,因此当我们签入到 Gerrit
时,Jenkins
执行构建,如果成功,则验证 Gerrit
中的修改。如果构建失败,那么它不是。我的理解是,这是通过在Jenkins
中设置的工作来完成的。我们现在创建了一个新分支 (git
),我想我需要克隆指向另一个分支的现有作业,以便发生相同的工作流并在每次提交时执行构建。有人可以解释我如何克隆这些工作吗?我似乎看不到通过 UI 完成此任务的方法,我什至看不到通过 UI 列出作业的方法。
【问题讨论】:
您应该能够将“复制现有工作”作为“新工作”页面上的选项之一。见***.com/questions/3133537/… 【参考方案1】:要复制现有作业,请转到http://your-jenkins/newJob
并使用“复制现有作业”选项。输入现有作业的名称 - Jenkins 将验证它是否存在。
Jenkins首页的默认选项卡应该列出所有现有的工作,但可能你的前任删除了该选项卡。您可以创建一个新选项卡,列出来自http://your-jenkins/newView.
的所有工作
【讨论】:
请注意,在复制现有作业时,您需要提供名称(访问作业时不编码为 url),因此如果作业名称中有空格,它们将被保留。很快,只放工作的原始 name,别无其他。 安装 ez-template 插件后,将“复制现有作业”应用于模板或使用模板的作业创建依赖于模板的新作业。如果你真的想要一个独立的副本,你可以删除Use another job as a template
配置。【参考方案2】:
您可以克隆作业:
-
点击“新项目”链接
给你的工作起一个新名字
选择单选按钮“复制现有项目”
提供您要克隆的作业名称
点击“确定”
最后,您有了新工作,它反映了克隆工作的所有特征。
【讨论】:
【参考方案3】:詹金斯 2.9
Jenkins > 新项目
输入项目名称 - 例如“我的克隆”
指定源(从复制)作业 > 确定
当您开始输入名称时,将找到现有值。请注意,这是区分大小写的。
如果要保留默认值,请单击保存。
现在这两个工作都在同一个位置:
【讨论】:
图片值一千字。找不到我一生的小下拉菜单。穆尔苏米里【参考方案4】:New Item
>Project Name
= abc
> 选择Freestyle job
,而不是Copy from job name of already existing jobs
如果您位于要从目录中复制出来的文件夹中,请使用../
。
【讨论】:
感谢../
【参考方案5】:
如果您想在同一个 Jenkins 中复制但在不同的子文件夹中,请创建新项目 -> 使用复制来源。新作业将被克隆到同一目录中。然后使用 move 选项将其移动到所需目录中
【讨论】:
这是我用的。仅仅复制到同一个文件夹通常是不够的。谢谢!【参考方案6】:以上所有答案都很好。但是,如果您已经为您的工作创建了“文件夹”,那么情况会略有不同。
单击要在其下创建新作业的文件夹。然后单击左侧菜单上的“新建项目”。现在您的“新工作”URL 将如下所示(假设您在“我的文件夹”下创建新工作):
http://my-jenkins:8080/job/my-folder/newJob
在Enter an item name
下,输入您想要的新工作名称。
然后使用底部的Copy from
文本框。输入源作业的作业路径。
例如如果您的源作业位于文件夹 src-folder
下且作业名称为 src-job
,则您必须在“复制自”框中输入 src-folder/src-job
。
希望对你有帮助。
【讨论】:
我仍在尝试找到一种跨文件夹结构复制作业的方法:詹金斯为每个作为文件夹的新项目添加文字“作业”,例如我在 localhost:8080/job/x/job/y/job_1 有一份工作,其中 x 和 y 是文件夹。 job_1 是真正的工作。如何将此作业复制到 localhost:8080/job/x/job/z/job_1?我尝试了所有对源作业的引用,但没有成功。 转到localhost:8080/job/x/job/y/job_1
。在该页面上,您应该看到Full project name
。指定来源时尝试使用它。
如果您有两个文件夹folder1
和folder2
在同一级别,并且您想将folder1\job1
复制到folder2\job1
,您可以在文件夹folder2
中创建一个新项目,然后使用..
返回文件夹结构并复制../folder1/job1
。【参考方案7】:
就我而言,我必须将作业从一个 jenkins 实例复制到另一个实例。
所以首先我查看了旧 Jenkins 的目录结构(作业/目录名称;还注意到了 config.xml),然后在新 jenkins 的目录结构下创建了一个具有相同名称/作业的目录并复制到这个新创建的目录下的 config.xml。
然后在“管理 Jenkins”下,点击“从磁盘重新加载配置”。就是这样。
【讨论】:
感谢“从磁盘重新加载配置”提示! 是的,当我必须批量复制几个项目时这样做,在“从磁盘重新加载”之前,您还可以在 CLI 中执行一些必要的手动魔术,例如搜索/替换一些参数、文本片段, config.xml 中的等。请注意,config.xml 所在目录的名称就是你的 Job 的名称(因此,如果与 Rohit 不同,你需要创建一个新的 Job,只需给它一个不同的名称即可)。跨度> 在我看来,当你有多个文件夹,里面有很多作业时,这是最好的选择。【参考方案8】:您也可以使用Copy project link 插件。
这将在项目的左侧面板上添加一个链接:
以下屏幕将要求输入新的作业名称:
【讨论】:
【参考方案9】:创建一个新项目并转到最后一个您会发现从现有复制的选项,只需写下您当前的工作名称,您就可以使用该项目的克隆。
【讨论】:
【参考方案10】:我无法从子文件夹中复制 Jenkins 作业。 copy from
选项未显示我正在寻找的建议。不使用建议复制作业名称不起作用。
因此,如果您想从外部文件夹创建作业,您需要先在子文件夹中创建作业,然后将其移动到您需要放置的不同文件夹中。
【讨论】:
【参考方案11】:你可以使用Jobcopy Builder plugin
【讨论】:
【参考方案12】:这里的所有答案都非常有帮助,但错过了一个关于 Jenkins 的非常奇怪的错误。编辑新作业配置后,有时如果缩放级别太高,您可能看不到 save
或 apply
按钮选项。该按钮出现在页面上并被您的缩放级别隐藏,您必须缩小直到看到页面左下方的按钮。
奇怪,我知道!
【讨论】:
以上是关于如何在 Jenkins 中克隆工作?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Jenkins 中通过 *** 拉取/克隆 git 存储库?
jenkins-github 克隆失败,没有 kex alg 错误