уже довольно давно я пытаюсь выяснить, как настроить автоматизированный процесс сборки в нашем магазине. Я прочитал много постов и руководств по этому вопросу, и ни один из них не соответствует моим конкретным потребностям.
Мой репозиторий SVN выглядит следующим образом
\projects
\projectA (a product)
\tags
\1.0.0.1
\1.0.0.2
...
\trunk
\src
\proj1 (a VS C# project)
\proj2
\documentation
Затем у меня есть сетевой ресурс с папкой для каждого проекта (продукта), которая, в свою очередь, содержит двоичные файлы, письменную документацию и сгенерированную документацию API (через NDoc - каждый проект может иметь файл .ndoc в хранилище) для каждой исторической версии (из папки SVN), а также для последней версии (из trunk ).
По сути, я хочу сделать в запланированной пакетной сборке следующие шаги:
- изучить папку SVN проекта и определить тег s , отсутствующий в общем сетевом ресурсе
- для каждого из этих тегов
- проверить папку с тегами
- сборка (с конфигурацией выпуска)
- скопировать получившиеся двоичные файлы в общий сетевой ресурс
- поиск файлов .ndoc
- генерировать файлы CHM через NDoc
- скопировать полученные файлы CHM в общую сетевую папку
- сделать так же, как в 2., но для HEAD ревизии trunk
Теперь проблема в том, что я понятия не имею, с чего начать. Я не храню файлы .sln в хранилище, но могу заменить их файлами MSBuild, которые, в свою очередь, создают проекты C #, относящиеся к конкретному продукту.
Я полагаю, что наиболее тревожной частью является проверка хранилища для тегов, которые еще не были обработаны - то есть поиск тегов и сравнение их со структурой каталогов проекта в общей сетевой папке. Я понятия не имею, как это сделать в любом из инструментов сборки (NAnt, MSBuild).
Не могли бы вы дать мне несколько советов о том, как подходить к этой задаче в целом, а также подробно? Мне все равно, если я использую NAnt, MSBuild или оба. Я знаю, что это может быть довольно сложно, но каждая идея и фрагмент NAnt / MSBuild будут очень полезны.
Заранее спасибо.