Развертывание продвинутых сборок в Jenkins
У меня есть две задачи Jenkins, одна из которых создает и продвигает успешную сборку, а другая - развертывает эти продвинутые сборки. Я использую два плагина для выполнения этой задачи, плагин Copy Artifact и продвигаемые сборки.
Работа по созданию кода является очень стандартной. Я каждую минуту захожу в репозиторий git, чтобы проверить наличие каких-либо изменений, и, если есть какие-либо изменения, я просто запускаю Invoque Gradle Script на этапе сборки и выбираю поле Use Gradle Wrapper. и все строит без проблем. Единственная настраиваемая часть этой задачи сборки состоит в том, что я использую плагин продвинутых сборок, который прекрасно работает и имеет очень стандартную конфигурацию.
Я доволен своим заданием Build, но у меня проблема с заданием Deploy. В моей задаче развертывания я хочу выбрать, какую продвинутую сборку я хочу развернуть, но я не могу развернуть выбранную продвинутую сборку.
В моей задаче "Развертывание" я отмечаю флажок " Этот проект является параметризованным" и выбираю параметр " Повышенная сборка".
Улучшенная конфигурация параметров сборки
Конфигурация выглядит нормально, когда я запускаю задачу Deploy, я могу выбрать, какую сборку я хочу развернуть.
Выберите сборку для развертывания
Проблема в том, что я выбираю Копировать артефакты из другого проекта. В какой сборке я выбираю Указано параметром сборки, а в качестве имени параметра я выбрал то же имя, которое я дал параметру расширенной сборки
Копировать артефакты из другого проекта. Конфигурация
Но когда я запускаю эту задачу Deploy, я получаю эту ошибку: ERROR: Unable to find a build for artifact copy from: Aurora
,
НО, если я изменю часть Какой сборки на Копировать из WORKSPACE последней завершенной сборки, все работает нормально.
Что я делаю не так в этой конфигурации?
1 ответ
Я смог решить эту проблему, я не думаю, что это был самый чистый способ сделать это, но в конце это сработало. В задаче " Построение" я оставил все как есть, я только добавил действие " Пост-сборка" для архивации артефактов.
В задаче Deploy мне нужно было изменить немного больше. В моей задаче "Развертывание" я поставил галочку в поле " Этот проект параметризован" и выбрал параметр Promoted Build Parameter, конфигурация для этого шага очень стандартная, я просто выбрал проект Build, а остальное - автоматически. Этот шаг позволяет мне выбрать, какую раскрученную сборку я хочу развернуть, но именно в этом заключается большая проблема. Значение, которое возвращает этот "шаг", выглядит примерно так: https://site.name.com/job/ProjectName/137/.
Проблема, которую это создает, находится в Копировании артефактов из другого проекта. Мне нужен номер сборки, но у меня есть только этот URL, поэтому решение, которое я нашел, состояло в том, чтобы получить номер сборки из этого URL, внедрить этот номер в качестве локальной переменной и использовать эту локальную переменную на следующих шагах.
С помощью этого решения я могу развернуть только продвинутую сборку.