У меня есть несколько проектов, которые создают пакеты NuGet, которые я публикую на внутреннем сервере. Мы используем семантическое управление версиями и используем теги в нашем репозитории Git для управления номерами версий.
Я отмечаю следующее:
git tag -a v1.0.0 -m "tagged"
И во время сборки TeamCity я запускаю git describe --long
, который создает такой вывод:
v1.0.0-0-ge9c047d
Четвертое число на выходе - это количество коммитов после тега. 0
здесь означает, что с тега не было сделано никаких коммитов. Я использую эти первые четыре числа как номер версии (и, кстати, всю строку как AssemblyInformationalVersion).
У меня есть пакет TeamCity и публикую пакет NuGet, но здесь, где он становится липким. Я только хочу публиковать теги, никогда не комментируя теги (потому что номер версии в этом случае был бы неправильным, возможно, ОЧЕНЬ неправильным).
Я попытался установить "спецификацию ветки" в корне VCS на "+: refs/tags/*", в результате чего все теги будут созданы, но TeamCity также настаивает на создании "ветки по умолчанию", Если я установлю "ветвь по умолчанию" на то, что не существует, я получаю сообщение об ошибке.
Я думал о завершении сборки раньше, если конкретная сборка не является тегом, но я не могу понять, как это сделать, не отказываясь от сборки, чего я не хочу.
Как заставить один или несколько шагов сборки работать только для новых тегов, а не для обычных коммитов?