Ответ 1
Суть в том, что вы можете добавить спецификацию ветки, +:refs/pull/*/merge
, в проект VCS Root. Это приведет к созданию триггера на объединенном выходе запроса pull.
У меня есть сборка CI, которая настраивается в TeamCity, которая будет срабатывать, когда в BitBucket (git) будет сделан запрос на pull. В настоящее время он строит против ветки источника запроса на растяжение, но было бы более значимым, если бы он мог создать объединенный запрос pull.
Мое исследование оставило меня со следующими возможными решениями:
Кто-нибудь сделал это раньше в TeamCity или у вас есть предложения о том, как я могу это достичь?
Обновление: (на основании ответа Джона Хоерра)
Альтернативное решение - забудьте о TeamCity, выполняющем слияние, используйте веб-крючки BitBucket для создания объединенной ветки, например, github, и следуйте за ответом Джона Хоерра.
Суть в том, что вы можете добавить спецификацию ветки, +:refs/pull/*/merge
, в проект VCS Root. Это приведет к созданию триггера на объединенном выходе запроса pull.
Мне кажется, что функциональность, которую вы ищете, предоставляется с помощью функции "Удаленный запуск" TeamCity. Это в основном личная сборка с объединенными источниками и целевой слиянием.
https://confluence.jetbrains.com/display/TCD8/Branch+Remote+Run+Trigger
"Эти ветки являются регулярными ветвями управления версиями, а TeamCity не управляет ими (т.е. если вам больше не нужна ветка, вам нужно будет удалить ветвь с использованием средств управления обычной версией).
По умолчанию TeamCity запускает личную сборку для пользователя, обнаруженного в последнем фиксации ветки. Вы также можете указать пользователя TeamCity во имя ветки. Для этого используйте заполнитель TEAMCITY_USERNAME в шаблоне и имя пользователя TeamCity в имени ветки, например, шаблон remote-run/TEAMCITY_USERNAME/* будет соответствовать удаленной работе ветки /joe/my _feature и начать личную сборку для TeamCity user joe (если такой пользователь существует).
Затем настройте пользовательский "Pull Request Created" Webhook в Bitbucket.
https://confluence.atlassian.com/display/BITBUCKET/Tutorial%3A+Create+and+Trigger+a+Webhook
Итак, для вашего конкретного случая использования с интеграцией BitBucket вы можете использовать созданный вами WebHook, а затем иметь оболочку / bash script (в зависимости от вашей операционной системы TeamCity Server), которая запускает команды удаленного запуска git автоматически, что, в свою очередь, автоматически инициирует сборку Team City Remote Run CI на вашем сервере. Затем вы сможете перейти в ветку TeamCity UI, + HEAD: remote-run/my_feature и просмотреть результаты удаленного запуска на основе каждой функции и быть уверенными в результатах сборки кода, с которым вы сливаетесь основная строка кода.
Кажется, что BitBucket/Stash создает ветки для запросов на растяжение в:
refs/pull-requests//from
Вы должны иметь возможность настроить удаленный запуск для этого местоположения либо с помощью функции запуска от ветки Teamcity, либо с помощью крюка HTTP post get в BitBucket/Stash.
Вы также можете использовать этот плагин: https://github.com/ArcBees/teamcity-plugins/wiki/Configuring-Bitbucket-Pull-Requests-Plugin
(Полное раскрытие: я главный вкладчик: P, и я использую его каждый день)