Exemple #1
0
def getSchedulers():
    return [
        AnyBranchScheduler(
            name="flocker",
            treeStableTimer=5,
            builderNames=BUILDERS,
            # Only build certain branches because problems arise when we build
            # many branches such as queues and request limits.
            change_filter=ChangeFilter(branch_fn=build_automatically),
            codebases={
                "flocker": {
                    "repository": GITHUB + b"/flocker"
                },
            },
        ),
        ForceScheduler(
            name="force-flocker",
            codebases=[
                CodebaseParameter(
                    "flocker",
                    branch=StringParameter("branch", default="master",
                                           size=80),
                    repository=FixedParameter("repository",
                                              default=GITHUB + b"/flocker"),
                ),
            ],
            properties=[
                report_expected_failures_parameter,
            ],
            builderNames=BUILDERS,
        ),
    ]
    def addBuildsetForChanges(self, *args, **kwargs):
        kwargs['properties'] = yield self._addBuildIdProperty(
            kwargs.get('changeids', ()),
            kwargs.get('properties'),
        )

        rv = yield AnyBranchScheduler.addBuildsetForChanges(
            self, *args, **kwargs)
        defer.returnValue(rv)
Exemple #3
0
def get_schedulers() :
    from buildbot.schedulers.basic import AnyBranchScheduler
    from buildbot.schedulers.forcesched import ForceScheduler
    from buildbot.schedulers.forcesched import StringParameter
    from buildbot.schedulers.forcesched import FixedParameter
    from buildbot.plugins import util
    import builders

    return [
        AnyBranchScheduler(
            name = 'default',
            reason = 'main repository source code modification',
            builderNames = builders.get_builder_names(),
            treeStableTimer = 20,
            change_filter = util.ChangeFilter(
                repository_fn = lambda repository : bool('github.com/SFML/SFML' in repository)
            ),
            properties = {
                'trigger' : 'internal'
            }
        ),
        AnyBranchScheduler(
            name = 'foreign',
            builderNames = builders.get_builder_names(),
            change_filter = util.ChangeFilter(
                repository_fn = lambda repository : bool('github.com/SFML/SFML' not in repository)
            ),
            properties = {
                'trigger' : 'external'
            }
        ),
        ForceScheduler(
            name = 'force',
            reason = StringParameter(name = "reason", default = "manual build", size = 100),
            builderNames = builders.get_builder_names(),
            branch = StringParameter(name = "branch", default = "master", size = 100),
            revision = StringParameter(name = "revision", default = "", size = 100),
            repository = StringParameter(name = "repository", default = "https://github.com/SFML/SFML.git", regex = r"^https://github.com/[\w-]*/[\w-]*\.git$", size = 100),
            project = StringParameter(name = "project", default = "SFML", size = 100),
            properties = [
                util.FixedParameter(name = "trigger", default = "force")
            ]
        )
    ]
  def addBuildsetForChanges(self, *args, **kwargs):
    kwargs['properties'] = yield self._addBuildIdProperty(
        kwargs.get('changeids', ()),
        kwargs.get('properties'),
    )

    rv = yield AnyBranchScheduler.addBuildsetForChanges(
        self,
        *args,
        **kwargs)
    defer.returnValue(rv)
Exemple #5
0
def get_schedulers():
    from buildbot.schedulers.basic import SingleBranchScheduler
    from buildbot.schedulers.basic import AnyBranchScheduler
    from buildbot.schedulers.forcesched import ForceScheduler
    from buildbot.schedulers.forcesched import StringParameter
    from buildbot.schedulers.forcesched import FixedParameter
    from buildbot.plugins import util
    import builders

    return [
        SingleBranchScheduler(
            name='master',
            reason='main repository source code modification',
            builderNames=['coverity'],
            treeStableTimer=20,
            change_filter=util.ChangeFilter(branch='master')),
        AnyBranchScheduler(name='default',
                           reason='main repository source code modification',
                           builderNames=builders.get_builder_names(),
                           treeStableTimer=20),
        ForceScheduler(
            name='force',
            reason=StringParameter(name="reason",
                                   default="manual build",
                                   size=100),
            builderNames=builders.get_builder_names(),
            codebases=[
                util.CodebaseParameter(
                    "",
                    label="Codebase",
                    branch=StringParameter(name="branch",
                                           default="master",
                                           size=100),
                    revision=StringParameter(name="revision",
                                             default="",
                                             size=100),
                    repository=StringParameter(
                        name="repository",
                        default="https://github.com/SFML/SFML.git",
                        regex=r"^https://github.com/[\w-]*/[\w-]*\.git$",
                        size=100),
                    project=StringParameter(name="project",
                                            default="SFML",
                                            size=100),
                )
            ],
            properties=[util.FixedParameter(name="trigger", default="force")])
    ]
Exemple #6
0
from buildbot.config import BuilderConfig
from buildbot.process.factory import BuildFactory
from buildbot.schedulers.basic import AnyBranchScheduler
from buildbot.schedulers.forcesched import ForceScheduler
from buildbot.steps.shell import ShellCommand
from buildbot.worker import Worker

c['workers'] = [Worker("local1", "localpw")]
c['protocols'] = {'pb': {'port': 'tcp:0'}}
c['change_source'] = []
c['change_source'] = PBChangeSource()
c['schedulers'] = []
c['schedulers'].append(
    AnyBranchScheduler(name="all",
                       change_filter=ChangeFilter(project_re='^testy/'),
                       treeStableTimer=1 * 60,
                       builderNames=[
                           'testy',
                       ]))
c['schedulers'].append(ForceScheduler(name="force", builderNames=["testy"]))
f1 = BuildFactory()
f1.addStep(ShellCommand(command='echo hi'))
c['builders'] = []
c['builders'].append(
    BuilderConfig(name="testy", workernames=["local1"], factory=f1))
c['status'] = []
c['title'] = "test"
c['titleURL'] = "test"
c['buildbotURL'] = "http://localhost:8010/"
c['db'] = {'db_url': "sqlite:///state.sqlite"}
Exemple #7
0
 "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"]),
 ],
 "www": {
     "port":
     PORT,
     "auth":
     UserPasswordAuth(
         {env('BB_USER', 'dolphin'): env('BB_PSWD', 'dolphin')}),
     "plugins": {
         "waterfall_view": {
             "num_builds": 50
         },
         "console_view": {},
     },
 },
 "services": [],
Exemple #8
0
from buildbot.schedulers.basic import AnyBranchScheduler
from buildbot.schedulers.triggerable import Triggerable
from buildbot.changes.filter import ChangeFilter
from buildbot.process.factory import BuildFactory
from buildbot.steps.master import MasterShellCommand
from buildscripts import steps as buildsteps

project = __opts__['project']

c['schedulers'].append(
    AnyBranchScheduler(name=project,
                       change_filter=ChangeFilter(project=project,
                                                  category='default'),
                       builderNames=['{0} source'.format(project)]))

c["schedulers"].append(
    Triggerable(name="{0} packaging".format(project),
                builderNames=["deb_packaging", "rpm_packaging"]))


def push_to_github(__opts__):
    cwd = 'sandboxes/{0}/svn2git'.format(project)
    return [
        MasterShellCommand(command="""
                    cd sandboxes/{0}/svn2git
                    svn2git --rebase --verbose
                    git push origin master""".format(project),
                           description='Pushing commit to GitHub',
                           descriptionDone='Push commit to GitHub (trunk)'),
    ]
Exemple #9
0
 #     name="cpp-ethereum-develop-pr-git",
 #     change_filter=filter.ChangeFilter(codebase='cpp-ethereum', category='pull'),
 #     codebases=all_cpp_ethereum_codebases,
 #     treeStableTimer=60,
 #     builderNames=[
 #         "Linux C++ pull requests",
 #         "Linux C++ evmjit pull requests",
 #         "OSX C++ pull requests",
 #         "OSX C++ evmjit pull requests",
 #         "Windows C++ pull requests"
 #     ]),
 AnyBranchScheduler(
     name="go-ethereum-develop-pr-git",
     change_filter=filter.ChangeFilter(codebase='go-ethereum',
                                       category='pull'),
     codebases=all_go_ethereum_codebases,
     treeStableTimer=60,
     builderNames=[
         "Linux Go pull requests", "ARM Go pull requests",
         "OSX Go pull requests", "Windows Go pull requests"
     ]),
 AnyBranchScheduler(name="mist-develop-pr-git",
                    change_filter=filter.ChangeFilter(
                        codebase='go-ethereum', category='pull'),
                    codebases=all_mist_codebases,
                    treeStableTimer=60,
                    builderNames=["Mist pull requests"]),
 AnyBranchScheduler(
     name="pyethereum-pr-git",
     change_filter=filter.ChangeFilter(codebase='pyethereum',
                                       category='pull'),
     codebases=all_pyethereum_codebases,
Exemple #10
0
    return False


c['schedulers'] = []
c['schedulers'].append(
    AnyBranchScheduler(
        name="build-scheduler",
        treeStableTimer=None,
        builderNames=[
            "CMake-Ubuntu-10.10",
            "Ubuntu-10.10",
            "CMake-Ubuntu-12.04-x64",
            "Ubuntu-12.04-x64",
            #"CMake-Debian-6.0-x64", # TODO try to lower the requirement to cmake 2.8.2
            "Debian-6.0-x64",
            "CMake-Cygwin",
            "Cygwin",
            "CMake-Windows-MinGW",
            "CMake-Windows-MSYS",
            "CMake-Windows-NMake-VS10",
            "CMake-Windows-VS10",
            "Windows-VS10",
            "CMake-Windows-NMake-VS10-x64",
            "CMake-Windows-VS10-x64",
        ],
        fileIsImportant=ea_should_build,
        onlyImportant=True))
c['schedulers'].append(
    Triggerable(name="test-Ubuntu-12.04-x64-scheduler",
                builderNames=["test-Ubuntu-12.04-x64"]))
#c['schedulers'].append(AnyBranchScheduler(
#	name = "test-scheduler",
Exemple #11
0
    '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
    ))
Exemple #12
0
# SCHEDULERS
# Configure the Schedulers, which decide how to react to incoming changes.

from buildbot.schedulers.basic import AnyBranchScheduler
from buildbot.schedulers.forcesched import ForceScheduler

c['schedulers'] = [
    # Main scheduler, activated when a branch in the Nim repository is changed.
    AnyBranchScheduler(name="git-build-scheduler",
                       treeStableTimer=None,
                       builderNames=all_builder_names,
                       codebases={
                           'nim': {
                               'repository': ''
                           },
                           'csources': {
                               'repository': ''
                           },
                           'scripts': {
                               'repository': ''
                           },
                       }),

    # Force-build scheduler, activated when its button is clicked on the
    # build admins page.
    ForceScheduler(name="force-build-scheduler",
                   builderNames=all_builder_names,
                   buttonName="Force Compiler Build",
                   properties=[],
                   codebases={
                       'nim': {
Exemple #13
0
    # Make sure the baserev exists locally. GitHub's "baserev" property is
    # the current base branch head, which isn't guaranteed to exist in the PR
    # branch (e.g. if it hasn't been rebased).
    f.addStep(ShellCommand(command=['git', 'fetch', 'origin']))
    f.addStep(
        ShellCommand(
            command=['Tools/lint.sh',
                     WithProperties("%s...", "baserev")],
            logEnviron=False,
            description="lint",
            descriptionDone="lint",
            haltOnFailure=False))
    return f


win64_release = AnyBranchScheduler(name="win64-release",
                                   builderNames=["release-win-x64"])
win64_debug = Dependent(name="win64-debug",
                        upstream=win64_release,
                        builderNames=["debug-win-x64"])

osx_release = AnyBranchScheduler(name="osx-release",
                                 builderNames=["release-osx-x64"])
deb64_release = AnyBranchScheduler(name="deb64-release",
                                   builderNames=["release-deb-x64"])
ubu64_release = AnyBranchScheduler(name="ubu64-release",
                                   builderNames=["release-ubu-x64"])
android_release = Dependent(name="android-release",
                            upstream=ubu64_release,
                            builderNames=["release-android"])

freebsd_release = AnyBranchScheduler(name="freebsd-release",
  def Update(self, c):
    global_schedulers = dict((s.name, s) for s in c['schedulers']
                             if s.name.startswith('global_'))
    assert not set(global_schedulers) & set(self._schedulers)

    for builder in self._builders:
      # Update the schedulers with the builder.
      schedulers = builder['schedulers']
      if schedulers:
        for scheduler in schedulers:
          if scheduler in global_schedulers:
            global_schedulers[scheduler].builderNames.append(builder['name'])
          else:
            self._schedulers[scheduler]['builders'].append(builder['name'])

      # Construct the category.
      categories = []
      if builder.get('category', None):
        categories.append(builder['category'])
      if builder.get('gatekeeper', None):
        categories.extend(builder['gatekeeper'].split('|'))
      category = '|'.join(categories)

      # Append the builder to the list.
      new_builder = {'name': builder['name'],
                     'factory': self._factories[builder['factory']],
                     'category': category,
                     'auto_reboot': builder['auto_reboot']}
      if builder['builddir']:
        new_builder['builddir'] = builder['builddir']
      if builder['slavebuilddir']:
        new_builder['slavebuilddir'] = builder['slavebuilddir']
      c['builders'].append(new_builder)

    # Process the main schedulers.
    for s_name in self._schedulers:
      scheduler = self._schedulers[s_name]
      if scheduler['type'] == 'Scheduler':
        instance = Scheduler(name=s_name,
                             branch=scheduler['branch'],
                             treeStableTimer=scheduler['treeStableTimer'],
                             builderNames=scheduler['builders'],
                             categories=scheduler['categories'])
        scheduler['instance'] = instance
        c['schedulers'].append(instance)
      elif scheduler['type'] == 'URLScheduler':
        ident = str(uuid.uuid4())
        c['change_source'].append(
          URLPoller(changeurl=scheduler['url'],
                    pollInterval=scheduler['pollInterval'],
                    category=ident,
                    include_revision=scheduler['include_revision']))
        instance = Scheduler(name=s_name,
                             change_filter=ChangeFilter(category=ident),
                             builderNames=scheduler['builders'])
        scheduler['instance'] = instance
        c['schedulers'].append(instance)
      elif scheduler['type'] == 'FilterScheduler':
        instance = AnyBranchScheduler(
            name=s_name,
            change_filter=scheduler['filter'],
            treeStableTimer=scheduler['treeStableTimer'],
            builderNames=scheduler['builders'])
        scheduler['instance'] = instance
        c['schedulers'].append(instance)

    # Process the dependent schedulers.
    for s_name in self._schedulers:
      scheduler = self._schedulers[s_name]
      if scheduler['type'] == 'Dependent':
        c['schedulers'].append(
            Dependent(s_name,
                      self._schedulers[scheduler['parent']]['instance'],
                      scheduler['builders']))

    # Process the triggerable schedulers.
    for s_name in self._schedulers:
      scheduler = self._schedulers[s_name]
      if scheduler['type'] == 'Triggerable':
        c['schedulers'].append(Triggerable(s_name,
                                           scheduler['builders']))

    # Process the periodic schedulers.
    for s_name in self._schedulers:
      scheduler = self._schedulers[s_name]
      if scheduler['type'] == 'Periodic':
        c['schedulers'].append(
            Periodic(s_name,
                     periodicBuildTimer=scheduler['periodicBuildTimer'],
                     builderNames=scheduler['builders']))

    # Process the nightly schedulers.
    for s_name in self._schedulers:
      scheduler = self._schedulers[s_name]
      if scheduler['type'] == 'Nightly':
        c['schedulers'].append(Nightly(s_name,
                                       branch=scheduler['branch'],
                                       hour=scheduler['hour'],
                                       builderNames=scheduler['builders']))