Есть ли у buildbot опрос git-репозитория для новых коммитов? - PullRequest
8 голосов
/ 14 марта 2009

Существует ли плагин buildbot , который будет опрашивать git-репозиторий на предмет новых коммитов, как в настоящее время включенный changes.SVNPoller?

Самое близкое, что я нашел, это git_buildbot.py , но оно работает как ловушка после фиксации, поэтому не будет работать с моими установками (с использованием Github и buildbot на машине, которая после фиксации github не может достичь) - просто опрос git-репозитория будет работать отлично.

В настоящее время сборка запускается один раз в час, но на самом деле нет смысла запускать тесты, если что-то не изменилось ..

Ответы [ 3 ]

9 голосов
/ 18 июня 2010

Обновление: Добрые люди в проекте Buildbot сделали GitPoller официальным источником изменений начиная с версии 0.8.2 и внесли несколько улучшений в исходный код.


Наша компания находится в аналогичной ситуации, когда наши сборочные машины не могут быть доступны с помощью пост-фиксации GitHub. Я написал GitPoller источник изменений, который можно использовать как SVNPoller.

Его можно найти здесь: http://github.com/wimba/buildbot/blob/master/buildbot/changes/gitpoller.py

и используется так:

from buildbot.changes.gitpoller import GitPoller
c['change_source'] = GitPoller('git@example.com:foobaz/myrepo.git',
                               branch='great_new_feature')

Он создаст локальное репо для работы (местоположение настраивается), и он был протестирован только с git 1.7, поэтому ваш пробег может отличаться.

Надеюсь, в какой-то момент он будет добавлен в проект Buildbot, но он работает для нас до сих пор и надеется, что он может быть полезен для других:)

1 голос
/ 22 марта 2009

Я вообще не играл со buildbot, но не мог бы вы сделать git fetch, а затем посмотреть на вывод git log master..origin/master? Если нет новых коммитов, то результат будет пустым (есть, конечно, множество других опций, которые вы можете использовать на git log). Если есть новые коммиты, просто выполните git merge и начните цикл сборки / тестирования.

0 голосов
/ 31 августа 2010

Мне нравится подход gitpoller.py, но на данный момент я нашел его немного ограниченным (например, не отправляет ревизии, аргументы проекта), поэтому нашел другое решение:

У меня есть собственный репозиторий, клонированный с удаленного компьютера, и файл git_buildbot.py, вызываемый ловушкой после слияния (как описано в git_buildbot.py). У меня есть маленький цикл сна и мерзавец, тянущий в этом репо, который вызовет крюк после слияния.

...