Управление версиями и рабочим процессом еженедельника Teamcity - PullRequest
1 голос
/ 19 октября 2011

Я пытаюсь запустить еженедельный выпуск в TeamCity, и мне трудно понять, как я собираюсь его выпустить.В настоящее время управление версиями происходит следующим образом:

[major].[minor].[buildnumber].[svnrevision]  

major = major release  
minor = incremented on release (weekly-basis) to production  
buildnumber = teamcity's autoincremented build number  
svnrevision = revision number from svn

Означает ли это, что каждую неделю после создания тега мне придется создавать отдельную конфигурацию сборки для нового выпуска, чтобы я мог увеличивать вспомогательную версию следующим образом?

1.1. {0}.% Build.vcs.number. *%

до

1.2. {0}.% build.vcs.number. *%

и укажите новый build build из trunk в папку tags\release-1.1.0?

Нет либолее простой способ сделать это?

Ответы [ 2 ]

1 голос
/ 20 октября 2011

Полагаю, меня немного смущает вопрос, почему вы меняете конфигурацию сборки с внешней линии на папку tag / release при изменении номера версии кодовой базы.

Если бы я это делал, я быбудет просто создать одну конфигурацию, которая строится из ствола.Раз в неделю вы можете увеличивать номер версии, скажем, от 1.1.xx до 1.2.xx на экране конфигурации TeamCity и продолжать сборку из транка.На следующей неделе вы поднимаете его до версии 1.3.xx и продолжаете сборку из ствола.

Обычно теги просто предназначены для создания моментальных снимков во времени, это именно тот источник, который использовался для того, чтобы сделать определенную сборку во времени,Я ожидаю, что ваша папка сборки тегов будет больше похожа на \ tags \ release-1.1.232.3232 и т. Д.

Иногда вам может понадобиться взять определенный тег и создать из него ветку.То есть, если вам нужно поработать над предыдущим выпуском, чтобы исправить некоторые ошибки перед выпуском следующей версии (из транка).В этом случае я бы создал новую конфигурацию для сборки веток, тогда кодовая база была бы что-то вроде \ branch \ release-1.1.0

Теперь у вас есть одна конфигурация для транка, которая, вероятно, будетв 1.2 или 1.3 и продолжает увеличиваться, в то время как конфигурация ветви будет в 1.1 или что-то подобное.Позже вы можете использовать конфигурацию ветки для другого номера версии, так как исправления ошибок сделаны в 1.1, как вы предложили с тегами.

Мне кажется, что, прочитав это снова, возможно, вы используете концепцию ветоккак теги ...

1 голос
/ 19 октября 2011

В TeamCity 6 и выше вы можете выполнить несколько этапов сборки.

Вы можете создать начальный шаг сборки перед фактической сборкой, который использует пользовательскую задачу MSBuild. Это позволит проверить глобальный файл AssemblyInfo.cs, на который ссылаются все проекты (см. Автоматическое управление номерами версий сборки в VS2008 ), получить номер версии из файла, увеличить незначительную версию, записать новое значение возвращается и проверяет обновленный файл.

Дополнительные шаги сборки затем запустят сборку и пометят.

Вы можете передавать обновления для TeamCity из скрипта сборки, используя служебные сообщения, в том числе сообщая номер сборки, см. http://confluence.jetbrains.net/display/TCD65/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-ReportingBuildNumber

...