Дженкинс: развертывание военных файлов от искусственных

Мы используем Jenkins для создания (maven) и развертывания артефактов (JAR и * WAR * s) на собственном искусственном сервере (как моментальных снимках, так и выпусках).

Для развертывания в настоящее время мы получили задания Jenkins, которые упаковывают военный файл (из тега scm release) и развертываются в разных средах/серверах. Мы хотим пропустить фазу пакета, поскольку кажется излишним ее снова и снова упаковывать для выпущенной версии, потому что невозможно получить другую копию военного файла даже после попытки 1000 раз.

Мы ищем способ в Дженкинсе получить артефакт (войну) от Artifactory и развернуть его в контейнере. Я уверен, что другие люди тоже столкнулись бы с этой ситуацией, но я не могу найти никаких онлайн-материалов по этому поводу.

Есть ли какой-либо плагин Jenkins, который берет военный файл из Artifactory (на основе версии) и развертывает его в удаленном контейнере?

Если это неправильный способ сделать это, то каковы рекомендации для любого другого подхода?

Спасибо

Ответ 1

Я не знаю о плагине, который принимает версию # и развертывает его, но вы можете создать задание Jenkins для развертывания последней успешной версии в предыдущей среде (например, копирование с DEV → QA).

Для этого вы должны использовать плагин copy-artifact.

Здесь легко следовать прогону такого рода настроек:

http://www.lordofthejars.com/2012/09/deploying-jee-artifacts-with-jenkins.html

Ответ 2

Каждый артефакт, хранящийся в Artifactory, будет иметь уникальный URL-адрес, содержащий номер версии. Он примет формат

http://artifactory-server/repository-name/path-to-artifact/version/filename

например.

http://artifactory/apps-releases-local/com/yourorg/yourapp/1.5.67/webapp.war

(в зависимости от того, как вы делаете свою упаковку, имя файла WAR также может содержать номер версии).

Итак, ваше задание развертывания может создать URL-адрес Artifactory и загрузить файл. В зависимости от того, как у вас установлена ​​безопасность в Artifactory, вам может потребоваться аутентификация запроса.