Развертывание артефакта Jenkins, созданного другой работой

Я установил Deploy Plugin на свой Jenkins, чтобы автоматизировать развертывание моего Maven собрал war пакетов в Tomcat 7. Проблема в том, что я могу использовать плагин для развертывания на удаленном сервере Tomcat, только если они сделаны в рамках того же задания, которое использует плагин развертывания. Другими словами, мне не удалось настроить автономное задание, которое развертывает артефакты, созданные другим заданием.

Например, у меня есть задание с именем pack.foo. Он использует исходный код в /var/lib/project/module для создания module.war и помещения его в /var/lib/project/module/target. . Однако из-за настройки версии Maven артефакт, размещенный на странице артефактов pack.foo, выглядит примерно так: module-2.0.0-SNAPSHOT.war.

Единственный способ развернуть module.war — это добавить Post-build Action в pack.foo и указать **/module.war в качестве URL-адреса удаленного менеджера Tomcat (при условии, что у меня есть учетные данные менеджера в конфигурации Jenkins). Затем вывод консоли задания регистрирует, что /var/lib/project/module/target/module.war был развернут по этому URL-адресу:

Deploying /var/lib/project/module/target/module.war to container Tomcat 7.x Remote with context 
  [/var/lib/project/module/target/module.war] is not deployed. Doing a fresh deployment.
  Deploying [/var/lib/project/module/target/module.war]

Как я могу использовать этот или другой подключаемый модуль для развертывания артефакта WAR, созданного в отдельном задании Jenkins? Я хотел бы иметь отдельные задания для создания и развертывания артефактов. Плагин не находил **/module-2.0.0-SNAPSHOT.war или даже **/module.war, созданный другим заданием, хотя на диске определенно был файл, соответствующий этому шаблону.


person amphibient    schedule 14.11.2017    source источник


Ответы (1)


См. абзац на странице развертывания подключаемого модуля, на которую вы ссылаетесь:

Как откатить или повторно развернуть предыдущую сборку

Для этого может быть несколько способов, но вот один из рекомендуемых:

  1. Установите плагин Copy Artifact.
  2. Создайте новое задание, которое вы будете запускать вручную только при необходимости.
  3. Настройте это задание с помощью параметра сборки типа Селектор сборки для копирования артефакта и шага сборки копии артефакта, используя параметр Задано сборкой, чтобы выбрать сборку.
  4. Добавьте действие после сборки для развертывания артефакта, скопированного из другого задания.

Теперь, когда вы запускаете это задание, вы можете ввести номер сборки (или использовать любой другой доступный селектор), чтобы выбрать сборку для повторного развертывания. Спасибо Хельге Тауберту за эту идею.

person Gerold Broser    schedule 14.11.2017