Как мне клонировать работу в Дженкинс?

231

Jenkinsимеет Gerritплагин на месте, так что, когда мы выполняем возврат в систему Gerrit, Jenkinsвыполняем сборку и, в случае успеха, изменение в Gerritпроверяется. Если сборка не удалась, то это не так. Насколько я понимаю, это достигается с помощью рабочих мест, созданных в Jenkins. Теперь мы создали новую ветвь ( git), и я предполагаю, что мне нужно клонировать существующие задания, указывающие на другую ветвь, чтобы этот же рабочий процесс происходил и сборки выполнялись при каждом коммите. Может кто-нибудь объяснить, как я бы клонировал эти работы? Кажется, я не вижу способа сделать это через пользовательский интерфейс, и при этом я даже не вижу способа перечислить рабочие места через пользовательский интерфейс.

GregH
источник
7
Вы должны иметь возможность «Скопировать существующее задание» в качестве одного из параметров на странице «Новое задание». См stackoverflow.com/questions/3133537/...
nofinator

Ответы:

180

Чтобы скопировать существующее задание, перейдите http://your-jenkins/newJobи используйте параметр «Копировать существующее задание». Введите имя существующего задания - Дженкинс проверит, существует ли оно.

На вкладке по умолчанию на первой странице Jenkins должны быть перечислены все существующие задания, но, возможно, ваш предшественник удалил вкладку. Вы можете создать новую вкладку со списком всех вакансий изhttp://your-jenkins/newView.

gareth_bowles
источник
имейте в виду, что при копировании существующего задания вам необходимо указать имя (не закодированное как URL при обращении к заданию), поэтому, если в имени задания есть пробелы, они будут сохранены. Короче, ставлю только оригинальное название работы, больше ничего.
Yauhen
При установленном плагине ez-template «Копировать существующее задание», примененном к шаблону или к заданию с использованием шаблона, создается новое задание, зависящее от шаблона. Если вам действительно нужна независимая копия, вы можете удалить Use another job as a templateконфигурацию.
user598656
146

Вы можете клонировать работу:

  1. Нажмите на ссылку «Новый товар»
  2. Дайте новое имя вашей работе
  3. Выберите переключатель «Скопировать существующий элемент»
  4. Дайте название работы, которую вы хотите клонировать
  5. Нажмите «ОК»

Наконец, у вас есть новая работа, которая отражает все функции вашей клонированной.

prudviraj
источник
117

Дженкинс 2,9

  1. Дженкинс> Новый предмет

    Дженкинс новый предмет

  2. Введите название предмета - например, "MY_CLONE"

    Введите название предмета

  3. Укажите источник ( Копировать из ) задания> ОК

    Когда вы начнете вводить имя, будут найдены существующие значения. Обратите внимание, что это чувствительно к регистру.

    Скопировать из ОК

  4. Нажмите Сохранить, если вы хотите сохранить значения по умолчанию.

  5. Теперь обе вакансии доступны в одном месте:

    Посмотреть вакансии

ROMANIA_engineer
источник
3
Картинки стоят тысячи слов. Не могу найти маленький выпадающий список для моей жизни. Mulțumiri
michaelok
34

New Item> Project Name= abc> Вместо Freestyle job, выберитеCopy from job name of already existing jobs

Если вы находитесь внутри папки, которую хотите скопировать из каталога, используйте ../.

KSR
источник
Спасибо за упоминание../
Сатевг
14

если вы хотите скопировать в том же Jenkins, но в разных подпапках, создайте новый элемент -> использовать копию из. Новое задание будет клонировано в том же каталоге. Затем используйте опцию перемещения, чтобы переместить ее в нужную директорию

Ulka
источник
Это то, что я использовал. Простого копирования в одну папку часто недостаточно. Спасибо!
Donmartin
11

Все вышеперечисленные ответы хороши. Но если вы создали «папки» для своей работы, все немного по-другому.

Нажмите на папку, в которой вы хотите создать новую работу. Затем нажмите «Новый элемент» в левом меню. Теперь ваш URL "новой работы" будет выглядеть следующим образом (при условии, что вы создаете новую работу в папке "my-folder"):

http://my-jenkins:8080/job/my-folder/newJob

Под Enter an item name, введите желаемое новое имя вакансии. Затем используйте Copy fromтекстовое поле внизу. Введите путь к работе источника.

Например , если ваш источник задания находится в папке src-folderи имя задания является src-job, вы должны войти src-folder/src-jobв «Копировать из» коробки.

Надеюсь, поможет.

Бхушан
источник
Я все еще пытаюсь найти способ скопировать задания из разных структур папок: Дженкинс добавляет буквальное «задание» для каждого нового элемента в папке, например, у меня есть задание на локальном хосте: 8080 / job / x / job / y / job_1 где x и y - папки. job_1 - настоящая работа Как я могу скопировать эту работу на localhost: 8080 / job / x / job / z / job_1 ? Я перепробовал все ссылки на источник работы без удачи.
Хайнц
1
Перейти к localhost:8080/job/x/job/y/job_1. На этой странице вы должны увидеть Full project name. Попробуйте использовать это при указании источника.
Бхушан,
Если у вас есть 2 папки folder1и folder2на тот же уровень , и вы хотите скопировать folder1\job1в folder2\job1, вы можете создать новый элемент в папку , folder2а затем использовать , ..чтобы вернуться в структуре папок и копирование ../folder1/job1.
DRz
10

Вы также можете использовать плагин Копировать ссылку на проект .

Это добавит ссылку на левую боковую панель вашего проекта:

введите описание изображения здесь

На следующем экране будет запрошено новое имя вакансии:

введите описание изображения здесь

lkisac
источник
10

В моем случае мне пришлось скопировать работу из одного экземпляра Дженкинса в другой.

Итак, сначала я посмотрел в структуре каталогов старого Jenkins (имя задания / каталога; также отметил config.xml), а затем в структуре каталогов новых Jenkins, где я затем создал каталог с тем же именем / заданием и скопировал поверх config.xml под этим вновь созданным каталогом.

Затем в разделе «Управление Jenkins» я нажал «Перезагрузить конфигурацию с диска». Это оно.

Рохит Катария
источник
спасибо за подсказку «Перезагрузить конфигурацию с диска»!
Ализа
1
Да, если я собираюсь выполнить массовое копирование нескольких элементов, перед «Перезагрузкой с диска» вы также можете выполнить некоторые необходимые ручные операции в CLI, такие как поиск / замена некоторых параметров, фрагментов текста и т. Д. В config.xml . Обратите внимание, что имя каталога, в котором находится файл config.xml, является именем вашей работы (таким образом, если в отличие от Rohit вам нужно создать новую работу, просто дайте ей другое имя).
RAM237
На мой взгляд, когда у вас есть несколько уровней папок с множеством заданий внутри, это лучший вариант.
кабрераканал
3

Создайте новый элемент и перейдите к последнему пункту, который вы найдете для копирования из существующего, просто напишите свое текущее имя задания, и у вас будет клон этого проекта для работы.

Yug
источник
1

Я не смог скопировать работу Дженкинса из подпапки. copy fromопция не показывала предложение, которое я искал. Без использования предложения копирование названия работы не сработало.

Поэтому, если вы хотите создать задание из внешней папки, вам нужно сначала создать задание в подпапке, а затем переместить его в другую папку, где вам нужно его разместить.

priyanka_rao
источник
0

Все ответы здесь очень полезны, но пропустите одну очень странную ошибку о Дженкинс. После того, как вы отредактировали новые конфигурации задания, иногда, если ваш уровень масштабирования слишком высок, вы можете не увидеть кнопку saveили apply. Кнопка присутствует на странице и скрыта вашим уровнем масштабирования, вы должны уменьшать масштаб, пока не увидите кнопку в левом нижнем углу вашей страницы.

Странно, я знаю!

AVP
источник