Переименование работы в Дженкинс / Хадсон

Я пытался переименовать работу Хадсон / Дженкинс. Однако переименовать его не удалось.

Есть ли способ, чтобы я мог переименовать работу?

7 ответов

Решение

Вы можете переименовать выбранное задание через пользовательский интерфейс jenkins, выполнив следующие действия:

job>configure>Advanced Project Options>Display Name

Другой способ - переименовать каталог на Jenkins/hudson сервер, а затем restart Jenkins,

Для быстрого понимания я использовал несколько скриншотов:

Я использовал версию Jenkins: 2.148

Шаг 1:

На главном экране / Список вакансий просто нажмите на вариант работы.

ИЛИ ЖЕ

Просто откройте детали работы, вы увидите левую сторону для переименования.

Шаг 2:

Введите новое имя и просто нажмите кнопку "Переименовать"

Для полноты картины хочу упомянуть обновление имени задания Hudson с помощью консоли скриптов Groovy:

// 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 потребуется перезагрузить конфигурацию.

Обычный способ переименовать работу:

Перейдите на экран " Настройка" и отредактируйте поле " Имя проекта" справа вверху. Затем нажмите Сохранить и подтвердите, нажав Да. (не нажимайте кнопку " Применить" рядом с " Сохранить", которая выдаст сообщение об ошибке: JENKINS-17474)

Изменение отображаемого имени не приведет к переименованию задания, оно только изменит способ его отображения. Например, он будет по-прежнему находиться под своим оригинальным именем в окне поиска, и он также будет отображаться в URL.

Переименование каталогов на уровне файловой системы действительно не должно быть необходимым.

  1. Создать новую работу с новым именем, будет возможность copy from существующая работа.
  2. copy from работа, которую вы хотите переименовать.
  3. Удалить оригинальную работу.

Теперь у вас есть идентичная работа с другим именем.

Я не могу заставить скрипт Марка работать, поэтому напишите его на основе сценария Отключить все задания, как показано ниже. Это делается для переименования любого проекта с "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())
    }
  }
}

В зависимости от требований я обычно выбираю между:

Задание > Настроить- изменить свойство " Имя проекта" - " Дополнительные параметры проекта", нажать " Дополнительно"..., установить значение для отображаемого имени

Тогда сохраните работу. Нет необходимости переименовывать на уровне файловой системы.

Используйте функцию 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')
        }
    }
}
Другие вопросы по тегам