Итак, друг и я обсуждаем непрерывную интеграцию и скрипты bat/powershell по сравнению с серверами CI, такими как CruiseControl.Net или Hudson.
Следующая команда scheudo script работает для обновления из SVN, сборки с использованием msbuild, развертывания/копирования, обновления номера сборки/ревизии в приложении и электронной почты в неудачных сборках. Следующим шагом будет добавление вызовов в MSTest и результаты электронной почты, если они не будут успешными.
- Обновление svn
- msbuild > build_deploy_development_out_msbuild
- ([xml] (svn info --xml)). info.entry.commit.revision + [ char] 13 + [char] 10 + (echo% date%% time%) > build_revision_number. HTML
- $linenumber = Select-String build_deploy_development_out_msbuild -pattern "Build Failed" | Select-Object Linenumber
- $smtp = New-Object System.Net.Mail.SMTPClient -ArgumentList localhost | if ($ linenumber > 0) $smtp.Send( "From: Email", "To: Email", "build failed", "build failed... кто-то должен умереть!" )
Это привело меня к вопросу о значении CI-серверов, когда вы можете написать свои собственные сценарии оболочки для достижения той же цели, используя конкретные инструменты проекта (инструмент сборки, контроль источника, модульное тестирование) (т.е. msbuild, nant, svn, git, nunit, mstest и т.д.)
Я еще не испытал стоимость обслуживания. Я хотел получить мнение других о том, что вы делаете свою собственную оболочку script против CruiseControl.Net или Hudson. Обратите внимание: у меня нет опыта работы с серверами CI, поэтому вопрос, поэтому, пожалуйста, не считайте это критичным для серверов CI; Я просто не знаю лучшего ответа и думал, что попрошу сообщество.
С наилучшими пожеланиями! Пит Гордон