Подтвердить что ты не робот

Как я могу переопределить название ветки <default> в TeamCity 7.1 с помощью поддержки разветвления Git?

У меня есть ветки функций построения CI из Github и создания/упаковки их в локальную папку, используя соглашение об именах папок на основе проекта, номера ветвей и сборки.

Для названных ветвей (feature1, feature2) это отлично работает.

Проблема в том, что когда я выполняю фиксацию для мастера, TeamCity предоставляет команду teamcity.build.branch как <default> - это означает, что когда шаг сборки расширяется

E:\Packages\MyProject\%teamcity.build.branch%\

он заканчивается с E:\Packages\MyProject\<default> - который затем разбивает шаг сборки, потому что это не допустимый путь к Windows.

Я вижу имя ведущей ветки в полностью квалифицированном параметре сборки:

teamcity.build.branch                         <default>
teamcity.build.checkoutDir                    C:\TeamCity\BuildAgents\agent-mulder\work\2151838a7933464d
teamcity.build.default.checkoutDir            2151838a7933464d
teamcity.build.id                             16347
teamcity.build.vcs.branch.github_myproject    refs/heads/master

но в идеале мне нужно получить master как teamcity.build.branch для использования в моих шагах сборки.

Могу ли я преобразовать параметр во время выполнения? Переопределить поведение? Я даже пытался установить имя ветки VCS в DO_NOT_USE в надежде, что "master" больше не будет соответствовать стандарту - но это тоже не работает.

4b9b3361

Ответ 1

В teamcity 7 его просто% vcsroot.branch% который возвращается.

В моем случае у меня есть

%MajorVersion%.%MinorVersion%.%PatchVersion%-%vcsroot.branch%

Все они заданы в параметрах построения. Формат чисел -% BuildFormatSemVer%, который находится выше и. {0}

%BuildFormatSemVer%.{0}

Что возвращает

#1.0.0-develop.4

Ответ 2

Не идеально, но я смог обойти его, создав новую ветвь в git с именем "teamcity" и установив ее как ветку по умолчанию в TeamCity, кажется, что она действительно существует, поскольку она работает когда я создал ветку, но не сделал, когда вы только что ввели поддельное имя.

Надеюсь, они на самом деле исправит это, потому что это определенно взлом.

Ответ 3

Мы столкнулись с этой проблемой несколько раз при создании конвейеров. Это наиболее заметно при попытке автоматически создавать ветки функций и выпуска, используя рабочий процесс Gitflow. То, что мы смогли сделать, это использовать teamcity.build.vcs.branch.github_myproject и регулярное выражение в sed для дезинфекции строки всякий раз, когда мы хотим ее использовать. Это главным образом для артефактов водяных знаков для целей отладки.

Более серьезная проблема, по крайней мере для нас, заключается в том, что версия TeamCity 7.1.1 не автоматически запускает сборки зависимостей для всего, что не является сборкой по умолчанию в корне VCS. Очевидно, что это огромная точка боли, так как теперь нам нужно щелкнуть вручную в инструменте. Мы еще не выяснили, как можно обойти это, кроме крючков в git, которые используют HTTP API для вызова на правильный шаг сборки.

Ответ 4

Я не знаю, было ли это ранее ответили или больше актуально.

В TeamCity 10.0.2 создайте настраиваемый параметр, например% Git.Reference%. Если вам требуется pull (или push) от TC до git, установите для этого значение "ref/head/Dev" или "ref/Head/yourbranch". Используйте это в своей исходной ссылке VCS.