Переименование работы в Дженкинс / Хадсон
Я пытался переименовать работу Хадсон / Дженкинс. Однако переименовать его не удалось.
Есть ли способ, чтобы я мог переименовать работу?
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.
Переименование каталогов на уровне файловой системы действительно не должно быть необходимым.
- Создать новую работу с новым именем, будет возможность
copy from
существующая работа. copy from
работа, которую вы хотите переименовать.- Удалить оригинальную работу.
Теперь у вас есть идентичная работа с другим именем.
Я не могу заставить скрипт Марка работать, поэтому напишите его на основе сценария Отключить все задания, как показано ниже. Это делается для переименования любого проекта с "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')
}
}
}