Я хочу предоставить тег 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
.