Ejemplo n.º 1
0
def create_schedulers(repos_and_packages):
    return [
        DependencyTreeScheduler(
            'dependency-tree',
            build_dependency_tree=create_build_dependency_tree(repo['artifacts']),
            builds_from_change=builds_from_change_func(repo['artifacts']),
            change_filter=util.ChangeFilter(
                repository=repo['repo'],
                branch='master'))
        for repo in repos_and_packages
    ] + [
        schedulers.ForceScheduler(
            artifact['artifact'] + '-force',
            builderNames=[artifact['artifact']],
            buttonName='Force'
        )
        for repo in repos_and_packages for artifact in repo['artifacts']
    ] + _flatten([
        (schedulers.SingleBranchScheduler(
            'artifactsrc-yml',
            fileIsImportant=_artifactsrc_needs_rebuilding,
            onlyImportant=True,
            change_filter=util.ChangeFilter(
                repository=repo['repo'],
                branch='master'),
            builderNames=['build-artifactsrc-yml']
        ), schedulers.ForceScheduler(
            'artifactsrc-yml-force',
            builderNames=['build-artifactsrc-yml'],
            buttonName='Force'
        ))
        for repo in repos_and_packages
    ])
Ejemplo n.º 2
0
    def setupSchedulers(self, _schedulers, spawner_name, try_name, deploy_name,
                        importantManager, codebases, dep_properties):
        # branch filtering is already made by the changesource
        _schedulers.append(
            schedulers.AnyBranchScheduler(
                name=spawner_name,
                builderNames=[spawner_name],
                change_filter=util.GerritChangeFilter(
                    project=self.name, eventtype_re="ref-updated"),
                onlyImportant=True,
                fileIsImportant=importantManager.fileIsImportant,
                codebases=codebases,
            ))
        _schedulers.append(
            schedulers.AnyBranchScheduler(
                name=try_name,
                builderNames=[try_name],
                change_filter=util.GerritChangeFilter(
                    project=self.name, eventtype="patchset-created"),
                onlyImportant=True,
                fileIsImportant=importantManager.fileIsImportant,
                codebases=codebases,
            ))
        _schedulers.append(
            schedulers.ForceScheduler(
                name="force" + spawner_name,
                builderNames=[spawner_name],
                codebases=self.createCodebaseParams(codebases)))

        _schedulers.append(
            schedulers.ForceScheduler(
                name=deploy_name,
                builderNames=[deploy_name],
                codebases=self.createCodebaseParamsForDeploy(codebases),
                properties=dep_properties))
Ejemplo n.º 3
0
    def setupSchedulers(self, _schedulers, spawner_name, try_name, deploy_name,
                        importantManager, codebases, dep_properties):
        _schedulers.append(
            schedulers.AnyBranchScheduler(
                name=spawner_name,
                builderNames=[spawner_name],
                change_filter=self.getPushChangeFilter(),
                onlyImportant=True,
                fileIsImportant=importantManager.fileIsImportant,
                codebases=codebases,
            ))
        if self.supportsTry:
            _schedulers.append(
                schedulers.AnyBranchScheduler(
                    name=try_name,
                    builderNames=[try_name],
                    change_filter=self.getTryChangeFilter(),
                    onlyImportant=True,
                    fileIsImportant=importantManager.fileIsImportant,
                    codebases=codebases,
                ))
        _schedulers.append(
            schedulers.ForceScheduler(
                name="force" + spawner_name,
                builderNames=[spawner_name],
                codebases=self.createCodebaseParams(codebases)))

        _schedulers.append(
            schedulers.ForceScheduler(
                name=deploy_name,
                builderNames=[deploy_name],
                codebases=self.createCodebaseParamsForDeploy(codebases),
                properties=dep_properties))
Ejemplo n.º 4
0
def masterGlobConfig():
    c = {}
    from buildbot.config import BuilderConfig
    from buildbot.process.factory import BuildFactory
    from buildbot.plugins import steps, schedulers

    c['schedulers'] = [
        schedulers.ForceScheduler(
            name="force", builderNames=["testy"])
    ]

    f = BuildFactory()
    f.addStep(steps.StringDownload("filecontent", workerdest="dir/file1.txt"))
    f.addStep(
        steps.StringDownload(
            "filecontent2", workerdest="dir/notafile1.txt"))
    f.addStep(steps.StringDownload("filecontent2", workerdest="dir/only1.txt"))
    f.addStep(
        steps.MultipleFileUpload(
            workersrcs=["dir/file*.txt", "dir/not*.txt", "dir/only?.txt"],
            masterdest="dest/",
            glob=True))
    c['builders'] = [
        BuilderConfig(
            name="testy", workernames=["local1"], factory=f)
    ]
    return c
Ejemplo n.º 5
0
def masterConfig():
    c = {}
    from buildbot.config import BuilderConfig
    from buildbot.process.factory import BuildFactory
    from buildbot.plugins import schedulers, steps

    c['services'] = [FakeSecretReporter('http://example.com/hook',
                                        auth=('user', Interpolate('%(secret:httppasswd)s')))]
    c['schedulers'] = [
        schedulers.ForceScheduler(
            name="force",
            builderNames=["testy"])]

    c['secretsProviders'] = [FakeSecretStorage(
        secretdict={"foo": "bar", "something": "more", 'httppasswd': 'myhttppasswd'})]
    f = BuildFactory()
    if os.name == "posix":
        f.addStep(steps.ShellCommand(command=Interpolate(
            'echo %(secret:foo)s | sed "s/bar/The password was there/"')))
    else:
        f.addStep(steps.ShellCommand(command=Interpolate(
            'echo %(secret:foo)s')))
    c['builders'] = [
        BuilderConfig(name="testy",
                      workernames=["local1"],
                      factory=f)]
    return c
Ejemplo n.º 6
0
def add_all_schedulers(cfg):
    for s_name in SERVICES:
        for branch in get_all_possible_branch_names():
            realm = BRANCH_TO_REALM_MAPPING[branch]
            buildername = f"{s_name}_{realm}"
            cfg['schedulers'].append(
                schedulers.ForceScheduler(
                    name=f"force-{s_name}-{realm}",
                    codebases=[
                        util.CodebaseParameter(
                            "",
                            label="Repository",
                            branch=util.FixedParameter(name="branch",
                                                       default=branch),
                            revision=util.StringParameter(name="revision",
                                                          default=""),
                            repository=util.FixedParameter(
                                name="repository",
                                default=SERVICES[s_name]['giturl']),
                            project=util.FixedParameter(name="project",
                                                        default=s_name),
                        )
                    ],
                    builderNames=[buildername],
                ))

            cfg['schedulers'].append(
                schedulers.SingleBranchScheduler(
                    name=f"commit-{s_name}-{realm}",
                    builderNames=[buildername],
                    treeStableTimer=0,
                    change_filter=util.ChangeFilter(branch=branch,
                                                    project=s_name),
                ))
def masterConfig(num_concurrent, extra_steps=None):
    if extra_steps is None:
        extra_steps = []
    c = {}

    c['schedulers'] = [
        schedulers.ForceScheduler(
            name="force",
            builderNames=["testy"])]
    triggereables = []
    for i in range(num_concurrent):
        c['schedulers'].append(
            schedulers.Triggerable(
                name="trigsched" + str(i),
                builderNames=["build"]))
        triggereables.append("trigsched" + str(i))

    f = BuildFactory()
    f.addStep(steps.ShellCommand(command='echo hello'))
    f.addStep(steps.Trigger(schedulerNames=triggereables,
                            waitForFinish=True,
                            updateSourceStamp=True))
    f.addStep(steps.ShellCommand(command='echo world'))
    f2 = BuildFactory()
    f2.addStep(steps.ShellCommand(command='echo ola'))
    for step in extra_steps:
        f2.addStep(step)
    c['builders'] = [
        BuilderConfig(name="testy",
                      workernames=["marathon0"],
                      factory=f),
        BuilderConfig(name="build",
                      workernames=["marathon" + str(i)
                                   for i in range(num_concurrent)],
                      factory=f2)]
    url = os.environ.get('BBTEST_MARATHON_URL')
    creds = os.environ.get('BBTEST_MARATHON_CREDS')
    if creds is not None:
        user, password = creds.split(":")
    else:
        user = password = None
    masterFQDN = os.environ.get('masterFQDN')
    marathon_extra_config = {
    }
    c['workers'] = [
        MarathonLatentWorker('marathon' + str(i), url, user, password, 'buildbot/buildbot-worker:master',
                             marathon_extra_config=marathon_extra_config,
                             masterFQDN=masterFQDN)
        for i in range(num_concurrent)
    ]
    # un comment for debugging what happens if things looks locked.
    # c['www'] = {'port': 8080}
    # if the masterFQDN is forced (proxy case), then we use 9989 default port
    # else, we try to find a free port
    if masterFQDN is not None:
        c['protocols'] = {"pb": {"port": "tcp:9989"}}
    else:
        c['protocols'] = {"pb": {"port": "tcp:0"}}

    return c
Ejemplo n.º 8
0
def masterConfig(use_with=False):
    c = {}
    from buildbot.config import BuilderConfig
    from buildbot.process.factory import BuildFactory
    from buildbot.plugins import schedulers, steps

    c['schedulers'] = [
        schedulers.ForceScheduler(name="force", builderNames=["testy"])
    ]

    c['secretsProviders'] = [
        FakeSecretStorage(secretdict={
            "foo": "bar",
            "something": "more"
        })
    ]
    f = BuildFactory()
    if use_with:
        secrets_list = [("pathA", Interpolate('%(secret:something)s'))]
        with f.withSecrets(secrets_list):
            f.addStep(
                steps.ShellCommand(command=Interpolate('echo %(secret:foo)s')))
    else:
        f.addSteps(
            [steps.ShellCommand(command=Interpolate('echo %(secret:foo)s'))],
            withSecrets=[("pathA", Interpolate('%(secret:something)s'))])
    c['builders'] = [
        BuilderConfig(name="testy", workernames=["local1"], factory=f)
    ]
    return c
Ejemplo n.º 9
0
def add_schedulers(cfg):
    for branch in config['branch_deployment_configs']:
        realm = config['branch_deployment_configs'][branch]['namespace']
        buildername = 'vs-' + realm
        cfg['schedulers'].append(
            schedulers.ForceScheduler(
                name="force-vs" + realm,
                codebases=[
                    util.CodebaseParameter(
                        "",
                        label="Repository",
                        branch=util.FixedParameter(name="branch",
                                                   default=branch),
                        revision=util.StringParameter(name="revision",
                                                      default=""),
                        repository=util.FixedParameter(
                            name="repository",
                            default=
                            "https://github.com/klaital/volunteer-savvy-backend"
                        ),
                        project=util.FixedParameter(
                            name="project", default='volunteer-savvy-backend'),
                    )
                ],
                builderNames=[buildername]))
Ejemplo n.º 10
0
def masterGlobConfig():
    c = {}
    from buildbot.config import BuilderConfig
    from buildbot.process.factory import BuildFactory
    from buildbot.plugins import steps, schedulers
    from buildbot.steps.worker import CompositeStepMixin

    class CustomStep(steps.BuildStep, CompositeStepMixin):
        @defer.inlineCallbacks
        def run(self):
            content = yield self.getFileContentFromWorker(
                "dir/file1.txt", abandonOnFailure=True)
            assert content == "filecontent"
            return SUCCESS

    c['schedulers'] = [
        schedulers.ForceScheduler(name="force", builderNames=["testy"])
    ]

    f = BuildFactory()
    f.addStep(steps.StringDownload("filecontent", workerdest="dir/file1.txt"))
    f.addStep(
        steps.StringDownload("filecontent2", workerdest="dir/notafile1.txt"))
    f.addStep(steps.StringDownload("filecontent2", workerdest="dir/only1.txt"))
    f.addStep(
        steps.MultipleFileUpload(
            workersrcs=["dir/file*.txt", "dir/not*.txt", "dir/only?.txt"],
            masterdest="dest/",
            glob=True))
    f.addStep(CustomStep())
    c['builders'] = [
        BuilderConfig(name="testy", workernames=["local1"], factory=f)
    ]
    return c
Ejemplo n.º 11
0
def masterConfig(bigfilename):
    c = {}
    from buildbot.config import BuilderConfig
    from buildbot.process.factory import BuildFactory
    from buildbot.plugins import steps, schedulers

    c['schedulers'] = [
        schedulers.ForceScheduler(name="force", builderNames=["testy"])
    ]

    f = BuildFactory()
    # do a bunch of transfer to exercise the protocol
    f.addStep(steps.StringDownload("filecontent", workerdest="dir/file1.txt"))
    f.addStep(steps.StringDownload("filecontent2", workerdest="dir/file2.txt"))
    # create 8 MB file
    with open(bigfilename, 'w') as o:
        buf = "xxxxxxxx" * 1024
        for i in range(1000):
            o.write(buf)
    f.addStep(
        steps.FileDownload(mastersrc=bigfilename, workerdest="bigfile.txt"))
    f.addStep(
        steps.FileUpload(workersrc="dir/file2.txt", masterdest="master.txt"))
    f.addStep(
        steps.FileDownload(mastersrc="master.txt", workerdest="dir/file3.txt"))
    f.addStep(steps.DirectoryUpload(workersrc="dir", masterdest="dir"))
    c['builders'] = [
        BuilderConfig(name="testy", workernames=["local1"], factory=f)
    ]
    return c
Ejemplo n.º 12
0
def masterConfig():
    c = {}
    from buildbot.plugins import schedulers, steps, util

    class SleepAndInterrupt(steps.ShellSequence):
        @defer.inlineCallbacks
        def run(self):
            if self.worker.worker_system == "nt":
                sleep = "waitfor SomethingThatIsNeverHappening /t 100 >nul 2>&1"
            else:
                sleep = ["sleep", "100"]
            d = self.runShellSequence([util.ShellArg(sleep)])
            yield asyncSleep(1)
            self.interrupt("just testing")
            res = yield d
            return res

    c['schedulers'] = [
        schedulers.ForceScheduler(name="force", builderNames=["testy"])
    ]

    f = util.BuildFactory()
    f.addStep(SleepAndInterrupt())
    c['builders'] = [
        util.BuilderConfig(name="testy", workernames=["local1"], factory=f)
    ]

    return c
def master_config(secret_specifier):
    c = {}
    from buildbot.config import BuilderConfig
    from buildbot.process.factory import BuildFactory
    from buildbot.plugins import schedulers

    c['schedulers'] = [
        schedulers.ForceScheduler(name="force", builderNames=["testy"])
    ]

    # note that as of August 2021, the vault docker image default to kv
    # version 2 to be enabled by default
    c['secretsProviders'] = [
        HashiCorpVaultKvSecretProvider(authenticator=VaultAuthenticatorToken('my_vaulttoken'),
                                       vault_server="http://localhost:8200",
                                       secrets_mount="secret")
    ]

    f = BuildFactory()
    f.addStep(ShellCommand(command=Interpolate(f'echo {secret_specifier} | base64')))

    c['builders'] = [
        BuilderConfig(name="testy",
                      workernames=["local1"],
                      factory=f)
    ]

    return c
Ejemplo n.º 14
0
def masterConfig(secret_specifier):
    c = {}
    from buildbot.config import BuilderConfig
    from buildbot.process.factory import BuildFactory
    from buildbot.plugins import schedulers

    c['schedulers'] = [
        schedulers.ForceScheduler(name="force", builderNames=["testy"])
    ]

    # note that as of December 2018, the vault docker image default to kv
    # version 2 to be enabled by default
    c['secretsProviders'] = [
        HashiCorpVaultSecretProvider(vaultToken='my_vaulttoken',
                                     vaultServer="http://localhost:8200",
                                     apiVersion=2)
    ]

    f = BuildFactory()
    f.addStep(
        ShellCommand(
            command=Interpolate('echo {} | base64'.format(secret_specifier))))

    c['builders'] = [
        BuilderConfig(name="testy", workernames=["local1"], factory=f)
    ]
    return c
Ejemplo n.º 15
0
def masterConfig():
    c = {}
    from buildbot.config import BuilderConfig
    from buildbot.process.factory import BuildFactory
    from buildbot.plugins import steps, schedulers

    c['schedulers'] = [
        schedulers.ForceScheduler(
            name="force",
            builderNames=["testy"])]

    f = BuildFactory()
    # do a bunch of transfer to exercise the protocol
    f.addStep(steps.StringDownload("filecontent", workerdest="dir/file1.txt"))
    f.addStep(steps.StringDownload("filecontent2", workerdest="dir/file2.txt"))
    f.addStep(
        steps.FileUpload(workersrc="dir/file2.txt", masterdest="master.txt"))
    f.addStep(
        steps.FileDownload(mastersrc="master.txt", workerdest="dir/file3.txt"))
    f.addStep(steps.DirectoryUpload(workersrc="dir", masterdest="dir"))
    c['builders'] = [
        BuilderConfig(name="testy",
                      workernames=["local1"],
                      factory=f)
    ]
    return c
Ejemplo n.º 16
0
def get_schedulers():
    return [
        schedulers.SingleBranchScheduler(
            name="all",
            change_filter=util.ChangeFilter(branch='master'),
            treeStableTimer=None,
            builderNames=["runtests"]),
        schedulers.ForceScheduler(name="force", builderNames=["runtests"])
    ]
Ejemplo n.º 17
0
def masterConfig(num_concurrent, extra_steps=None):
    if extra_steps is None:
        extra_steps = []
    c = {}

    c['schedulers'] = [
        schedulers.ForceScheduler(name="force", builderNames=["testy"])
    ]
    triggereables = []
    for i in range(num_concurrent):
        c['schedulers'].append(
            schedulers.Triggerable(name="trigsched" + str(i),
                                   builderNames=["build"]))
        triggereables.append("trigsched" + str(i))

    f = BuildFactory()
    f.addStep(steps.ShellCommand(command='echo hello'))
    f.addStep(
        steps.Trigger(schedulerNames=triggereables,
                      waitForFinish=True,
                      updateSourceStamp=True))
    f.addStep(steps.ShellCommand(command='echo world'))
    f2 = BuildFactory()
    f2.addStep(steps.ShellCommand(command='echo ola'))
    for step in extra_steps:
        f2.addStep(step)
    c['builders'] = [
        BuilderConfig(name="testy", workernames=["hyper0"], factory=f),
        BuilderConfig(
            name="build",
            workernames=["hyper" + str(i) for i in range(num_concurrent)],
            factory=f2)
    ]
    hyperconfig = workerhyper.Hyper.guess_config()
    if isinstance(hyperconfig, string_types):
        hyperconfig = json.load(open(hyperconfig))
    hyperhost, hyperconfig = hyperconfig['clouds'].items()[0]
    masterFQDN = os.environ.get('masterFQDN')
    c['workers'] = [
        HyperLatentWorker('hyper' + str(i),
                          'passwd',
                          hyperhost,
                          hyperconfig['accesskey'],
                          hyperconfig['secretkey'],
                          'buildbot/buildbot-worker:master',
                          masterFQDN=masterFQDN) for i in range(num_concurrent)
    ]
    # un comment for debugging what happens if things looks locked.
    # c['www'] = {'port': 8080}
    # if the masterFQDN is forced (proxy case), then we use 9989 default port
    # else, we try to find a free port
    if masterFQDN is not None:
        c['protocols'] = {"pb": {"port": "tcp:9989"}}
    else:
        c['protocols'] = {"pb": {"port": "tcp:0"}}

    return c
Ejemplo n.º 18
0
def scheduler_force_wintools(name, builders, codebases_wintools):
    return schedulers.ForceScheduler(
        name=name,
        buttonName="Wintools build",
        label="Manual Windows Tools build",
        reason=util.StringParameter(name="reason",
                                    label="Reason:",
                                    required=False,
                                    size=140),
        builderNames=builders,
        codebases=codebases_to_params(codebases_wintools))
Ejemplo n.º 19
0
    def setupSchedulers(self, _schedulers, spawner_name, try_name, deploy_name, importantManager, codebases, dep_properties):
        filt = dict(repository=self.repository)
        if self.branch is not None:
            filt['branch'] = self.branch
        _schedulers.append(schedulers.AnyBranchScheduler(
            name=spawner_name,
            builderNames=[spawner_name],
            change_filter=util.ChangeFilter(**filt),
            onlyImportant=True,
            fileIsImportant=importantManager.fileIsImportant,
            codebases=codebases,
        ))
        _schedulers.append(schedulers.ForceScheduler(
            name="force" + spawner_name,
            builderNames=[spawner_name],
            codebases=self.createCodebaseParams(codebases)))

        _schedulers.append(schedulers.ForceScheduler(
            name=deploy_name,
            builderNames=[deploy_name],
            codebases=self.createCodebaseParamsForDeploy(codebases),
            properties=dep_properties))
Ejemplo n.º 20
0
def getLntSchedulers():
    project = "lnt"
    lnt_builders = [
        "publish-lnt-sphinx-docs",
    ]
    return [
        schedulers.SingleBranchScheduler(
            name="lnt-scheduler",
            treeStableTimer=kwargs.get('treeStableTimer', None),
            reason="Merge to LNT github {} branch".format(filter_branch),
            builderNames=lnt_builders,
            change_filter=util.ChangeFilter(project_fn=project,
                                            branch=filter_branch)),
        schedulers.ForceScheduler(
            name="force-build-scheduler",
            label="Force Build",
            buttonName="Force Build",
            reason=util.ChoiceStringParameter(
                name="reason",
                label="reason:",
                required=True,
                choices=[
                    "Build a particular revision",
                    "Force clean build",
                    "Narrow down blamelist",
                ],
                default="Build a particular revision"),
            builderNames=lnt_builders,
            codebases=[
                util.CodebaseParameter(
                    codebase="",
                    branch=util.FixedParameter(name="branch", default=_branch),
                    revision=util.StringParameter(name="revision",
                                                  label="revision:",
                                                  size=45,
                                                  default=''),
                    repository=util.FixedParameter(name="repository",
                                                   default=_repourl),
                    project=util.FixedParameter(name="project",
                                                default=project))
            ],
            properties=[
                util.BooleanParameter(
                    name="clean",
                    label="Clean source code and build directory",
                    default=False),
                util.BooleanParameter(name="clean_obj",
                                      label="Clean build directory",
                                      default=False)
            ]),
    ]
Ejemplo n.º 21
0
def masterConfig(num_concurrent, extra_steps=None):
    if extra_steps is None:
        extra_steps = []
    c = {}

    c['schedulers'] = [
        schedulers.ForceScheduler(name="force", builderNames=["testy"])
    ]
    triggereables = []
    for i in range(num_concurrent):
        c['schedulers'].append(
            schedulers.Triggerable(
                name="trigsched" + str(i), builderNames=["build"]))
        triggereables.append("trigsched" + str(i))

    f = BuildFactory()
    f.addStep(steps.ShellCommand(command='echo hello'))
    f.addStep(
        steps.Trigger(
            schedulerNames=triggereables,
            waitForFinish=True,
            updateSourceStamp=True))
    f.addStep(steps.ShellCommand(command='echo world'))
    f2 = BuildFactory()
    f2.addStep(steps.ShellCommand(command='echo ola'))
    for step in extra_steps:
        f2.addStep(step)
    c['builders'] = [
        BuilderConfig(name="testy", workernames=["kubernetes0"], factory=f),
        BuilderConfig(
            name="build",
            workernames=["kubernetes" + str(i) for i in range(num_concurrent)],
            factory=f2)
    ]
    masterFQDN = os.environ.get('masterFQDN')
    c['workers'] = [
        kubernetes.KubeLatentWorker(
            'kubernetes' + str(i),
            'buildbot/buildbot-worker',
            kube_config=kubeclientservice.KubeCtlProxyConfigLoader(
                namespace=os.getenv("KUBE_NAMESPACE", "default")),
            masterFQDN=masterFQDN) for i in range(num_concurrent)
    ]
    # un comment for debugging what happens if things looks locked.
    # c['www'] = {'port': 8080}
    c['protocols'] = {"pb": {"port": "tcp:9989"}}

    return c
Ejemplo n.º 22
0
def scheduler_force_stable(name, builders, template_dfl, codebases_stable):
    return schedulers.ForceScheduler(
        name=name,
        buttonName="Stable build",
        label="Trigger stable build",
        reason=util.StringParameter(name="reason",
                                    label="Reason:",
                                    required=False,
                                    size=140),
        builderNames=builders,
        codebases=codebases_to_params(codebases_stable),
        properties=[
            util.StringParameter(name="template",
                                 label="Configuration Template:",
                                 default=template_dfl)
        ])
def masterConfig():
    c = {}
    from buildbot.config import BuilderConfig
    from buildbot.process.factory import BuildFactory
    from buildbot.plugins import steps

    c['schedulers'] = [
        schedulers.AnyBranchScheduler(name="sched1", builderNames=["testy1"]),
        schedulers.ForceScheduler(name="sched2", builderNames=["testy2"])
    ]
    f = BuildFactory()
    f.addStep(steps.ShellCommand(command='echo hello'))
    c['builders'] = [
        BuilderConfig(name=name, workernames=["local1"], factory=f)
        for name in ['testy1', 'testy2']
    ]
    return c
Ejemplo n.º 24
0
def masterConfig():
    c = {}
    from buildbot.config import BuilderConfig
    from buildbot.process.factory import BuildFactory
    from buildbot.plugins import steps, schedulers, util

    c['schedulers'] = [
        schedulers.ForceScheduler(name="force", builderNames=["testy"])
    ]

    f = BuildFactory()
    # do a bunch of transfer to exercise the protocol
    f.addStep(steps.ShellCommand(command=["echo", util.URLForBuild]))
    c['builders'] = [
        BuilderConfig(name="testy", workernames=["local1"], factory=f)
    ]
    return c
Ejemplo n.º 25
0
def getForceSchedulers(builders):
    # Walk over all builders and collect their names.
    scheduler_builders = [builder.name for builder in builders]

    # Create the force schedulers.
    return [
        schedulers.ForceScheduler(
            name="force-build-scheduler",
            label="Force Build",
            buttonName="Force Build",
            reason=util.ChoiceStringParameter(
                name="reason",
                label="reason:",
                required=True,
                choices=[
                    "Build a particular revision",
                    "Force clean build",
                    "Narrow down blamelist",
                ],
                default="Build a particular revision"),
            builderNames=scheduler_builders,
            codebases=[
                util.CodebaseParameter(
                    codebase="",
                    branch=util.FixedParameter(name="branch", default=_branch),
                    revision=util.StringParameter(name="revision",
                                                  label="revision:",
                                                  size=45,
                                                  default=''),
                    repository=util.FixedParameter(name="repository",
                                                   default=_repourl),
                    project=util.FixedParameter(
                        name="project",
                        default="llvm"  # All projects depend on llvm
                    ))
            ],
            properties=[
                util.BooleanParameter(
                    name="clean",
                    label="Clean source code and build directory",
                    default=False),
                util.BooleanParameter(name="clean_obj",
                                      label="Clean build directory",
                                      default=False)
            ])
    ]
Ejemplo n.º 26
0
def masterConfig():
    c = {}
    from buildbot.config import BuilderConfig
    from buildbot.process.factory import BuildFactory
    from buildbot.plugins import steps, schedulers

    c['schedulers'] = [
        schedulers.AnyBranchScheduler(name="sched", builderNames=["testy"]),
        schedulers.ForceScheduler(name="force", builderNames=["testy"])
    ]

    f = BuildFactory()
    f.addStep(steps.ShellCommand(command='sleep 100', name='sleep'))
    c['builders'] = [
        BuilderConfig(name="testy", workernames=["local1"], factory=f)
    ]
    return c
Ejemplo n.º 27
0
def masterConfig():
    c = {}
    from buildbot.config import BuilderConfig
    from buildbot.process.factory import BuildFactory
    from buildbot.plugins import schedulers

    c['schedulers'] = [
        schedulers.AnyBranchScheduler(name="sched", builderNames=["testy"]),
        schedulers.ForceScheduler(name="force", builderNames=["testy"])
    ]

    f = BuildFactory()
    f.addStep(DisconnectingStep())
    c['builders'] = [
        BuilderConfig(name="testy", workernames=["local1"], factory=f)
    ]
    return c
Ejemplo n.º 28
0
def masterConfig():
    global num_reconfig
    num_reconfig += 1
    c = {}
    from buildbot.plugins import schedulers, steps, util

    c['schedulers'] = [
        schedulers.ForceScheduler(name="force", builderNames=["testy"])
    ]

    f = util.BuildFactory()
    f.addStep(
        steps.SetPropertyFromCommand(property="test", command=["echo", "foo"]))
    c['builders'] = [
        util.BuilderConfig(name="testy", workernames=["local1"], factory=f)
    ]

    return c
Ejemplo n.º 29
0
    def get_config_single_step(self, step):
        c = {}
        from buildbot.config import BuilderConfig
        from buildbot.process.factory import BuildFactory
        from buildbot.plugins import steps, schedulers

        c['schedulers'] = [
            schedulers.ForceScheduler(name="force", builderNames=["testy"])
        ]

        f = BuildFactory()

        f.addStep(
            steps.FileUpload(workersrc="dir/noexist_path",
                             masterdest="master_dest"))
        c['builders'] = [
            BuilderConfig(name="testy", workernames=["local1"], factory=f)
        ]
        return c
def masterConfig(usePTY):
    c = {}
    from buildbot.config import BuilderConfig
    from buildbot.process.factory import BuildFactory
    from buildbot.plugins import steps, schedulers

    c['schedulers'] = [
        schedulers.ForceScheduler(name="force", builderNames=["testy"])
    ]

    f = BuildFactory()
    f.addStep(
        steps.ShellCommand(
            command=
            'if [ -t 1 ] ; then echo in a terminal; else echo "not a terminal"; fi',
            usePTY=usePTY))
    c['builders'] = [
        BuilderConfig(name="testy", workernames=["local1"], factory=f)
    ]
    return c