Как остановить TeamCity построить запрос, когда он смотрел или комментировал?

В настоящее время моя команда использует TeamCity для автоматического создания запросов на вытягивание из GitHub.

У нас есть конфигурация для создания всех запросов pull. В настройках управления версиями конфигурации наша спецификация ветви

+:refs/pull/*/merge

в настройках конфигурации "Build Triggers" у нас есть только один триггер со следующим правилом триггера:

+:root=Pull Requests on our Repository:***/**

"Pull Requests on our Repository" - это наше корневое имя VCS.

в вопросы:

  • когда кто-то просматривает запрос pull на веб-сайте GitHub, не делая ничего другого, сборка будет запущена в Агенте сборки TeamCity. Это довольно раздражает, потому что время от времени у нас есть несколько агентов сборки, создающих одни и те же запросы pull (когда несколько людей просматривают его).
  • когда кто-то комментирует запрос на вытягивание, также будет запущена сборка.

С моей точки зрения, единственный раз, когда я хочу, чтобы TeamCity начал build-это когда новые коммиты подталкиваются к запросам pull.

есть ли способ сделать это?

4 ответов


У вас есть TeamCity настроен в соответствии с этим блоге? Затем я активирую сервис TeamCity крюк в GitHub, который заботится о запуске сборки в TeamCity всякий раз, когда есть толчок. Кажется, это правильно для меня. Или я что-то упускаю?


гитхаб это!--0--> ветви обновляются каждый раз при пересчете слияния ветви, т. е. при каждой фиксации к месту назначения (скорее всего master филиал). Они также обновляются, когда запрос закрыт и вновь открыт. Поддержка Github говорит, что эти ветви не предназначены для использования конечными пользователями. Единственный обходной путь на данный момент-запустить сборки на refs/pull/*/head ветви автоматически и на refs/pull/*/merge ветки вручную.


Я знаю, что это старый, но я хотел разместить, что мы нашли в качестве альтернативы:

  • остановите использование корней VCS вообще как механизм для запуска запросов pull. Вместо этого настройте на GitHub веб-перехватчик чтобы уведомить веб-приложение вашего всякий раз, когда есть обновление для PR и только тогда запуск сборки через TeamCity REST API.

  • в конфигурации сборки добавьте шаг, который проверяет, что изменилось в PR. Если ничего изменено (т. е. новые коммиты не добавлены), или если PR закрыт, отмените сборку. Проблема в том, что очередь сборки по-прежнему будет заполнена сборками, которые затем будут отменены. Кроме того, вам нужно будет где-то хранить последнюю фиксацию, которая была построена, чтобы сделать проверку.


по их трекер проблем TeamCity вопрос о TeamCity.Плагин GitHub, вызывающий бесконечный цикл сборок, был исправлен в v9.0