def __init__(self, **kwargs): if kwargs.get('workdir') is None: kwargs['workdir'] = 'lustretagpoller-work' if kwargs.get('branch') or kwargs.get('branches'): config.error("LustreTagPoller: branch/branches is not a valid argument.") GitPoller.__init__(self, **kwargs)
def __init__(self, **kwargs): if kwargs.get('workdir') is None: kwargs['workdir'] = 'lustretagpoller-work' if kwargs.get('branch') or kwargs.get('branches'): config.error( "LustreTagPoller: branch/branches is not a valid argument.") GitPoller.__init__(self, **kwargs)
def __init__(self, repo, branch, interval, project): workdir = os.path.join(_pollers_root, "%s-%s" % (project._project_name, branch)) spec = '+refs/heads/%s:refs/remotes/origin/%s' % (branch, branch) GitPoller.__init__(self, repo, category=project._project_name, project=project._project_name, workdir=workdir, fetch_refspec=spec, branch=branch, pollinterval=interval)
def add_changesources(cfg): cfg['change_source'].append( GitPoller(repourl="https://github.com/klaital/wwdice", branches=True, buildPushesWithNoCommits=True, pollInterval=3600, pollAtLaunch=True, workdir='/tmp/gitpoller-workdir-wwdice', project='wwdice'))
def configure(config): # pollers config['change_source'].append( GitPoller(repositoryUri, workdir='gitpoller-workdir', branch='dev', pollinterval=60, project='toy-factory-dev')) # schedulers config['schedulers'].append( SingleBranchScheduler( name="toy-factory-dev-ci", change_filter=filter.ChangeFilter(branch='dev'), treeStableTimer=None, builderNames=["toy-factory-linux-ci", "toy-factory-windows-ci"])) config['schedulers'].append( ForceScheduler( name="toy-factory-dev-ci-force", builderNames=["toy-factory-linux-ci", "toy-factory-windows-ci"])) config['schedulers'].append( Nightly( name='toy-factory-dev-nightly', branch='dev', builderNames=["toy-factory-linux-dev", "toy-factory-windows-dev"], hour=3, minute=0, onlyIfChanged=True)) config['schedulers'].append( ForceScheduler( name="toy-factory-dev-force", builderNames=["toy-factory-linux-dev", "toy-factory-windows-dev"])) # builders config['builders'].append( BuilderConfig(name="toy-factory-linux-ci", slavenames=["linux"], factory=createLinuxCIFactory())) config['builders'].append( BuilderConfig(name="toy-factory-windows-ci", slavenames=["windows"], factory=createWindowsCIFactory())) config['builders'].append( BuilderConfig(name="toy-factory-linux-dev", slavenames=["linux"], factory=createLinuxDevFactory())) config['builders'].append( BuilderConfig(name="toy-factory-windows-dev", slavenames=["windows"], factory=createWindowsDevFactory()))
def git_poller(): if not util.env.GIT_POLLING: return [] return GitPoller( util.env.GIT_REPO, workdir='gitpoller-workdir', branches=True, pollinterval=900, pollAtLaunch=False, buildPushesWithNoCommits=True, )
def add_change_source(project, repo, branch='master', interval=300): branchtag = '-' + branch if project.endswith(branchtag): workingdir = '/tmp/buildbot/' + project else: workingdir = '/tmp/buildbot/' + project + branchtag change_source.append( GitPoller(repo, branch=branch, workdir=workingdir, pollInterval=interval, project=project))
def addSimpleProject(self, name, category, repourl, builderconfigs): """Private. Add a project which builds when the source changes or when Force is clicked. """ # FACTORIES # FIXME: get list of steps from buildshim here #factory = BuildFactory() # check out the source # This fails with git-1.8 and up unless you specify the branch, so do this down lower where we now the branch #factory.addStep(Git(repourl=repourl, mode='full', method='copy')) # for step in ["patch", "install_deps", "configure", "compile", "check", "package", "upload", "uninstall_deps"]: # factory.addStep(ShellCommand(command=["../../srclink/" + name + "/buildshim", step], description=step)) # BUILDERS AND SCHEDULERS # For each builder in config file, see what OS they want to # run on, and assign them to suitable slaves. # Also create a force scheduler that knows about all the builders. branchnames = [] buildernames = [] for builderconfig in builderconfigs: bparams = '' if "params" in builderconfig: bparams = builderconfig["params"].encode('ascii', 'ignore') bsuffix = '' if "suffix" in builderconfig: bsuffix = builderconfig["suffix"].encode('ascii', 'ignore') sbranch = builderconfig["branch"].encode('ascii', 'ignore') if sbranch not in branchnames: branchnames.append(sbranch) sosses = builderconfig["os"].encode('ascii', 'ignore').split('>') sosses.reverse() # The first OS in the list triggers when there's a source change sos = sosses.pop() buildername = name + '-' + sos + '-' + sbranch + bsuffix factory = self.addSimpleBuilder(name, buildername, category, repourl, builderconfig, sos, sbranch, bparams) self['schedulers'].append( SingleBranchScheduler( name=buildername, change_filter=filter.ChangeFilter(branch=sbranch, repository=repourl), treeStableTimer=1 * 60, # Set this just high enough so you don't swamp the slaves, or to None if you don't want changes batched builderNames=[buildername])) buildernames.append(buildername) # The rest of the OSes in the list, if any, are triggered when the previous OS in the list finishes while len(sosses) > 0: prev_factory = factory sos = sosses.pop() buildername = name + '-' + sos + '-' + sbranch + bsuffix factory = self.addSimpleBuilder(name, buildername, category, repourl, builderconfig, sos, sbranch, bparams) self['schedulers'].append( triggerable.Triggerable(name=buildername, builderNames=[buildername])) prev_factory.addStep( trigger.Trigger(schedulerNames=[buildername], waitForFinish=False)) self['schedulers'].append( ForceScheduler( name=name + "-force", builderNames=buildernames, branch=FixedParameter(name="branch", default=""), revision=FixedParameter(name="revision", default=""), repository=FixedParameter(name="repository", default=""), project=FixedParameter(name="project", default=""), properties=[], )) # CHANGESOURCES # It's a git git git git git world already = False for cs in self['change_source']: if cs.repourl == repourl: log.msg( "There's already a changesource for %s. Hope it has the branch you wanted." % cs.repourl) already = True if not already: self['change_source'].append( # Fuzz the interval to avoid slamming the git server and hitting the MaxStartups or MaxSessions limits # If you hit them, twistd.log will have lots of "ssh_exchange_identification: Connection closed by remote host" errors # See http://trac.buildbot.net/ticket/2480 GitPoller(repourl, branches=branchnames, workdir='gitpoller-workdir-' + name, pollinterval=60 + random.uniform(-10, 10)))
] reload(ngqwebuilder_scheduler) reload(ngqwebuilder_status_push) c = {} ngq_repourl = '[email protected]:nextgis/NextGIS-QGIS.git' installer_repourl = '[email protected]:nextgis/installer.git' ngq_branch_for_everyday = 'ngq-16' c['change_source'] = [] ngq_git_poller = GitPoller( project='ngq', repourl=ngq_repourl, workdir='ngq-workdir', branch=ngq_branch_for_everyday, pollinterval=3600, ) #c['change_source'].append(ngq_git_poller) installer_git_poller = GitPoller( project='installer', repourl=installer_repourl, workdir='installer-workdir', branch='4ngq_autobuild', pollinterval=3600, ) c['change_source'].append(installer_git_poller) c['schedulers'] = []
BuildmasterConfig = { "title": "Dolphin Emulator ⋅ DEVELOPMENT", "titleURL": "/", "buildbotURL": "http://localhost:{}/".format(PORT), "protocols": { "pb": { "port": 9989 }, }, "change_source": [ GitPoller(repourl=env('BB_REPOURL', 'https://github.com/dolphin-emu/dolphin.git'), pollInterval=5), ], "workers": [ worker.LocalWorker("test-worker"), ], "builders": [ BuilderConfig(name="test-builder", workernames=["test-worker"], factory=make_test_factory()), # TODO: add relevant builders from prod conf ], "schedulers": [ AnyBranchScheduler(name="test-scheduler", builderNames=["test-builder"]), ],
} ####### BUILDSLAVES from buildbot.buildslave import BuildSlave c['slaves'] = [BuildSlave(config.SLAVE_NAME, config.SLAVE_PSW)] c['protocols'] = {'pb': {'port': 9989}} ####### CHANGESOURCES from buildbot.changes.gitpoller import GitPoller c['change_source'] = [] c['change_source'].append( GitPoller(config.REPOSITORY, workdir='gitpoller-workdir', branches=True, pollinterval=5)) ####### SCHEDULERS from buildbot.schedulers.basic import SingleBranchScheduler from buildbot.schedulers.forcesched import ForceScheduler from buildbot.changes import filter from buildbot.schedulers import timed c['schedulers'] = [] c['schedulers'].append( SingleBranchScheduler(name="release", change_filter=filter.ChangeFilter(branch='master'), treeStableTimer=None,
'name': 'Placeholder Project', 'uri': 'https://gitlab.randomuser.org/pete/placeholder.git', 'command': all 'branches' = ChangeFilter( branch_fn = [ 'master' ] ) } defined_factories['pp_maker_factory'] = BuildFactory( _make_factory_step_generator(pp['name'], pp['uri'], pp['command'] ) ) c['change_source'].append(GitPoller( pp['uri'], workdir='/srv/buildbot', branches=pp['branches'], pollinterval=random.randint(300,600) )) c['builders'].append( BuilderConfig( name='%s Builder' % pp['name'], slavenames=lan_buildslaves, factory=defined_factories['pp_maker_factory'] ) ) c['schedulers'].append(AnyBranchScheduler( name="%s_scheduler" % guide_publisher, builderNames=['%s Builder' % pp['name']], change_filter=pp['branches'], treeStableTimer=None ))
] for repo in REPOSITORIES: repo_url = f"https://github.com/{config.MEDIASDK_ORGANIZATION}/{repo['name']}.git" c["change_source"].append( GitPoller( repourl=repo_url, # Dir for the output of git remote-ls command workdir=f"gitpoller-{repo['name']}", # Poll master, release branches and open pull request branches # Filters performs in following order: # branches (discard all not release branches) # pull_request (add branches of open pull request) # *fetch branches* # change_filter (checking changes) branches=bb.utils.is_release_branch, pull_request_branches=bb.utils.get_open_pull_request_branches( config.MEDIASDK_ORGANIZATION, repo['name'], token=config.GITHUB_TOKEN), change_filter=repo['change_filter'], category="mediasdk", pollInterval=config.POLL_INTERVAL, pollAtLaunch=True)) # Web Interface c["www"] = dict(port=int(config.PORT), plugins={"console_view": True}) # Database c["db"] = {"db_url": config.DATABASE_URL}
from buildbot.steps.transfer import DirectoryUpload from buildbot.changes.gitpoller import GitPoller from buildbot.schedulers.basic import SingleBranchScheduler from buildbot.config import BuilderConfig from buildbot.steps.master import MasterShellCommand import bbconf c = {} repourl = 'git://github.com/nextgis/android_gisapp.git' project_name = 'ngmob' git_poller = GitPoller(project = project_name, repourl = repourl, workdir = project_name + '-workdir', branch = 'master', pollinterval = 7200,) # each 2 hours c['change_source'] = [git_poller] scheduler = schedulers.SingleBranchScheduler( name=project_name, change_filter=util.ChangeFilter(project = project_name), treeStableTimer=2*60, builderNames=[project_name]) c['schedulers'] = [scheduler] c['schedulers'].append(schedulers.ForceScheduler( name=project_name + "_force", builderNames=[project_name], )) #### build docs
return True return False def check_branch_fn_perf(branch): for branch_item in MAXSCALE_PERF_BRANCHES_LIST: if re.search(branch_item["branch"], branch.split('/')[-1]): return True return False def get_test_set_by_branch(branch): """ Returns test set for a given branch or None if nothing found :param branch: Name of the MaxScale branch :return: Test set name """ for branch_item in MAXSCALE_BRANCHES_LIST: if re.search(branch_item["branch"], branch): return branch_item["test_set"] return None POLLERS = [ GitPoller(repourl=constants.MAXSCALE_REPOSITORY, branches=check_branch_fn, pollinterval=600, project=constants.MAXSCALE_PRODUCT, pollAtLaunch=False) ]
from buildbot.changes.gitpoller import GitPoller cs_gitpoller_list = [] cs_gitpoller_package_WinServer_MovieBar_Master = GitPoller( repourl="[email protected]:vidon/buildtriggers.git", branches=[ 'moviebar-master', 'moviebar-pre', 'moviebar-dev', 'moviebar-nologo-pre', 'moviebar-nologo-pre' ], pollInterval=60, gitbin="/usr/bin/git") cs_gitpoller_list.append(cs_gitpoller_package_WinServer_MovieBar_Master) cs_gitpoller_android_vidontv_dbstar_moviebar = GitPoller( repourl="git_project_path_android_vidontv_dbstar_moviebar", branches=['branches'], pollInterval=60, gitbin="/usr/bin/git") cs_gitpoller_list.append(cs_gitpoller_android_vidontv_dbstar_moviebar) cs_gitpoller_plcore_win_dev_debug = GitPoller( repourl="git_project_path_plcore_win_dev_debug", branches=['branches'], pollInterval=60, gitbin="/usr/bin/git") cs_gitpoller_list.append(cs_gitpoller_plcore_win_dev_debug) cs_gitpoller_plcore_win_master_release = GitPoller( repourl="git_project_path_plcore_win_master_release",
from buildbot.changes.gitpoller import GitPoller from buildbot.steps.source.git import Git from buildbot.config import BuilderConfig import bbconf c = {} ngq_repourl = 'https://github.com/nextgis/nextgisqgis.git' ngq_branch = 'up_to_2.18' project_name = 'ngq2' c['change_source'] = [] ngq_git_poller = GitPoller( project=project_name, repourl=ngq_repourl, workdir='%s-workdir' % project_name, branch=ngq_branch, pollinterval=3600, ) c['change_source'].append(ngq_git_poller) c['schedulers'] = [] c['schedulers'].append( schedulers.ForceScheduler( name="%s_force" % project_name, # builderNames=["makengq2_deb", "makengq2_deb_dev"] builderNames=["makengq2_deb_dev"] ) ) c['builders'] = []
} ] for repo in CI_REPOSITORIES: repo_url = f"https://github.com/{repo['organization']}/{repo['name']}.git" c["change_source"].append( GitPoller( repourl=repo_url, # Dir for the output of git remote-ls command workdir=f"gitpoller-{repo['name']}", # Poll master, release branches and open pull request branches # Filters performs in following order: # branches (discard all not release branches) # pull_request (add branches of open pull request) # *fetch branches* # change_filter (checking changes) branches=lambda branch: bb.utils.is_release_branch(branch), pull_request_branches=bb.utils.get_open_pull_request_branches( repo['organization'], repo['name'], token=config.GITHUB_TOKEN), change_filter=repo['change_filter'], category="media", pollInterval=config.POLL_INTERVAL, pollAtLaunch=True)) for repo in config.AUTO_UPDATED_REPOSITORIES: repo_url = f"https://github.com/{config.INTEL_ORGANIZATION}/{repo}.git" c["change_source"].append( GitPoller(repourl=repo_url, workdir=f"gitpoller-{repo}",
def ros_testbuild(c, job_name, url, branch, distro, arch, rosdistro, machines, othermirror, keys, source=True, locks=[]): # Create a Job for Source if source: project_name = '_'.join([job_name, rosdistro, 'source_build']) c['change_source'].append( GitPoller( repourl=url, name=url, branch=branch, category=project_name, pollAtLaunch=True, ) ) c['schedulers'].append( schedulers.SingleBranchScheduler( name=project_name, builderNames=[project_name,], change_filter=util.ChangeFilter(category=project_name) ) ) c['schedulers'].append( schedulers.Nightly( name = project_name+'-nightly-master', codebases = {url:{'repository':url,'branch':'master'}}, builderNames = [project_name,], hour=3, minute=0, ) ) c['schedulers'].append( schedulers.Nightly( name = project_name+'-nightly-develop', codebases = {url:{'repository':url,'branch':'develop'}}, builderNames = [project_name,], hour=5, minute=0, ) ) c['schedulers'].append( schedulers.ForceScheduler( name=project_name+'-force', codebases = [util.CodebaseParameter("", branch=util.ChoiceStringParameter( name="branch", choices=["master", "devel"], default="master"), repository=util.FixedParameter(name="repository", default=url), )], builderNames=[project_name,], ) ) else: r_owner, r_name = (url.split(':')[1])[:-4].split('/') project_name = '_'.join([job_name, rosdistro, 'pr_build']) c['change_source'].append( GitPRPoller( owner=r_owner, repo=r_name, category=project_name, branches=[branch], pollInterval=10*60, pollAtLaunch=True, token=util.Secret("OathToken"), repository_type='ssh' ) ) c['schedulers'].append( schedulers.SingleBranchScheduler( name=project_name, builderNames=[project_name,], change_filter=util.ChangeFilter(category=project_name) ) ) # Directory which will be bind-mounted binddir = '/tmp/'+project_name dockerworkdir = '/tmp/test/' f = BuildFactory() # Remove any old crud in build/src folder f.addStep( ShellCommand( name='rm src', command=['rm', '-rf', 'build/src'], hideStepIf=success, workdir=Interpolate('%(prop:builddir)s') ) ) # Check out repository (to /build/src) f.addStep( Git( repourl=util.Property('repository', default=url), branch=util.Property('branch', default=branch), alwaysUseLatest=True, mode='full', workdir=Interpolate('%(prop:builddir)s/build/src') ) ) # Download testbuild_docker.py script from master f.addStep( FileDownload( name=job_name+'-grab-script', mastersrc='scripts/testbuild_docker.py', workerdest=('testbuild_docker.py'), hideStepIf=success ) ) # Download Dockerfile_test script from master f.addStep( FileDownload( name=job_name+'-grab-script', mastersrc='docker_components/Dockerfile_test', workerdest=('Dockerfile_test'), hideStepIf=success ) ) # Download docker-compose.py script from master f.addStep( FileDownload( name=job_name+'-grab-script', mastersrc='docker_components/docker-compose-test.yaml', workerdest=('docker-compose-test.yaml'), hideStepIf=success ) ) f.addStep( FileDownload( name=job_name+'-grab-script', mastersrc='docker_components/rosdep_private.yaml', workerdest=('rosdep_private.yaml'), hideStepIf=success ) ) f.addStep( FileDownload( name=job_name+'-grab-script', mastersrc='scripts/docker-container.py', workerdest=('docker-container.py'), hideStepIf=success ) ) # create docker work environment f.addStep( ShellCommand( command=['python','docker-container.py', job_name], hideStepIf=success, workdir=Interpolate('%(prop:builddir)s/build/') ) ) # Make and run tests in a docker container f.addStep( ShellCommand( name=job_name+'-build', command=['docker', 'run', '-v', 'ros-buildbot-docker_deb_repository:/home/package', '--name='+project_name, 'scalable-env:'+job_name, 'python', '/tmp/build/testbuild_docker.py', binddir, rosdistro], descriptionDone=['make and test', job_name] ) ) f.addStep( ShellCommand( name=job_name+'-copytestresults', command=['docker', 'cp', project_name + ':' +binddir + '/testresults', 'testresults'], logfiles={'tests': 'testresults'}, descriptionDone=['testresults', job_name] ) ) f.addStep( ShellCommand( name=job_name+'-rm_container', command=['docker', 'rm', project_name], descriptionDone=['remove docker container', job_name] ) ) f.addStep( ShellCommand( name=job_name+'-rm_image', command=['docker', 'image', 'rm', 'scalable-env:'+job_name], descriptionDone=['remove docker image', job_name] ) ) c['builders'].append( BuilderConfig( name=project_name, workernames=machines, factory=f, locks=locks ) ) # return the name of the job created return project_name
'change_filter': ProductConfigsChecker(config.GITHUB_TOKEN) }] for repo in REPOSITORIES: repo_url = f"https://github.com/{repo['organization']}/{repo['name']}.git" c["change_source"].append( GitPoller( repourl=repo_url, # Dir for the output of git remote-ls command workdir=f"gitpoller-{repo['name']}", # Poll master, release branches and open pull request branches # Filters performs in following order: # branches (discard all not release branches) # pull_request (add branches of open pull request) # *fetch branches* # change_filter (checking changes) branches=repo['branches'], pull_request_branches=get_open_pull_request_branches( repo['organization'], repo['name'], repo.get('token')), change_filter=repo['change_filter'], category="driver", pollInterval=config.POLL_INTERVAL, pollAtLaunch=True)) # Web Interface c["www"] = dict(port=int(config.PORT), plugins={"console_view": True}) # Database c["db"] = {"db_url": config.DATABASE_URL}
from buildbot.changes.gitpoller import GitPoller from buildbot.changes import filter from buildbot.schedulers.basic import SingleBranchScheduler #select project's settings to buildbot config. from buildbot_config.settings.settings import BRANCH, PROJECT_NAME, PROJECT_CODE_URL, REPOSITORY_URL #builder name for this project. builder_names = ['builder-sqlite'] gitpoller = GitPoller(REPOSITORY_URL, project=PROJECT_NAME, branch=BRANCH, pollinterval=30) #scheduler for buildbot. change_filter = filter.ChangeFilter(project=PROJECT_NAME, branch=BRANCH) scheduler = SingleBranchScheduler(name="develop-change", change_filter=change_filter, treeStableTimer=30, builderNames=builder_names)
from buildbot.config import BuilderConfig from buildbot.steps.master import MasterShellCommand from buildbot.steps.shell import WithProperties import bbconf c = {} repourl = 'git://github.com/nextgis-borsch/postgis.git' project_ver = '2.4' deb_repourl = 'git://github.com/nextgis/ppa.git' project_name = 'postgis' git_poller = GitPoller(project = project_name, repourl = repourl, workdir = project_name + '-workdir', branch = 'master', #TODO: buildbot pollinterval = 7200,) c['change_source'] = [git_poller] scheduler = schedulers.SingleBranchScheduler( name=project_name, change_filter=util.ChangeFilter(project = project_name), treeStableTimer=1*60, builderNames=[project_name + "_deb"]) c['schedulers'] = [scheduler] c['schedulers'].append(schedulers.ForceScheduler( name=project_name + "_force", builderNames=[project_name + "_deb"])) deb_name = 'postgis'
def check_branch_fn_perf(branch): for branch_item in MAXSCALE_PERF_BRANCHES_LIST: if re.search(branch_item["branch"], branch.split('/')[-1]): return True return False def get_test_set_by_branch(branch): """ Returns test set for a given branch or None if nothing found :param branch: Name of the MaxScale branch :return: Test set name """ for branch_item in MAXSCALE_BRANCHES_LIST: if re.search(branch_item["branch"], branch): return branch_item["test_set"] return None POLLERS = [ GitPoller( repourl=constants.MAXSCALE_REPOSITORY, branches=check_branch_fn, pollinterval=600, project=constants.MAXSCALE_PRODUCT, gitbin= 'git-buildbot-patch', # See https://github.com/buildbot/buildbot/issues/4211 pollAtLaunch=False) ]
def loadConfig(config): ####### CHANGESOURCES # the 'change_source' setting tells the buildmaster how it should find out # about source code changes. Here we point to the buildbot clone of pyflakes. from buildbot.changes.gitpoller import GitPoller from buildbot.changes.filter import ChangeFilter config['change_source'].append( GitPoller( repourl = '[email protected]:ORNL/xdd.git', workdir='gitpoller-workdir-xdd-master', pollinterval=120, branch='master', project='xdd')) xdd_filter = ChangeFilter( project = 'xdd', branch = 'testing') ####### BUILDERS # The 'builders' list defines the Builders, which tell Buildbot how to perform a build: # what steps, and which slaves can execute them. Note that any particular build will # only take place on one slave. from buildbot.process.factory import BuildFactory, GNUAutoconf from buildbot.steps.source import Git from buildbot.steps.shell import ShellCommand, Configure, Compile, Test xdd_factory = BuildFactory() # Check out the source xdd_factory.addStep(Git(repourl='[email protected]:ORNL/xdd.git', mode='copy', branch='master')) # Generate the test configuration xdd_factory.addStep(ShellCommand(command=['./contrib/buildbot_gen_test_config.sh'], name="configuring")) # Compile the code xdd_factory.addStep(Compile(description=["compiling"])) # Install the code xdd_factory.addStep(ShellCommand(command=['make', 'install'], name="make install")) # Perform make check xdd_factory.addStep(ShellCommand(command=['make', 'check'], name="make check", maxTime=600)) # Perform make test xdd_factory.addStep(Test(description=["make test"], maxTime=600)) # Perform cleanup xdd_factory.addStep(ShellCommand(command=['pkill', '-f', 'xdd', '||', 'echo ""'], name='process cleanup', maxTime=60)) # Add the XDD Build factory to each of the available builders described in the master.cfg from buildbot.config import BuilderConfig # config['builders'].append(BuilderConfig(name="xdd-rhel5-x86_64", slavenames=["pod7"], factory=xdd_factory, env={"XDDTEST_TIMEOUT": "900"}, category='xdd')) # config['builders'].append(BuilderConfig(name="xdd-rhel6-x86_64", slavenames=["pod9"], factory=xdd_factory, env={"XDDTEST_TIMEOUT": "900"},category='xdd')) # config['builders'].append(BuilderConfig(name="xdd-sles10-x86_64", slavenames=["pod10"], factory=xdd_factory, env={"XDDTEST_TIMEOUT": "900"}, category='xdd')) config['builders'].append(BuilderConfig(name="xdd-sles11-x86_64", slavenames=["pod11"], factory=xdd_factory, env={"XDDTEST_TIMEOUT": "900"}, category='xdd')) config['builders'].append(BuilderConfig(name="xdd-osx-10-8", slavenames=["natureboy"], factory=xdd_factory, env={"XDDTEST_TIMEOUT": "900"}, category='xdd')) # config['builders'].append(BuilderConfig(name="xdd-rhel6-ppc64", slavenames=["spry02"], factory=xdd_factory, env={"XDDTEST_TIMEOUT": "900"}, category='xdd')) ####### SCHEDULERS # Configure the Schedulers, which decide how to react to incoming changes. In this # case, just kick off a 'runtests' build # Configure the nightly testing so that every test lives in the same buildset from buildbot.schedulers.basic import SingleBranchScheduler from buildbot.schedulers.timed import Periodic,Nightly build_nightly_xdd=Nightly(name="xdd-nightly1", branch = "master", properties={'owner' : ['*****@*****.**']}, builderNames=["xdd-sles11-x86_64", "xdd-osx-10-8"], hour = 2, minute = 3) config['schedulers'].append(build_nightly_xdd) # Configure each force build seperately so that they live in differing buildsets from buildbot.schedulers.forcesched import ForceScheduler # config['schedulers'].append(ForceScheduler(name="xdd-force1", builderNames=["xdd-rhel5-x86_64"])) # config['schedulers'].append(ForceScheduler(name="xdd-force2", builderNames=["xdd-rhel6-x86_64"])) # config['schedulers'].append(ForceScheduler(name="xdd-force3", builderNames=["xdd-sles10-x86_64"])) config['schedulers'].append(ForceScheduler(name="xdd-force4", builderNames=["xdd-sles11-x86_64"])) config['schedulers'].append(ForceScheduler(name="xdd-force6", builderNames=["xdd-osx-10-8"])) # config['schedulers'].append(ForceScheduler(name="xdd-force7", builderNames=["xdd-rhel6-ppc64"])) ####### STATUS TARGETS # 'status' is a list of Status Targets. The results of each build will be # pushed to these targets. buildbot/status/*.py has a variety to choose from, # including web pages, email senders, and IRC bots. from buildbot.status.mail import MailNotifier xddMN = MailNotifier(fromaddr="*****@*****.**", extraRecipients=['*****@*****.**'], categories='xdd', buildSetSummary=True, messageFormatter=xddSummaryMail) config['status'].append(xddMN)