Как запустить конструктор в Buildbot после коммита с помощью SVN?

#continuous-integration #buildbot

#непрерывная интеграция #buildbot

Вопрос:

Я использую buildbot в проекте, и у меня есть настройка планировщика, который автоматически создает проект каждый раз, когда происходят изменения, чтобы проверить, нормально ли он компилируется.

Я думаю, что buildbot может обнаружить изменения, но планировщик не может выполнять сборку, пока происходит фиксация. Вот соответствующие части конфигурации buildbot:

SVNPOller

     c['change_source'] = []
        svnpoller = changes.SVNPoller(
        repourl="https://url/svn/RD/2_Function/SW/SW_PC/qSmartTool",
        project="qSmartTool",
        pollInterval=60,
        svnbin=r"C:Program FilesTortoiseSVNbinsvn.exe",
        split_file=util.svn.split_file_branches)
        c['change_source'].append(svnpoller)
  

Планировщики

     c['schedulers'] = []
    c['schedulers'].append(schedulers.SingleBranchScheduler(
                            name="all",
                            change_filter=util.ChangeFilter(branch=None),
                            treeStableTimer=2*60,
                            builderNames=["runtests2"]))
     c['schedulers'].append(schedulers.ForceScheduler(
                            name="force",
                            builderNames=["runtests2"]))
  

Конструктор

 factory = util.BuildFactory()
# check out the source
factory.addStep(steps.SVN(repourl='https://url/svn/RD/2_Function/SW/SW_PC/qSmartTool', 
                mode='incremental',
                haltOnFailure=True))
factory.addStep(steps.ShellCommand(command=["build.bat"],
                                   haltOnFailure=True))

c['builders'] = []
c['builders'].append(
    util.BuilderConfig(name="runtests2",
      workernames=["example-worker"],
      factory=factory))
  

Я вижу, что SVNPoller обнаруживает фиксацию в twistd.log

     2019-03-04 18:33:25 0800 [-] SVNPoller: _process_changes 20002 .. 20002
2019-03-04 18:33:25 0800 [-] SVNPoller: finished polling None
2019-03-04 18:34:25 0800 [-] SVNPoller: polling qSmartTool
2019-03-04 18:34:25 0800 [-] SVNPoller: no changes
2019-03-04 18:34:25 0800 [-] SVNPoller: _process_changes 20002 .. 20002
2019-03-04 18:34:25 0800 [-] SVNPoller: finished polling None
2019-03-04 18:35:25 0800 [-] SVNPoller: polling qSmartTool
2019-03-04 18:35:25 0800 [-] SVNPoller: _process_changes 20002 .. 20003
2019-03-04 18:35:25 0800 [-] Adding change revision 20003  //it knows a new revision
2019-03-04 18:35:25 0800 [-] SVNPoller: finished polling None
2019-03-04 18:36:25 0800 [-] SVNPoller: polling qSmartTool
2019-03-04 18:36:25 0800 [-] SVNPoller: no changes
2019-03-04 18:36:25 0800 [-] SVNPoller: _process_changes 20003 .. 20003
2019-03-04 18:36:25 0800 [-] SVNPoller: finished polling None
2019-03-04 18:37:25 0800 [-] SVNPoller: polling qSmartTool
2019-03-04 18:37:25 0800 [-] SVNPoller: no changes
  

Но это не вызвало сборку. Я не знаю, что я делаю не так.

У кого-нибудь есть предложения о том, почему это происходит? Есть ли какой-либо другой способ получить изменения с сервера SVN? Я абсолютный новичок в BuildBot и на самом деле не слишком много понимаю из руководства; оно гораздо больше похоже на учебную книгу, а не на руководство, в котором показано, как вы что-то делаете 🙂

Спасибо!!!!!

Комментарии:

1. Bee Gees — Остаемся в живых

Ответ №1:

Он будет создан после того, как я удалю строку «split_file=util.svn.split_file_branches» в ‘change_source’. В twistd.log появится журнал критики «добавлено изменение с ревизией 20564 в базу данных».

Затем он собирается нормально.Но я не знаю почему. Мне нужно перейти к этому параметру ‘split_file’.

Комментарии:

1. Функция split_file_branches пытается проанализировать ваш URL, чтобы определить, к какой ветви принадлежит фиксация. Если вы не использовали стандартный макет, то ветка не будет извлечена, и ваш планировщик не будет соответствовать.