Вопрос по git-branch, continuous-integration, teamcity, teamcity-7.1 – Как я могу переопределить имя ветви <default> в TeamCity 7.1, используя поддержку ветвления Git?

17

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

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

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

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

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

яcan см. имя главной ветви в полном параметре сборки:

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" больше не будет соответствовать значению по умолчанию, но, похоже, это тоже не сработает.

почему бы не добавить условное в скрипт сборки, который отображает"<default>" в"master"? Adam Ralph
Я добавил заявку в их проект YouTrack для TeamCity, к сожалению, это рассматривается как вопрос, а не проблема юзабилити, но если мы сможем привлечь больше людей, комментирующих это, это может помочь:youtrack.jetbrains.com/issue/TW-23699 markus101

Ваш Ответ

4   ответа
3

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

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

2

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

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

1

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

4

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

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

Которые все установлены в параметрах сборки. Числовой формат% BuildFormatSemVer%, который выше и выше. {0}

%BuildFormatSemVer%.{0}

Который возвращается

#1.0.0-develop.4
Это решение не сработало для меня. Когда я использую% vcsroot.branch%, я всегда получаю имя ветви по умолчанию, даже при создании других веток.
функциональные ветки (при условии, что вы создаете их, как и все остальное) могут вызвать проблемы из-за /
Помогает ли использование паразитов в спецификации ветки? По крайней мере% teamcity.build.branch% использует только эту часть имени. Например: +: ссылки / головы / исправления / (*) +: ссылки / головы / релиз / (*)
Я попал в эту настройку Gitflow; это было хорошей отправной точкойtigranetworks.co.uk/blogs/electricdreams/… честно говоря, я нашел документацию TeamCity немного хитом & amp; Мисс. К сожалению, мои огромные затраты времени сейчас ушли на предыдущую компанию & gt; & lt;
Была такая же проблема. Кажется, до сих пор отлично работает, есть ли сценарии, в которых он не работает так, как% teamcity.build.branch%?

Похожие вопросы