Аннотация
Эта статья описывает инструменты и настройки для автосборок стендов через Hudson.
Настройка виртуалки
- Расшарить диск C: с именем disc_c для пользователя build
- Добавить пользователя build в администраторы
- Клонировать нужные хранилища. hg clone [источник] [путь]
Во вложении есть батник, который выполняет эти действия, запускается из любого места на диске. В зависимости от локализации может не выполниться 2ой шаг, поэтому надо проверить добавился ли пользователь build в администраторы и, если не добавился, сделать это вручную.
Описание файлов для тестирования в хранилище draft
- build.xml
В нем хранятся цели(target) для запуска ant'ом.
Для запуска тестов используется тег <runTest>.
Для обычных сборок вызывается AssertAfterBuild, в ней находится список адресов для рассылки, а сама цель вызывается с параметрами: ant -d AssertAfterBuild -Dhost=[ip_адрес_виртуалки] -Dcount=[количество_war_файлов_в_папке_deploy]. Пример: ant -d AssertAfterBuild -Dhost=1.1.0.98 -Dcount=12
В целях с именем ip адресом виртуалки (например: <target name="1.1.0.212">) хранятся xpath пути имен модулей, которые должны задеплоиться на данной виртуалке (файл config.xml).
Цель Login вызывает SoapUI тест, который выполняет логин на указанную виртуалку. ant Login -Dhost=[ip_адрес_виртуалки] -DappPort=[порт] -Dlogin=[имя] -Dpassword=[пароль]. Пример: ant Login -Dhost=1.1.0.98 -DappPort=8080 -Dlogin=COLVIR -Dpassword=colvir
Для отсылки распарсенного лога используется цель SendParsedLog. Работает только на OSGI сборках, выделяет строки начинающиеся с BuildInfo и вызывается в Post build task. Вызов: ant -d SendParsedLog -Dhost=[ip_адрес_виртуалки]. Пример: ant -d SendParsedLog -Dhost=1.1.4.101
Цели с именами заканчивающимися на цифры (CoreModules98) изменяют пулы на виртуалках.
Для запуска ant из Hudson'a нужно выполнить команду set path=C:\ant\1.9.3\bin\;%path% - clear_ws.bat (не используется в сборках OSGI)
Удаляет из \IBM\WebSphere\AppServerCommunityEdition\repository\colvir\ все папки кроме oracle. - deploy_wars.bat (не используется в сборках OSGI)
Вручную деплоит все war файлы.
Описание команд в maven
- Сборка OSGI - mvn clean install -Pdeploy-to-osgi [список модулей, если собирается ядро]
- Обычная сборка - mvn clean install -Pdeploy-to-dir [список модулей, если собирается ядро]
Место для деплоя прописано в C:\maven\conf\settings.xml в профилях с названиями deploy-to-osgi и deploy-to-dir.
Порядок сборки
- OSGI
- Удаляем старые бандлы.
- Убиваем процесс cmd.exe и conhost.exe пользователя build.
- Обновление хранилища.
- Останавливаем сервер, если он запущен.
- Убиваем java, если процесс остался после предыдущего шага и запуск если он остановлен.
- Сборка пулов.
- Сборка ядерных модулей.
- Обновление хранилища дополнительных модулей.
- Сборка дополнительных модулей.
- Ассерт на количество jar файлов в папке hotbundles
- SoapUI тест на логин.
- Post build task: отправляем лог на почту.
- Обычная
- Обновление хранилища
- Сборка ядерных модулей.
- Обновление хранилища дополнительных модулей.
- Сборка дополнительных модулей.
- Остановка сервера.
- Удаляем из \IBM\WebSphere\AppServerCommunityEdition\repository\colvir\ все папки кроме oracle.
- Изменение пулов в файле /IBM/WebSphere/AppServerCommunityEdition/var/config/config.xml.
- Запускаем сервер.
- Деплоим war файлы.
- Перезапускаем сервер.
- Ассерт на модули записанные в config.xml и на количество модулей в папке deploy.
- SoapUI тест на логин.
Ассерты
- На количество файлов
Для OSGI:
Запускается в Hudson командой: psexec -i \\[ip_адрес_виртуалки] -u colvir\build -p buildbuild cmd /c "dir c:\IBM\geronimo\hotbundles\*.jar /b | find /v /c "::" | find "[количество_jar_файлов_в_папке_hotbundles]""
Для обычных сборок:
Запускается в Hudson командой: ant -d AssertAfterBuild -Dhost=[ip_адрес_виртуалки] -Dcount=[количество_war_файлов_в_папке_deploy] - На записи в config.xml
Модули прописаны в build.xml. Для каждой виртуалки есть цель с именем таким же как её ip адрес. - Логин
Запускается в Hudson командой: ant Login -Dhost=[ip_адрес_виртуалки] -DappPort=[порт] -Dlogin=[имя] -Dpassword=[пароль] - На запущенный процесс java.exe
Прописан в build.xml в цели AssertAfterBuild.
Расписание сборок
Расписание сборок находится в Hudson в настройках задачи. Настроить Проект -> Триггеры сборки -> Собирать периодически. В расписании используется cron syntax.
Схема:
* * * * * выполняемая команда - - - - - | | | | | | | | | ----- День недели (0 - 7) (Воскресенье =0 или =7) | | | ------- Месяц (1 - 12) | | --------- День (1 - 31) | ----------- Час (0 - 23) ------------- Минута (0 - 59)
Пример:
0 8 * * *
Сборка будет выполняться каждый день в 8 утра.
НравитсяСтаньте первыми кому понравится это
Евтушик Алексей