Как остановить 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