Как построить много проектов с одним номером ревизии SVN с Hudson? - PullRequest
4 голосов
/ 18 мая 2010

Я только начинаю с hudson, и я хотел бы построить свои проекты, как это делало мое решение ручной работы:

  1. Получить текущий номер версии SVN rev .
  2. Сборка всех проектов (каждый с индивидуальным результатом) с номером ревизии rev .
  3. Начните снова с шага 1 независимо от того, произошли ли какие-либо изменения в это время (для обнаружения недетерминированных ошибок, которые не возникают при каждом запуске теста).

Как я могу настроить это с помощью hudson ?

Ответы [ 4 ]

3 голосов
/ 19 мая 2010

Просто чтобы продлить пост sjohnston. Вместо проверки кода в известном месте, вы можете использовать Clone Workspace SCM Plugin . Теперь вы можете ссылаться на оформление заказа с первой работы.

Кроме того, вы можете просто передать номер ревизии и передать его в качестве параметра для ваших работ по сборке. Задания по сборке могут затем извлечь правильную версию кода, используя номер редакции.

2 голосов
/ 18 мая 2010

У Хадсона действительно нет хорошей поддержки для того, чтобы сделать одиночную проверку SVN и затем использовать ее для нескольких различных работ.

Вы можете попробовать это:

  • Настройка задания, которое просто выполняет извлечение в известном каталоге. Установите флажок post-build-actions> build other projects и добавьте все задания сборки.
  • Настройте каждое из заданий на сборку так, чтобы оно копировало последнюю проверку из того места, где оно было размещено первым заданием. Настройте их на периодическую сборку, чтобы они продолжали собираться, даже если регистрация не производится.
  • Возможно, используйте плагин Locks and Latches для установки блокировок между заданием извлечения и заданиями сборки, чтобы у вас не было двух заданий, пытающихся одновременно копировать / изменять файлы.

Звучит грязно и потенциально чревато проблемами, но это может сработать.

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

1 голос
/ 20 мая 2010

Мое мнение о проблеме:

Используйте SVN-хук после фиксации для запуска предварительной работы, которая а) проверяет код; б) получает ревизию SVN (например, через SVNVERSION.EXE); и c) использует плагин Parameterized Trigger для запуска "реального" задания сборки с определенным идентификатором ревизии SVN.

Таким образом, вы отделяете соединение SCM от реального здания, так что вы можете быть очень точными в построении каждой ревизии.

0 голосов
/ 18 мая 2010

вы всегда можете добавить сценарий оболочки в качестве шага сборки.

использовать параметризованную сборку, объявить ревизию как параметр, использовать параметр в сценарии оболочки (полностью пропуская управление Hudson SCM)

http://wiki.hudson -ci.org / дисплей / HUDSON / Параметризованная + Постройте

...