コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
ファイル: changes.py プロジェクト: sigma/emacs-ci
 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)
コード例 #4
0
ファイル: wwdice.py プロジェクト: Klaital/buildbot-master
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'))
コード例 #5
0
ファイル: toyfactory.py プロジェクト: corvusalba/build-tools
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()))
コード例 #6
0
ファイル: git_poller.py プロジェクト: scality/eve
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,
    )
コード例 #7
0
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))
コード例 #8
0
    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)))
コード例 #9
0
]

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'] = []
コード例 #10
0
ファイル: dev.py プロジェクト: delroth/sadm
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"]),
    ],
コード例 #11
0
ファイル: master.py プロジェクト: astagi/r2d2
}

####### 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,
コード例 #12
0
ファイル: master.py プロジェクト: immanetize/jobber
    '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
    ))
コード例 #13
0
]

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}
コード例 #14
0
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
コード例 #15
0
            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)
]
コード例 #16
0
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",
コード例 #17
0
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'] = []
コード例 #18
0
    }
]

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}",
コード例 #19
0
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
コード例 #20
0
ファイル: master.py プロジェクト: adydychk/infrastructure
    '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}
コード例 #21
0
ファイル: schedule.py プロジェクト: AttakornP/yuiizzy
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)
コード例 #22
0
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'
コード例 #23
0
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)
]
コード例 #24
0
ファイル: buildbot_master_xdd.py プロジェクト: yoyz/xdd
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)