Jenkins - передать артефактный URL в плагин повышенного уровня сборки
TL; Dr:
У меня есть работа Дженкинс (Работа № 1). Я хочу вызвать вторую работу с помощью плагина Promoted Build (Job #2). Задание № 2 параметризовано и нуждается в артефактном URL-адресе, созданном заданием № 1. Как передать параметр из задания № 1 в задание № 2? Использование параметра утверждения не работает, так как этот параметр состоит из переменных среды. Я буквально просто хочу создать переменную окружения в задании № 1, а затем передать ее в качестве параметра в задание № 2 - наверняка есть способ сделать это?
Случай использования:
У меня есть работа Дженкинса, которая загружает артефакт в артефакт. Я пытаюсь использовать плагин Promoted Build для запуска второго задания, которое принимает артефактный URL в качестве параметра. Однако я не могу найти способ передать ему артефактный URL-адрес - в самом задании я создаю URL-адрес из $DEPLOY_URL/$DEPLOY_URL-$BUILD_ID.tar.gz, но при запуске сценария продвижения $ BUILD_ID имеет другое значение, поскольку технически продвижение происходит внутри другой работы (насколько я могу судить, плагин работает так, что он создает маленькую мини-работу, которая обрабатывает рекламные акции, и у них есть своя нумерация). Я попытался просто сохранить полный URL-адрес в переменную с именем $ARTIFACTORY_URL в сценарии оболочки, но опять же, похоже, что у задания по продвижению нет доступа к нему. Как я могу передать переменную из моей работы в Jenkins в рекламную работу?
2 ответа
Я работал над решением, которое решает ограничение решения Адама Рейда.
В задании 1:
а. Добавьте шаг сборки "Выполнить оболочку" (решение Адама):
# Create a properties file for the promotion step
cat > $WORKSPACE/artifactory.properties <<EOF
ARTIFACTORY_URL=$DEPLOY_URL/$DEPLOY_URL-$BUILD_ID.tar.gz
EOF
# Verify the properties file contents
cat ${WORKSPACE}/artifactory.properties
б. Добавьте действие "Архивировать артефакты" после сборки с помощью:
"Файлы в архив" = artifactory.properties
с. В разделе "Запуск / вызов по другим проектам" акции добавьте "Предопределенные параметры" с помощью:
PROMOTED_JOB_NAME=${PROMOTED_JOB_NAME}
PROMOTED_NUMBER=${PROMOTED_NUMBER}
В задании 2:
а. Добавьте шаг сборки "копировать артефакты из другого проекта" с помощью:
"Название проекта" = $ PROMOTED_JOB_NAME
'which build' = конкретная сборка
'номер сборки' = $ PROMOTED_NUMBER
'Артефакты' = artifactory.properties
б. Добавьте шаг сборки "Вставить переменные среды" с помощью
'Путь к файлу свойств' = artifactory.properties
В вашей сборке вы можете добавить шаг оболочки, который создает файл свойств в рабочей области, где он может быть выбран параметризованным триггером во время продвижения. Пример шага оболочки может выглядеть так:
# Create a properties file for the promotion step
cat > $WORKSPACE/artifactory.properties <<EOF
ARTIFACTORY_URL=$DEPLOY_URL/$DEPLOY_URL-$BUILD_ID.tar.gz
EOF
# Verify the properties file contents
cat ${WORKSPACE}/artifactory.properties
Затем на шаге продвижения добавьте параметризованную сборку Trigger для другого действия проекта, установите задание, которое вы хотите запустить, затем в разделе " Добавить параметры" выберите " Параметры" из файла свойств и введите имя файла свойств. Это должно обеспечить параметры, необходимые для запускаемой работы.