Итак, мы с другом обсуждали непрерывную интеграцию и сценарии bat / powershell против серверов CI, таких как CruiseControl.Net или Hudson.
Следующий псевдокрипт powershell предназначен для обновления из SVN, сборки с использованием msbuild, развертывания / копирования, обновления номера сборки / ревизии в приложении и отправки по электронной почте неудачных сборок. Следующим шагом будет добавление вызовов в MSTest и результатов электронной почты, если они не будут успешными.
- svn update
- 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 "Ошибка сборки" | Номер объекта Select-Object
- $ smtp = New-Object System.Net.Mail.SMTPClient -ArgumentList localhost | if ($ linenumber> 0) $ smtp.Send ("From: Email", "To: Email", "build build failed", "сборка не удалась ... кто-то должен умереть!")
Это привело меня к вопросу о ценности серверов CI, когда вы можете написать свои собственные сценарии оболочки для достижения той же цели, используя специальные инструменты проекта (инструмент сборки, управление исходным кодом, модульное тестирование) (т.е. msbuild, nant, svn, git, nunit, mstest и т. д.)
У меня еще не было затрат на обслуживание. Я хотел узнать мнение других о том, как создать собственный сценарий оболочки, а не CruiseControl.Net или Hudson. Обратите внимание, что у меня нет опыта работы с серверами CI, поэтому вопрос, поэтому, пожалуйста, не принимайте это как критичный для серверов CI; Я просто не знаю лучшего ответа и решил спросить у сообщества.
С наилучшими пожеланиями!
Пит Гордон