Продвижение сборки Jenkins: как получить идентификатор сборки, которую я хочу рекламировать? - PullRequest
1 голос
/ 23 февраля 2012

Похоже, что при продвижении сборки в Jenkins с использованием плагина Promoted Builds он генерирует новую переменную среды BUILD_ID. Есть ли способ или плагин, который позволяет вам получить доступ к текущему BUILD_ID сборки, которую вы пытаетесь продвигать?

По сути, мне нужны следующие функции: перейти к сборке в Jenkins, иметь возможность запускать скрипт ant или gradle для продвижения уже созданного артефакта, который заархивирован под сборкой, в которой я сейчас нахожусь.

1 Ответ

8 голосов
/ 23 февраля 2012

Используйте переменные PROMOTED_JOB_NAME и PROMOTED_NUMBER, чтобы получить имя и номер сборки продвигаемой сборки. Эти два значения устанавливаются только во время процесса продвижения; они являются частью создания рабочих мест. Это не совсем соответствует BUILD_ID, но оно разрешает доступ к этой сборке.

Когда в прошлом у меня была эта проблема, я делал следующее.

  1. Попросите оригинальное задание скопировать определенные переменные (например, JOB_ID) в файл стиля конфигурации (каждая строка - NAME = VALUE).
  2. Архивировать этот файл как часть сборки.
  3. Во время продвижения используйте переменные PROMOTED_JOB_NAME и PROMOTED_NUMBER, чтобы получить исходную сборку, введите значения в Плагин копирования артефактов , чтобы извлечь архивированный файл значений, затем используйте Плагин EnvInject с этим файлом значений для переноса значений в процесс продвижения.
...