====== Конвеер сборки релизов ====== _FCKG_BLANK_TD_ ===== Описание работы ===== Конвеер предназначен для автоматизации построения обновлений, выявления ошибок и тестирования. Конвеер представляет собой последовательность шагов, описанных и выполняемых в последовательности, указанной в файле построения. Для выполнения данных шагов используется утилита NAnt ([[http://nant.sourceforge.net/|http://nant.sourceforge.net/]]). \\ Конвеер позволяет выполнять запуск программ и команд для прохождения данных шагов. По окончании процесса сборки результаты отправляются по почте указанным в настройках людям. Все шаги конвеера и статус их выполнения логируются, что позволяет отследить сбойный шаг. Сбой при выполнении хотя бы одного шага считается фатальной ошибкой и вызывает прекращение построения. ===== Шаги конвеера ===== - Удаление и пересоздание рабочей дирректории (для очистки от предыдущего построения). - Получение исходников из СВН. Для этого используется утилита svn.exe из пакета VisualSVN. - Построение решения. Для этого используется утилита msbuild.exe из Microsoft Framework. Построение происходит в конфигурации Release | x86. Конфигурацию можно изменить, поменяв аргументы передаваемые при запуске утилиты из конвеера. Также для сборки можно установить считать ли предупреждения, возникающие при построении за ошибку. На данный момент данное ограничение отключено, но впоследствии должно быть включено. - Сборка пакета обновления. - Установка обновления для программы установленной в тест-среде. - Обновление структуры БД с помощью утилиты DBUpdater. - Создание резервной копии БД для того, чтобы можно было убрать последствия тестирования. Это необходимо для того, чтобы при следующей сборке данные занесенные при прошлом тестировании не повлияли на результаты текущего. Для этого используется утилита osql.exe. - Прохождение тестов EasyTest. Для выполнения данных тестов используется программа TestExecutor из пакета DX. По результатам тестирования формируется ZIP-архив с журналом тестирования и скриншотами ошибок (при их наличии). По завершении работы конвеера данный архив прикрепляется к рассылке результатов сборки. После завершения работы тестировщика БД восстанавливается из созданного ранее бэкапа. - Архивация и перемещение пакета обновлений для конечных пользователей. - Рассылка сообщений о результатах построения. Набор файлов для рассылки описывается в конвеере и может быть изменен. На данный момент в рассылку входит отчет выполнения шагов конвеера и отчет о прохождении тестов. ===== Запуск конвеера ===== Для запуска конвеера достаточно в тест-среде в командной строке, запущенной от имени администратора указать: \\ "C:\Nant\nant-0.92\bin\nant" /f:"C:\Nant\nant-0.92\examples\CreateWinterQueenRelease\examples.build" -logger:NAnt.Core.MailLogger \\ Сейчас конвеер расположен в корне диска С:%%\%% ===== Сборка Java Script клиента ===== Скрипты можно собрать батником DevPark.WinterQueen%%\%%DevPark.WinterQueen.Web%%\%%js%%\%%build.bat При этом на машине должен стоять Ruby. На второй версии 64-бит работает нормально. Так же в батнике указан пусть к Sencha Cmd, может быть его надо будет подредактировать для той машины, на которой будет запускаться сборка. Готовые скрипты, css, ресурсы попадают в DevPark.WinterQueen%%\%%DevPark.WinterQueen.Web%%\%%js%%\%%build%%\%%production%%\%%appWQ Как я понимаю работа конвеера будет заключаться в том, чтобы: 1) взять изменения с SVN, запустить build.bat; 2) готовые скрипты скопировать в publish папку с версией в названии (js/1.0.5, например, версию взять с DevPark.WinterQueen%%\%%DevPark.WinterQueen.Web%%\%%js%%\%%app.ver); 3) поправить Default.aspx, закомментив блок Debug scripts, раскомметив блок Production scripts и исправить путь к продакшн скриптам в соответствии с актуальной версией.