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


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

  1. создайте файл версии (или используйте assemblyinfo.цезий). Информация о версии будет иметь следующий формат .... Этот файл будет проверен в моем VCS.
  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)

Любая помощь очень ценится.

1 6

1 ответ:

Для вашего первого вопроса: да, это возможно:

  1. Добавить .мерзавец(.СВН, .HG etc) каталог правил VCS
  2. прочитайте номер версии в вашем скрипте сборки в teamcity (бегун командной строки) на вашем любимом языке сценариев и включите его.
  3. установить номер сборки через протокол взаимодействия
  4. обновить номер сборки в файле версии на вашем любимом языке сценариев
  5. выполните шаги сборки
  6. выполнить коммит и push, вы можете, потому что вы уже иметь.мерзавец(.СВН, .HG etc) каталог в build dir на последнем шаге

Извините, но я не могу ответить на ваш второй вопрос, потому что я не знаю никаких подходящих инструментов для windows. На linux я бы использовал bash.