Подтвердить что ты не робот

Как продвигать определенный номер сборки с другой работы в Дженкинсе?

Я установил Promoted Build Plugin из Jenkins, и теперь мне приходится сталкиваться с некоторыми проблемами, чтобы продвигать сборку из существующего задания. Вот сценарий:

  • Существует существующее задание Nightly Build, которое запускается каждую ночь с использованием всех необходимых тестов и показателей;

  • Существует существующий Deploy Build, который принимает параметр ${BUILD_NUMBER} и разворачивает сборку, которая имеет соответствующий ${BUILD_NUMBER} из Nightly Build

    • Скажите, что [Nightly Build] побежал и успешно создал артефакт # 39
    • Теперь я могу просто запустить передачу [Deploy Build] в # 39 в качестве параметра
      • Артефакты из [Nightly Build] # 39 будут развернуты

Пока все хорошо. Теперь я хочу добавить Build Promotions...

This is exactly what I need to achieve

Есть ли способ продвинуть Nightly Build #39 (обратите внимание, что он уже был создан ранее) из Deploy Build? Или, может быть, даже откуда-то еще, откровенно говоря, я потерял здесь: (

Я не вижу их с четкими отношениями Upstream/Downstream, потому что у них нет: всегда запускает эту сборку, а затем другую во время выполнения - [Deploy Build] выполняется иногда только и не всегда после [Ночная сборка].

4b9b3361

Ответ 1

Обновление с версии 2.23 плагина с параметризированным триггером:

С версией 2.23+ изменилось поведение (спасибо AbhijeetKamble за указание вне). Любой параметр, который передается в разделе Предопределенные параметры задания (build), должен существовать в вызове ( развертывание). Кроме того, применяются ограничения названных параметров задания, поэтому, если назначенный параметр задания является выбором, он должен иметь все возможные значения (из рекламных акций), предварительно заполненные. Или просто используйте параметр Текст.

Решение

Да, у меня такая же настройка: задание сборки (на основе компиляции SVN) и вручную выполненное задание развертывания. Когда пользователь выбирает какую-либо сборку из задания сборки (включая старые сборки), они могут перейти к ссылке Статус продвижения и выполнять различные рекламные кампании разгона, например, Развернуть до DEV, Развернуть до QA и т.д.

Вот как настроить продвижение по заданию сборки:

  • Вам понадобятся следующие плагины: Параметрированный плагин Trigger, Плагин Promoted Builds
  • Вам также необходимо настроить действие по умолчанию Архивировать артефакты после этого задания сборки.
  • Отметка Содействовать сбору, когда
  • Определить Имя "Развернуть до DEV"
  • Под Критерии отметка Только при одобрении вручную
  • В Действия используйте Сборки триггеров/вызовов в других проектах
  • В Проекты для сборки введите имя в свое задание развертывания здесь
  • Отметьте Блокировать, пока запущенные проекты не закончат свои сборки
  • Отметьте эту сборку как сбой, если запущенная сборка хуже или равна: FAILURE (настраивается в соответствии с статусами вашего задания развертывания)
  • Предопределенные параметры (код A)

Код A:

Server=IP_of_my_dev_server`  
Job=$PROMOTED_JOB_NAME`  
BuildSelection=<SpecificBuildSelector><buildNumber>$PROMOTED_NUMBER</buildNumber></SpecificBuildSelector>

Выше, в разделе Предопределенные параметры имя слева от = - это параметры, определенные в задании развертывания. И справа от = - значения, которые будут назначены этим параметрам при выполнении этой акции. Определяет три параметра Server, Job и BuildSelection.

Параметр Server= является моим собственным, так как мое задание развертывания может развертываться на нескольких серверах. Однако, если ваше задание развертывания жестко запрограммировано для развертывания в определенном месте, вам это не понадобится.

Требуется параметр Job=, но имя параметра зависит от того, что вы установили в своем задании развертывания (я объясню там конфигурацию). Значение $PROMOTED_JOB_NAME должно оставаться как есть. Это переменная среды, о которой осведомлен процесс продвижения и ссылается на имя вашего задания на сборку (тот, в котором настроен процесс продвижения).

Требуется параметр BuildSelection=. Вся эта линия должна оставаться такой, какая есть. Прошедшее значение $PROMOTED_NUMBER, которое еще раз информирует о продвижении. В вашем примере это будет #39.

Блокировать до тех пор, пока запущенные проекты не закончат свою сборку, отметка сделает процесс продвижения до завершения задания развертывания. Если нет, процесс продвижения будет инициировать работу по развертыванию и успешно завершен. Ожидание завершения задания развертывания имеет то преимущество, что при неудачном выполнении развертывания звезда продвижения будет отмечена также сбой.

(Приведем небольшую заметку: звезда продвижения будет успешной , а будет выполняться задание на развертывание. Если произойдет сбой в развертывании, она будет только сбой после завершения задания развертывания... но может быть немного запутанным, если вы посмотрите на звезду продвижения до завершения развертывания)

Вот как установить задание развертывания

  • Вам понадобится Копировать плагин артефактов
  • В разделе Эта сборка параметрируется
  • Настройте параметр типа Выбор (или текст) с именем Server (это имя должно соответствовать конфигурации в рассылке Предопределенные параметры в предыдущем разделе)
  • Выбор: введите список возможных IP-адресов сервера, которые будут использоваться в рекламном пакете Предопределенные параметры в предыдущем разделе (см. примечание по обновлению ниже).
  • Настройте параметр типа Выбор (или текст) с именем Job (это имя должно соответствовать конфигурации в рассылке Предопределенные параметры в предыдущем разделе)
  • Выбор: введите имя задания для сборки по умолчанию. Это необходимо, только если вы запускаете задание развертывания вручную. Когда задание развертывания запускается из рассылки, промоакция будет предоставлять значение (Job= из Предопределенные параметры, которые мы настроили). Кроме того, если нет значения, переданного из рекламного пакета Предопределенные параметры, будет использоваться значение первого выбора. Если у вас есть отношения 1 к 1 между заданиями сборки и развертывания, вы можете опустить параметр Job= в настройке продвижения.
  • Обновление: начиная с версии 2.23 параметрированного триггера, доступные варианты в deployсильная конфигурация заданий должна иметь все возможные значения, исходящие из предопределенных параметров продвижения. Если вы не хотите этого ограничения, используйте "Текст" вместо "Выбор"
  • Настройте параметр типа Селектор сборки для Copy Artifact с именем: BuildSelection
  • Селектор по умолчанию: последняя успешная сборка
  • В шагах Сборка
  • Настроить Копировать артефакты из другого проекта
  • В Название проекта введите ${Job}
  • В Какая компоновка выберите Specified by a build parameter
  • В Имя параметра введите BuildSelection (без ${...}!)
  • Настройте остальные соответственно для ваших артефактов, которые будут скопированы из задания сборки для развертывания рабочей области.
  • Используйте скопированные артефакты внутри задания развертывания, как вам нужно, чтобы развернуть

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

Сообщите мне, есть ли у вас какие-либо проблемы с инструкциями.