Есть ли работающий пример buildbot с Mercurial - PullRequest
3 голосов
/ 08 марта 2011

используется версия buildbot:

$ buildbot --version
Buildbot version: 0.8.3p1
Twisted version: 10.1.0

Checkconfig, выдает ошибки:

$ buildbot checkconfig
/usr/lib/python2.6/dist-packages/twisted/mail/smtp.py:10: DeprecationWarning: the MimeWriter module is deprecated; use the email package instead
  import MimeWriter, tempfile, rfc822
Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/buildbot-0.8.3p1-py2.6.egg/buildbot/scripts/runner.py", line 1071, in doCheckConfig
    ConfigLoader(configFileName=configFileName)
  File "/usr/local/lib/python2.6/dist-packages/buildbot-0.8.3p1-py2.6.egg/buildbot/scripts/checkconfig.py", line 46, in __init__
    self.loadConfig(configFile, check_synchronously_only=True)
  File "/usr/local/lib/python2.6/dist-packages/buildbot-0.8.3p1-py2.6.egg/buildbot/master.py", line 883, in loadConfig
    % (b['name'], n))
ValueError: builder runtests uses undefined slave example-slave
$ 

Вот один пример, на который я посмотрел:

http://agiletesting.blogspot.com/2006/02/continuous-integration-with-buildbot.html

Ответы [ 2 ]

4 голосов
/ 23 ноября 2013

Это относится к:

Buildbot version: 0.8.8
Twisted version: 13.2.0

У меня были некоторые серьезные проблемы, чтобы заставить его работать с простым репозиторием hg, в то время как тот же проект прекрасно работал с git и соответствующими функциями. Итак, вот оно.

С нашим репозиторием в master.cfg связаны три случая: источники изменений, планировщики и компоновщики, только с источниками изменений и компоновщиками, которые используют специфические для Mercurial функции.

В источники изменений раздел:

from buildbot.changes.hgpoller import HgPoller
therepo=HgPoller(repourl="/home/user/test/my_project/",
                           branch='default',
                           pollInterval=30,
                           workdir='myrepo')

c['change_source'] = []
c['change_source'].append(therepo)

Здесь я использую HgPoller вместо PBChangeSource. Последний является более сложным, но также требует дополнительных шагов настройки (укажите порт и еще одно имя пользователя и пароль).

repourl должен указывать на корень вашего хранилища hg. Любой URL, который можно использовать для «hg pull» или «hg clone», является приемлемым. В этом примере используется локальный репозиторий, но он может быть на сервере, тогда вы должны указать http или что-то еще.

По умолчанию branch для Mercurial установлено значение «по умолчанию». pollInterval=30 говорит, что каждые 30 секунд проверять новый коммит (это из игрушечного примера, в действительности> 30 будет более подходящим).

Теперь строитель , который создается после того, как фиксация обнаружена и передана планировщиком (ами):

from buildbot.process.factory import BuildFactory
from buildbot.steps.source.mercurial import Mercurial

factory = BuildFactory()

#watch out: this function is Mercurial, NOT Hg

checkout_default = Mercurial(repourl="/home/user/test/my_project/",
                      defaultBranch='default',
                      branchType='inrepo',
                      haltOnFailure = True)

factory.addStep(checkout_default)

# then you add some build instructions and don't forget to import the necessary...

Что объясняет, почему моя вещь не сработала, так это то, что я не указал defaultBranch и branchType. Эти ключевые слова не такие, как в Git (), так что будьте осторожны. Это немного сложно, так как я не нашел их в руководстве пользователя онлайн, но оно есть, если вы уделите время интерпретатору python:

import buildbot
help(buildbot.steps.source.mercurial)

Также обратите внимание, что это функция Mercurial, импортированная из buildbot.steps.source.mercurial, которая не является той же функцией Mercurial, которую вы импортировали бы из buildbot.steps.source.Mercurial. Последний устарел (или тот, который вы бы использовали в более старой версии). Я благодарю tomprince из канала IRC buildbot на freenode за указание на это.

2 голосов
/ 08 марта 2011

Пример, на который вы смотрели, очень старый;c['bots'] был переименован в c['slaves'] некоторое время назад, как и многие другие изменения.

Я бы посоветовал взглянуть на руководство по сборке Buildbot для конфигурации:

http://buildbot.net/buildbot/docs/current/Configuration.html#Configuration

И, возможно, также раздел установки, чтобы убедиться, что вы сделали то, что требовалось для установки более свежих версий BuildBot, а не только более старых версий:

http://buildbot.net/buildbot/docs/current/Installation.html#Installation

Одним из примеров, который был предложен, был buildbot IcedTea, который строится из репозиториев Mercurial.Конфигурация доступна для просмотра здесь:

http://icedtea.classpath.org/hg/buildbot/file

Вы также можете зайти на #buildbot на irc.freenode.net за помощью.

...