Я использую необычные VCS, поэтому я не пользуюсь такими популярными, как Git или Mercurial. Когда я делаю сборку, я получаю текстовый файл со всеми изменениями в базовой линии, которую я строю. Я хочу использовать этот список изменений, чтобы заполнить вкладку «Изменение»
Для этого я хочу использовать вызов 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 (), чтобы он мог обновлять Изменения для конкретной сборки?
Любые предложения. Я иду по неверному пути? Привет