Изменить параметры сборки TeamCity программно

Я создал некоторые системные свойства в конфигурации сборки TC. Значение этих свойств передается в конфигурацию maven следующим образом:

clean test -Dargument1=%system.property1% -Dargument2=%system.property2%

И это работает, как и ожидалось. Что я хочу сделать сейчас, так это изменить значение системных свойств после завершения сборки, чтобы следующая сборка получила эти значения. Можно ли это сделать программно, с помощью Java или Maven? Это правильный подход?


person josemartins88    schedule 11.04.2013    source источник
comment
Можете ли вы описать свой вариант использования для этого?   -  person Andrew Logvinov    schedule 11.04.2013
comment
У меня есть большой список тестовых случаев для запуска. В каждой сборке я хочу запускать только часть, поэтому мне нужны две переменные (where_to_start и how_many_to_run). Когда сборка завершится и по результатам тестов я хочу изменить эти значения. Конечно, я мог бы сохранить это в файле, но также было бы удобно, если бы я/другие люди могли вручную изменить эти значения, не редактируя этот файл через ssh.   -  person josemartins88    schedule 12.04.2013
comment
Я понимаю. Да, это возможно. Взгляните на эту ссылку .   -  person Andrew Logvinov    schedule 13.04.2013
comment
Я пробовал, но это только меняет значение для текущей сборки. В следующем все системные свойства будут иметь значение, которое я установил в начале.   -  person josemartins88    schedule 15.04.2013
comment
Ах, да, я не подумал об этом. Вероятно, вам следует задать этот вопрос на форуме TeamCity.   -  person Andrew Logvinov    schedule 15.04.2013


Ответы (2)


Для этого можно определить свойства сборки. После завершения сборки вы можете создать подключаемый модуль Maven, который отправляет почтовый запрос в TeamCity и изменяет значения этих свойств сборки для типа сборки.

person carlspring    schedule 11.04.2013

Если бы я был там, я бы создал задачу maven, которая обновит ваши свойства через TeamCity restAPI по завершении сборки.

Это выглядит как в основном элегантный способ выполнить эту задачу.

Полное объяснение подключаемого модуля restAPI можно найти здесь: http://confluence.jetbrains.com/display/TW/REST+API+Plugin Что необходимо для вашего варианта использования, описано здесь: Конфигурация сборки и настройки шаблона

Параметры конфигурации сборки: GET/DELETE/PUT http://*teamcity_url_goes_here*/httpAuth/app/rest/buildTypes//parameters/ (принимает/выдает текст/простой) Вы можете создать запрос на обновление ваших параметров.

Еще одна интересная вещь: если вы хотите выполнять запросы к REST API внутри сборки TeamCity, работающей на том же сервере, вы можете использовать предопределенный параметр %teamcity.serverUrl% для создания URL-адреса.

person Антон Курьян    schedule 01.08.2013