Хадсон: привязать определенные части работы к конкретным рабам - PullRequest
1 голос
/ 04 ноября 2010

Наш программный проект содержит код Perl, C & VC ++. Я пытаюсь настроить Hudson в конфигурации master / slave для управления процессом сборки и тестирования. У меня есть один linux-бокс, работающий как master, и Windows XP (32-битная), Windows 7 (64-bit), linux-боксы, работающие как slaves. Процесс сборки включает в себя сборку определенных частей проекта на определенных машинах. Поэтому я хочу создать 32-битную версию нашего кода VC ++ для XP box и 64-битную версию для Windows 7. Аналогично, я должен скомпилировать код C на linux box, используя gcc. И наконец, когда все будет сделано, начните модульные тесты Perl, чтобы убедиться, что все в порядке.

С этим связаны два вопроса:

1) Я не мог понять, где в конфигурации задания можно сказать «запустить build-32.bat на ведомом компьютере xp» и «запустить build-64.bat на ведомом устройстве Windows 7» и так далее. Короче говоря, я пытаюсь связать определенные части процесса сборки с определенными рабами. Как я могу это сделать?

2) Когда я запускаю командные файлы для завершения процесса сборки, как Хадсон узнает, была ли моя сборка успешной или нет? Я не мог найти какую-либо часть, где я мог бы захватить выходные данные сценариев сборки и проанализировать это. Или я должен делать это по-другому?

Спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 04 ноября 2010

1) разные рабы

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

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

Насколько мне известно, нет способа (кроме проекта мультиконфигурации) запускать разные части одного задания на разных ведомых устройствах. В этом случае вам нужно создать более одной работы и связать их. Преимуществом нескольких заданий является возможность распараллеливания этапов сборки с помощью плагина join . К сожалению, нарезка работы создает много беспорядка и более сложна в обслуживании.

2) Пакетный файл

Хадсон использует уровень ошибки (или код выхода). Чтобы сохранить, вы всегда должны устанавливать код выхода, вызывая exit /B <error_code> как последнюю команду вашего скрипта. Замените на 0 в случае успеха или ненулевое значение для ошибки. Вы также должны вызвать все ваши командные файлы с помощью команды call, например, call mybatch.bat Param1 Param2.

1 голос
/ 04 ноября 2010

Я не уверен, что этого можно достичь за одну работу.

Но вы можете настроить свои различные шаги на разных заданиях (каждое из которых привязано к правому ведомому) и контролировать их выполнение и координацию с помощью Join Hudson Plugin .

alt text

...