2016-09-23 2 views
6

Я хочу динамически установить значение «teamcity.build.branch» в соответствии с результатом другой конфигурации сборки сборки TC в конвейере сборки.Динамически меняющийся «teamcity.build.branch»

Возможно ли это? Похоже, что значение оценивается и используется в начале конвейера сборки.

UseCase:

  • Я уверен, выполнение конфигурации TC сборки, которая будет генерировать уникальный номер
  • в подключаемой конфигурации TC сборки части одного и того же трубопровода я хочу номер, который будет использоваться в «TeamCity .build.branch '- только для визуализации

Я уже использую службу сообщений, чтобы перезаписать параметр, но это изменение не принимается во внимание. Похоже, что значение читается на самом раннем этапе процесса сборки.

+0

хотите сборки на одной ветви, чтобы вызвать сборку, чтобы быть запущена на той же ветке? –

+0

Обновлено usecase – Crazyjavahacking

ответ

2

Вы можете перезаписать значение параметра с помощью простого скрипта, который испускает "set parameter" service message.

С помощью специального сообщения службы в сценарии сборки, вы можете динамически обновлять параметры сборки билда прямо с шага сборки (...)

С таким подходом, вот шаги что вам необходимо выполнить:

В первой конфигурации сборки определите настраиваемый параметр сборки и установите его значение для уникального числа, которое вы генерируете. Сделайте это прямо из скрипта, который генерирует уникальный номер, написав что-то вроде этого, чтобы STDOUT:

##teamcity[setParameter name='magicNumber' value='1234'] 

В зависимости сборки конфигурации, теперь у вас есть доступ к этому параметру. Использование второго сценария сборки, вы можете перезаписать teamcity.build.branch с тем же механизмом:

##teamcity[setParameter name='teamcity.build.branch' value='the new value'] 

Примечание 1: Я рекомендую от перезаписи встроенных параметров, так как это может иметь странные побочные эффекты. Скорее, определите настраиваемый параметр во второй конфигурации сборки и используйте это для целей визуализации.

Примечание 2: В случае, если вы решили игнорировать Примечание 1, может быть необходимо, чтобы перезаписать параметры сборки, установив свойство зависимостей, как указано in the docs в разделе «Переопределение Зависимости Свойства»:

##teamcity[setParameter name='reverse.dep.*.teamcity.build.branch' value='the new value'] 
+0

Я обновил вопрос. Я уже изменяю значение с помощью службы сообщений. Однако это изменение не принимается во внимание. – Crazyjavahacking

+0

Я обновил ответ. Если это вообще возможно, то вот так. Однако я не уверен, что на самом деле это возможно. – theDmi