Я хочу предоставить тег git для сервера TeamCity для его создания.
Я передаю тег (т.е. release_1.1) в качестве параметра задания. Таким образом, внутри задания тег доступен как %tag%, но под Version Control Settings я не вижу способа использовать этот параметр, чтобы сервер мог проверить этот тег.
Можно ли использовать этот параметр в настройках для проверки тега?
Как создать тег git в TeamCity?
Ответ 1
- Перейдите в раздел "Изменить параметры конфигурации" → "Настройки контроля версий"
-
Для всех ваших корней VCS для этой конфигурации сборки нажмите "Редактировать", а затем:
- put '+: refs/tags/*' в текстовое поле спецификации Branch
- проверить Использовать теги как ветки
Затем вы сможете выбрать тег, когда вы нажимаете кнопку "..." рядом с пробегом.
Ответ 2
Мне удалось выполнить следующие действия:
В конфигурации сборки в разделе "Параметры сборки":
Определите Конфигурационный параметр:
- Имя:
TagToBuild - Вид:
Configuration parameter - Значение:
- Spec:
- Ярлык:
Tag to build - Описание:
This should be the full path to the tag, i.e. refs/tags/0.5.5 - Дисплей:
Prompt - Тип:
Text
- Ярлык:
Обратите внимание, что поле "значение" было намеренно оставлено пустым.
Затем в корне VCS:
- Название ветки:
%TagToBuild%
Когда я запустил сборку, мне будет предложено указать имя ветки/тега:

Ввод значения, такого как refs/tags/0.5.0, приводит к созданию хорошей сборки с именем ветки, указанным в результатах:

Если вы попытаетесь помочь пользователю каким-либо образом за пределами описания, это, похоже, терпит неудачу. Поэтому вы не можете выполнить одно из следующих действий:
- В параметре конфигурации установите значение "Значение" на
refs/tags/и добавьте имя тега. - В корне VCS установите "Имя ветки" на
refs/tags/%TagToBuild%.
В обоих случаях на нашем немного старом (7.1) экземпляре Team City я получил ошибку:
Не удалось собрать изменения, ошибка: аргумент 2 для параметра @NotNull для jetbrains/buildServer/buildTriggers/vcs/VcsRootChangesLoader.loadChanges не должно быть null
Ответ 3
Я не делал этого с тегами, но я делал это с помощью ветвей. Я говорю TeamCity, чтобы построить все ветки, указав, что он должен построить +:refs/heads/*. Теперь, когда я нажимаю любую ветку, TeamCity строит ее. Затем внутри сборки я использую git branch и ищите строку, начинающуюся с *. Я вставляю это имя ветки в удобное место (AssemblyInfo.cs для .NET, package.json для node.) См. http://confluence.jetbrains.com/display/TCD8/Working+with+Feature+Branches
Ответ 4
Вам нужно указать формат тега в refs/tags/${tagName}.
Итак, ваш будет refs/tags/release_1.1.