Проект Hudson с несколькими триггерами - PullRequest
2 голосов
/ 24 мая 2011

Я строю систему непрерывной интеграции с Hudson, и у меня есть проект, разделенный на две части.Первый - это основной элемент сборки и модульного тестирования, который я хочу запустить традиционным способом CI, запущенным из SVN.Второй - это функциональные тесты, выполнение которых занимает много времени, и поэтому я хочу, чтобы они выполнялись в одночасье.

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

Я видел этот вопрос: Гудзон - разные цели сборки для разных триггеров , но это просто выполняется каждую ночьнезависимо от состояния основного проекта.

1 Ответ

0 голосов
/ 24 мая 2011

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

Нашим решением было использование DOS BuildТриггерный плагин .К этому триггеру сборки мы прикрепляем расписание, которое срабатывает один раз за ночь.Сценарий запуска представляет собой серию простых команд, таких как:

set CAUSE=
curl  http://localhost:8080/job/THEBUILDJOB/lastSuccessfulBuild/artifact/fingerprint.txt -o current.txt
if not exist current.txt exit 0
fc /B current.txt last.txt
if ERRORLEVEL 1 set CAUSE=New build available
copy /y current.txt last.txt

. Он получает определенный файл (fingerprint.txt) из последней успешной сборки и сравнивает его (через fc) с копией, которую мы сохранили.в рабочей области.Если они совпадают - сборка не происходит.Если они отличаются, мы запускаем сборку с помощью DOS Build Trigger, устанавливая переменную CAUSE, а затем сохраняем новый файл в рабочей области триггера.

...