我试图重命名哈德森/詹金斯的工作。但是它无法重命名。
有什么办法可以重新命名这份工作吗?
答案 0 :(得分:62)
您可以按照以下步骤通过jenkins UI重命名所选作业:
job>configure>Advanced Project Options>Display Name
其他方法是重命名Jenkins/hudson
服务器上的目录,然后restart
Jenkins
。
答案 1 :(得分:16)
为了完整起见,想要使用Groovy script console提及Hudson作业名称的更新:
// Groovy script to rename job in Hudson
import hudson.model.*;
def JOB_PATTERN = ~/^MY_JOB.*$/; //find all jobs starting with "MY_JOB".
def NEW_PART = "_NEW"
(Hudson.instance.items.findAll { job -> job.name =~ JOB_PATTERN }).each { job_to_update ->
println ("Updating job " + job_to_update.name);
def new_job_name = job_to_update.name + NEW_PART; //Append new part to the job name
println ("New name: " + new_job_name);
job_to_update.renameTo(new_job_name);
println ("Updated name: " + job_to_update.name);
println("="*80);
}
如果您需要同时更新几十个作业,那就非常有用了。
注意:以下代码无效:
job_to_update.name = new_job_name;
job_to_update.save();
将作业名称设置为新并保存配置不会重命名当前作业,而是使用新名称创建作业配置的副本。此外,在这种情况下,可能存在损坏的引用,因此Hudson将需要重新加载配置。
答案 2 :(得分:11)
重命名作业的常规方法:
转到配置屏幕,然后在顶部编辑项目名称字段。然后点击保存,然后点击是进行确认。 (不点击保存旁边的应用按钮,会出现错误消息:JENKINS-17474)
更改显示名称不会重命名作业,只会更改其显示方式。例如,它仍会通过搜索框以原始名称找到,并且也会显示在网址中。
实际上不需要重命名文件系统级别的目录。
答案 3 :(得分:6)
为了快速理解,我使用了一些屏幕截图:
我使用的是詹金斯版本:2.148
第1步:
在主屏幕/任务列表上,只需单击任务选项即可。
OR
只需打开Job详细信息,您就会看到左侧的重命名选项。
第2步:
输入新名称,然后点击重命名按钮
答案 4 :(得分:4)
copy from
现有作业。copy from
您要重命名的作业。现在你有一个不同名字的相同工作。
答案 5 :(得分:1)
根据要求,我通常选择:
工作> 配置 - 修改项目名称属性 - 高级项目选项,点击高级... ,设置显示名称的值
然后保存作业。无需在文件系统级别重命名。
答案 6 :(得分:1)
我不能让Marc的脚本工作,所以根据Disable all jobs脚本编写一个脚本,如下所示。这是用“Findur.OpenComponent”将任何项目重命名为“Findur.OpenComponents”。
import hudson.model.*
renameChildren(Hudson.instance.items)
def renameChildren(items) {
for (item in items) {
if (item.class.canonicalName != 'com.cloudbees.hudson.plugins.folder.Folder') {
if (( m = item.name =~ /^(Findur.OpenComponent)(\..*)$/)){
println(item.name)
println m.group(1) + " " + m.group(2)
newname = m[0][1] + 's' + m.group(2)
item.renameTo(newname)
}
} else {
renameChildren(((com.cloudbees.hudson.plugins.folder.Folder) item).getItems())
}
}
}
答案 7 :(得分:0)
使用函数Job.previousNames()
在[作业生成器](作业生成器插件)(工厂)中使用Groovy脚本重命名多个作业。
以下示例将作业ci.*_2
重命名为ci.*
(它会删除尾随的_2
)。
[
[env: '01', hostname: 'host01.intranet'],
[env: '02', hostname: 'host02.intranet'],
[env: '03', hostname: 'host03.intranet'],
[env: '04', hostname: 'host04.intranet'],
[env: '05', hostname: 'host05.intranet'],
[env: '06', hostname: 'host06.intranet'],
[env: '07', hostname: 'host07.intranet'],
[env: '08', hostname: 'host08.intranet'],
[env: '09', hostname: 'host09.intranet'],
[env: '10', hostname: 'host10.intranet'],
[env: '11', hostname: 'host11.intranet'],
[env: '12', hostname: 'host12.intranet'],
[env: '13', hostname: 'host13.intranet'],
[env: '14', hostname: 'host14.intranet'],
[env: '15', hostname: 'host15.intranet'],
[env: '16', hostname: 'host16.intranet'],
[env: '17', hostname: 'host17.intranet'],
[env: '18', hostname: 'host18.intranet'],
[env: '19', hostname: 'host19.intranet'],
[env: '20', hostname: 'host20.intranet'],
].each { Map config ->
job("ci.${config.env}") {
previousNames("ci.${config.env}_2")
description("Continuous Integration on host ${config.env}")
logRotator {
numToKeep(5)
daysToKeep(45)
}
label('build')
wrappers {
colorizeOutput('gnome-terminal')
}
}
}