TeamCity для чтения и обновления номера версии из файла версии

Мы используем TeamCity в качестве CI-сервера и думаем, как реализовать метод управления версиями наших выпусков, который был бы безопасным (, т. е. с минимальной вероятностью человеческой ошибки ), но при этом требующим наименьших усилий. Пока наиболее логичным представляется следующее:

  1. Создайте файл версии (или используйте Assemblyinfo.cs ). Информация о версии будет в формате.... Этот файл будет зарегистрирован в моей системе контроля версий.
  2. Запустите сборку TeamCity
  3. TeamCity считывает файл версии с шага 1, выбирает каждый отдельный номер и устанавливает соответствующие параметры сборки TeamCity (, чтобы я мог использовать их позже для таких вещей, как создание пакетов nuget и маркировка )
  4. . TeamCity автоматически увеличивает конечное значение «количества сборок».
  5. TeamCity сохраняет информацию о новой версии обратно в файл версии (с обновленным «счетчиком сборок» )
  6. . Затем TeamCity выполняет остальные этапы сборки, создает файлы, запускает модульные тесты, устанавливает правильные версии сборки и т. д.
  7. TeamCity, наконец, возвращает файл обратно в VCS

. Мы считаем, что преимущество такого подхода заключается в том, что если нам понадобится исправить старый выпуск, тогда номер версии будет правильным, и TeamCity сможет просто работать со старым файлом версии и увеличивать количество сборок, как обычно. Это делает предположение, что мы правильно обновляем наши основные/второстепенные версии/исправления. Мы надеемся, что это будет хорошо работать с функцией TeamCity 7.1, которая скоро будет выпущена, и позволит вам выбрать, какую ветку строить с помощью пользовательского диалогового окна сборки.

Из того, что я уже читал до сих пор, такие операции должны быть возможны в TeamCity, но мы ищем самый простой корень, чтобы исправить это, поскольку мы всего два -человека, и мы не можем позволить себе потратить много времени на то, чтобы стать экспертами в Nant или powershell, только чтобы обнаружить, что они могут не делать то, что нам нужно.

Итак, я полагаю, что мои вопросы таковы:

  1. Возможно ли то, что я предлагаю?
  2. Если да, то какой инструмент лучше всего использовать, учитывая мой ограниченный опыт работы с Nant, powershell и т. д. (, т. е. какой инструмент быстрее всего освоить для того, чей опыт работы с командной строкой и сценариями простирается до простых операций DOS и небольшого количества VBScript)

Любая помощь приветствуется.

7
задан King Roger 7 August 2012 в 16:17
поделиться