在詹金斯重命名工作/哈德森

问题描述 投票:27回答:8

我曾试图重命名哈德森/詹金斯工作。然而,它未能重命名。

有没有什么办法让我可以重新命名工作?

jenkins hudson
8个回答
62
投票

您可以按以下步骤通过重命名詹金斯UI选择的作业:

job>configure>Advanced Project Options>Display Name

另一种方法是重命名Jenkins/hudson服务器上的目录,然后restartJenkins


16
投票

只是为了完整起见,要提使用Groovy script console哈德森作业名称的更新:

// 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();

作业的名称设置为新的和保存的配置不会重新命名当前的工作,但创建工作配置的副本以新名称。此外,在这种情况下,有可能是断开的引用,所以哈德森将需要有配置重新加载。


11
投票

以正常的方式重命名工作:

转至配置屏幕和编辑权限顶部的项目名称字段。然后点击保存并点击确认是以。 (不要点击Next保存应用按钮,会给你一个错误信息:JENKINS-17474

更改显示名称不会重命名工作,它只改变它的显示方式。它仍然是在它原来的名字通过例如在搜索框中找到,这也将在url中出现。

在文件系统级别重命名目录应该真的没有必要。


8
投票

对于快速理解我使用了一些截图:

我用詹金斯版本:2.148

第1步:

在主屏幕/工作列表只需点击任务选项。

enter image description here

要么

只需打开任务的详细信息,您会看到重命名左侧选项。

enter image description here

第2步:

输入新的名称,只要按一下按钮,重命名

enter image description here


4
投票
  1. 创建一个新名称的新工作,会有copy from的选项在现有的工作。
  2. copy from要重命名的工作。
  3. 删除原来的工作。

现在你有一个不同的名称相同的作业。


1
投票

根据我通常选择了要求:

工作>配置 - 修改项目名称属性 - 高级项目选项,点击高级...,用于显示名称设置值

然后保存工作。无需重命名文件系统级别。


1
投票

我不能让马克的剧本工作,所以,如下图所示编写一个基于禁止所有作业脚本之一。这是“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())
    }
  }
}

0
投票

使用功能Job.previousNames()重命名使用[工作产生]内Groovy脚本(工作产生插件)(厂)多个作业。

下面的例子将重命名作业ci.*_2ci.*(它消除尾随_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')
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.