Хадсон: построить цепочку и два проекта - PullRequest
1 голос
/ 20 апреля 2011

У меня есть два проекта, собирающихся в Хадсоне с Maven 2, скажем: Shared.jar и Server.jar.

Сервер зависит от общего.

Я хочу реализовать следующие сценарии сборки:

  1. Когда что-то совершается Сервер - только сервер перестраивается.
  2. Когда что-то совершается Shared - сначала Shared строится, потом Сервер.
  3. Когда что-то совершается Сервер и Общий (в одном коммите как они в одном репо SVN) - сначала Разделяется, затем Сервер.

Это очевидное поведение, но я получаю, что у меня есть Сервер, построенный дважды в третьем случае. Есть ли возможность исправить это? Я использую Hudson 1.392

В проектах SVN выглядит следующим образом:

+ SVN repo root
 |
 + Server
 |  ...
 |  pom.xml
 + Shared
    ...
    pom.xml

1 Ответ

1 голос
/ 20 апреля 2011

Я не вижу ЛЕГКОГО способа сделать это, но я думаю, что есть не слишком сложный способ.

Создайте одно новое задание (в данном примере назовите его TRIGGER), которое имеет триггер сборки, который отслеживает как сервер, так и общий ресурс. Когда что-то передается (либо на сервер, либо на общий ресурс), есть задача сборки (в моем случае, возможно, Windows bat или сценарий PowerShell), которая проверит, что зафиксировано, и решит, что нужно собрать - сервер или общий ресурс. По сути, ваша логика с тремя случаями была бы обработана здесь.

Исходя из результатов, попросите задачу сборки создать / обновить два файла в рабочей области - назовите один из них BUILDSHARED.TXT, а другой - BUILDSERVER.TXT (для примера). Вы захотите изменить содержимое файла (например, сбросить в него $ BUILD_TAG), когда вы хотите перестроить этот компонент. ПРИМЕЧАНИЕ. Если вы хотите перестроить ОБА Сервер и Общий ресурс, вам необходимо указать, что Общее задание необходимо перестроить. Теперь запишите в архив эти два файла.

Измените свою общую работу, чтобы включить плагин URL Change Trigger . Настройте триггер сборки, чтобы отслеживать URL-адрес постоянной ссылки файла BUILDSHARED.TXT задания TRIGGER. При изменении отслеживаемого файла будет запущена новая сборка Shared.

Также измените совместное задание, чтобы после успешного завершения начать сборку задания сервера в нисходящем направлении. Вы можете сделать это с помощью опции «Построить другие проекты» или использовать что-то вроде моего личного фаворита, Parameterized Trigger Plugin

Наконец, измените работу сервера, чтобы использовать плагин URL Change Trigger . Установите его для отслеживания URL-адреса постоянной ссылки файла BUILDSERVER.TXT задания TRIGGER. Теперь задание сервера будет запущено, если будет выполнена фиксация на сервере или если задание общего доступа завершено.

Я думаю, это делает то, что вы хотите ...

...