TeamCity для чтения и обновления номера версии из файла версии
Мы используем TeamCity в качестве сервера CI, и мы думали, как реализовать метод версификации наших релизов, который безопасен (т. е. минимален для человеческой ошибки), но также требует наименьших усилий. Пока что наиболее логичным представляется следующее:
- создайте файл версии (или используйте assemblyinfo.цезий). Информация о версии будет иметь следующий формат .... Этот файл будет проверен в моем VCS.
- запуск сборки TeamCity
- TeamCity читает версию файл из Шага 1, выбирает каждый отдельный номер и устанавливает соответствующие параметры сборки TeamCity (поэтому я могу использовать их позже для таких вещей, как создание пакетов nuget и маркировка)
- TeamCity автоматически увеличивает стоимость конечного построить граф.
- TeamCity сохраняет информацию о новой версии обратно в файл версии (с обновленным "количеством сборок") Затем TeamCity выполняет остальные шаги сборки, создает файлы, запускает модульные тесты, устанавливает правильную сборку. версий и т. д.
- TeamCity наконец возвращает файл обратно в VCS
Мы считаем, что преимущество этого способа заключается в том, что если нам нужно исправить старый релиз, то номер версии будет правильным, и TeamCity может просто работать со старым файлом версии и увеличивать количество сборок, как обычно. Это делает предположение, что мы правильно обновляем наши основные/второстепенные/патч-версии. Надеюсь, это будет хорошо работать с функцией TeamCity, которая скоро выйдет 7.1 это позволяет выбрать, какую ветвь построить с помощью диалогового окна пользовательской сборки.
Из того, что я уже читал до сих пор, такие операции должны быть возможны в TeamCity, но мы ищем самый простой корень, чтобы исправить это, поскольку мы всего лишь два человека, и мы не можем позволить себе тратить много времени на то, чтобы стать экспертами в Nant или powershell только для того, чтобы обнаружить, что он может не делать то, что мы хотим.
Итак, я полагаю, что мои вопросы сводятся к следующему:
- это то, что я есть. предложение возможно?
- Если да, то какой инструмент лучше всего использовать, учитывая мой ограниченный опыт работы с Nant, powershell и т. д. (т. е. который быстрее всего изучается для тех, чей опыт работы с командной строкой и скриптом простирается до простых операций DOS и немного VBScript)
Любая помощь очень ценится.
1 ответ:
Для вашего первого вопроса: да, это возможно:
- Добавить .мерзавец(.СВН, .HG etc) каталог правил VCS
- прочитайте номер версии в вашем скрипте сборки в teamcity (бегун командной строки) на вашем любимом языке сценариев и включите его.
- установить номер сборки через протокол взаимодействия
- обновить номер сборки в файле версии на вашем любимом языке сценариев
- выполните шаги сборки
- выполнить коммит и push, вы можете, потому что вы уже иметь.мерзавец(.СВН, .HG etc) каталог в build dir на последнем шаге
Извините, но я не могу ответить на ваш второй вопрос, потому что я не знаю никаких подходящих инструментов для windows. На linux я бы использовал bash.