Buildbot Вызов AddChanges из пользовательского метода - PullRequest
0 голосов
/ 11 октября 2019

Я использую необычные VCS, поэтому я не пользуюсь такими популярными, как Git или Mercurial. Когда я делаю сборку, я получаю текстовый файл со всеми изменениями в базовой линии, которую я строю. Я хочу использовать этот список изменений, чтобы заполнить вкладку «Изменение»

enter image description here

Для этого я хочу использовать вызов API addChange для каждой записи вфайл, который у меня есть, так что я могу показать список изменений для buildrequest

addChange(files=None, comments=None, author=None, revision=None, when_timestamp=None, branch=None, category=None, revlink='', properties={}, repository='', codebase=None, project='', src=None)

Мне не ясно, как вызвать этот метод, чтобы я мог передать содержимое файла, который мне дает моя VCS.

В свой master.cfg я добавил следующий метод def get_change_list ()

from buildbot.plugins import *
from buildbot.plugins import steps, util

c = BuildmasterConfig = {}

####### WORKERS

c['workers'] = [worker.Worker("example-worker", "pass")]

c['protocols'] = {'pb': {'port': 9989}}

####### CHANGESOURCES

c['change_source'] = []
c['change_source'].append(changes.GitPoller(
        'git://<GIT URL>',
        workdir='gitpoller-workdir', branch='bugfix',
        pollInterval=300))

####### SCHEDULERS

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

####### BUILDERS

factory = util.BuildFactory()
factory.addStep(steps.Git(repourl='git://<GIT URL>', mode='incremental'))
factory.addStep(steps.ShellCommand(command=["trial", "hello"],
                                   env={"PYTHONPATH": "."}))

c['builders'] = []

                                  

f_simplebuild = util.BuildFactory()


**@defer.inlineCallbacks
def get_change_list()
yield self.master.data.updates.addChange(
                author='joe bloggs',
                committer='jack bloggs',
                revision='revision 101',
                files='file_a.txt',
                comments='here are the changes',
                when_timestamp=date.datime.now()
                branch='my_local_branch',
                category='no category info',
                project='my_local_project',
                repository='dev repo 1',
                src='Synergy')**


#This will be the comman 
c['builders'].append(
    util.BuilderConfig(name="runtests",
      workernames=["example-worker"],
      factory=f_simplebuild))

####### BUILDBOT SERVICES

c['services'] = []

####### PROJECT IDENTITY

c['title'] = "BUILD BOT"
c['titleURL'] = "https://buildbot.github.io/hello-world/"

c['buildbotURL'] = "http://localhost:8010/"

# minimalistic config to activate new web UI
c['www'] = dict(port=8010,
                plugins=dict(waterfall_view={}, console_view={}, grid_view={}))

####### DB URL

c['db'] = {
    'db_url' : "sqlite:///state.sqlite",
}

Я получил кое-что из этого hgPoller . У меня вопрос, как мне вызвать def get_change_list (), чтобы он мог обновлять Изменения для конкретной сборки?

Любые предложения. Я иду по неверному пути? Привет

...