Запустите CI build on pull request merge в TeamCity

У меня есть сборка CI, которая настроена в TeamCity, которая вызовет, когда запрос на вытягивание будет сделан в BitBucket (git). В настоящее время он строится против исходной ветви запроса на вытягивание, но было бы более значимым, если бы он мог построить объединенный запрос на вытягивание.

мои исследования оставили меня со следующими возможными решениями:

  1. скрипт запускается как часть сборки-скорее не делайте этого, если это возможно
  2. Server/agent plugin-не найдено достаточно документация, чтобы выяснить, возможно ли это

кто-нибудь делал это раньше в TeamCity или есть предложения о том, как я могу этого достичь?

обновление: (основан на Джон Hoerr ответа)

альтернативное решение-забудьте о TeamCity, выполняющем слияние, используйте веб-крючки BitBucket для создания объединенной ветви, как это делает github, и следуйте ответу Джона Хоэрра.

4 ответов


добавить Спецификация Филиала refs/pull-requests/*/merge в проекте корень VCS. это вызовет TeamCity для мониторинга объединенного вывода запросов pull для ветви по умолчанию.


Мне кажется, что функциональность, которую вы ищете, предоставляется через функцию "удаленного запуска" TeamCity. Это в основном личная сборка с Объединенными источниками и целевой ветвью слияния.

https://confluence.jetbrains.com/display/TCD8/Branch+Remote+Run+Trigger

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

по умолчанию TeamCity запускает персональную сборку для пользователя, обнаруженного в последнем коммите ветви. Вы также можете указать пользователя TeamCity в названии филиала. Для этого используйте заполнитель TEAMCITY_USERNAME в шаблоне и имя пользователя TeamCity в имени ветви, например pattern remote-run/TEAMCITY_USERNAME/* будет соответствовать ветви remote-run / joe / my_feature и начнет персональную сборку для пользователя TeamCity joe (если такой пользователь существует)."

затем настройте пользовательский" запрос на вытягивание " Webhook в Bitbucket.

https://confluence.atlassian.com/display/BITBUCKET/Tutorial%3A+Create+and+Trigger+a+Webhook

поэтому для вашего конкретного случая использования с интеграцией BitBucket вы можете использовать созданный Вами WebHook, а затем иметь сценарий оболочки / bash (в зависимости от вашей ОС сервера TeamCity), который автоматически запускает команды удаленного запуска git, что, в свою очередь, будет автоматически запускайте сборку CI удаленного запуска TeamCity на сервере. Затем вы сможете перейти в ветку TeamCity UI, + HEAD: remote-run/my_feature и просмотреть результаты удаленного запуска на основе каждой функции и быть уверенным в результатах сборки кода, который вы объединяете в свою основную строку кода.


кажется, что BitBucket / Stash создает ветви для запросов pull под:

refs / pull-requests / / от

вы должны иметь возможность настроить удаленный запуск для этого местоположения либо с помощью функции запуска из ветки Teamcity, либо с помощью крючка приема http post в BitBucket/Stash.


вы также можете использовать этот плагин : https://github.com/ArcBees/teamcity-plugins/wiki/Configuring-Bitbucket-Pull-Requests-Plugin

(полное раскрытие: я главный вкладчик: P, и я использую его каждый день)