Я попытался переименовать работу hudson/jenkins. Однако он не смог переименовать.
Есть ли способ, чтобы я мог переименовать задание?
Я попытался переименовать работу hudson/jenkins. Однако он не смог переименовать.
Есть ли способ, чтобы я мог переименовать задание?
Вы можете переименовать выбранное задание через пользовательский интерфейс jenkins, выполнив следующие шаги:
job>configure>Advanced Project Options>Display Name
Другим способом является переименование каталога на сервере Jenkins/hudson
, а затем restart
Jenkins
.
Просто для полноты, хотим упомянуть обновление имени работы Хадсона, используя 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();
Установка имени задания в новую и сохранение конфигурации не переименует текущее задание, а создаст копию конфигурации задания с новым именем. Кроме того, в этом случае могут быть неработающие ссылки, поэтому Хадсону необходимо будет перезагрузить конфигурацию.
Обычный способ переименования задания:
Перейдите на экран Настроить и отредактируйте поле Название проекта прямо вверху. Затем нажмите Сохранить и подтвердите выбор, нажав Да. (не нажмите Применить рядом с Сохранить, что даст вам сообщение об ошибке: JENKINS-17474)
Изменение Отображаемое имя не переименует задание, оно изменит только то, как оно будет отображаться. Он по-прежнему будет найден под его оригинальным именем через окно поиска, например, и это также будет отображаться в URL-адресе.
Переименование каталогов на уровне файловой системы действительно не обязательно.
copy from
существующей работы.copy from
работы, которую вы хотите переименовать.Теперь у вас есть идентичная работа с другим именем.
В зависимости от требования, которое я обычно выбираю между:
Работa > Настроить - изменить свойство "Название проекта" - Дополнительные параметры проекта, нажмите "Дополнительно...", установите значение для отображаемого имени
Затем сохраните задание. Нет необходимости переименовывать уровень файловой системы.
Я не могу заставить Marc script работать, поэтому напишите один на основе Отключить все задания script, как показано ниже. Это нужно, чтобы переименовать любой проект с помощью "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 script внутри [генератора заданий] (плагин генератора заданий ) (factory).
В следующем примере переименовываются задания 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')
}
}
}
Для быстрого понимания я использовал несколько скриншотов:
Я использовал версию Jenkins: 2.148
Шаг 1:
На главном экране/Список вакансий просто нажмите на вариант работы.
ИЛИ ЖЕ
Просто откройте детали работы, вы увидите левую сторону для переименования.
Шаг 2:
Введите новое имя и просто нажмите кнопку "Переименовать"