コード例 #1
0
ファイル: master.cfg.py プロジェクト: JohnBuckleyGitHub/schat
def MakeDebBuilder():
    f = BuildFactory()
    f.addSteps(svn_co)
    f.addStep(
        ShellCommand(
            name='revision',
            command=['bash', 'revision.sh'],
            workdir='build/os/ubuntu',
            haltOnFailure=True,
            env={'SCHAT_REVISION': Property('got_revision')},
        ))
    f.addStep(
        ShellCommand(
            name='deb',
            command=['bash', 'build.sh'],
            workdir='build/os/ubuntu',
            env={'SCHAT_VERSION': SCHAT_VERSION},
            haltOnFailure=True,
        ))
    f.addStep(
        FileUpload(
            mode=0644,
            slavesrc=WithProperties(
                'os/ubuntu/deb/schat2_%(version)s-1~%(codename)s_%(arch)s.deb'
            ),
            masterdest=UploadFileName(
                'schat2_%(version)s-1~%(codename)s%(suffix)s_%(arch)s.deb'),
            url=WithProperties(
                'https://download.schat.me/schat2/snapshots/%(version)s/r%(got_revision)s/schat2_%(version)s-1~%(codename)s%(suffix)s_%(arch)s.deb'
            ),
        ))
コード例 #2
0
 def testDeferredDefault(self):
     default = DeferredRenderable()
     value = Property("no-such-property", default)
     d = self.build.render(value)
     d.addCallback(self.failUnlessEqual, "default-value")
     default.callback("default-value")
     return d
コード例 #3
0
ファイル: steps.py プロジェクト: rvanlaar/dockerized-bb
def Strip(command, **kwargs):
    return ShellCommand(name="strip",
                        description="stripping",
                        descriptionDone="strip",
                        command=command,
                        doStepIf=Property("package", default=False),
                        **kwargs)
コード例 #4
0
ファイル: trigger.py プロジェクト: thuanbk2010/katana
 def __init__(self, schedulerNames=[], sourceStamp = None, sourceStamps = None,
              updateSourceStamp=None, alwaysUseLatest=False,
              waitForFinish=False, set_properties={},  copy_properties=[], **kwargs):
     if not schedulerNames:
         config.error(
             "You must specify a scheduler to trigger")
     if (sourceStamp or sourceStamps) and (updateSourceStamp is not None):
         config.error(
             "You can't specify both sourceStamps and updateSourceStamp")
     if (sourceStamp or sourceStamps) and alwaysUseLatest:
         config.error(
             "You can't specify both sourceStamps and alwaysUseLatest")
     if alwaysUseLatest and (updateSourceStamp is not None):
         config.error(
             "You can't specify both alwaysUseLatest and updateSourceStamp"
         )
     self.schedulerNames = schedulerNames
     self.sourceStamps = sourceStamps or []
     if sourceStamp:
         self.sourceStamps.append(sourceStamp)
     if updateSourceStamp is not None:
         self.updateSourceStamp = updateSourceStamp
     else:
         self.updateSourceStamp = not (alwaysUseLatest or self.sourceStamps)
     self.alwaysUseLatest = alwaysUseLatest
     self.waitForFinish = waitForFinish
     properties = {}
     properties.update(set_properties)
     for i in copy_properties:
         properties[i] = Property(i)
     self.set_properties = properties
     self.running = False
     self.ended = False
     ResumeBuild.__init__(self, **kwargs)
コード例 #5
0
    def testDefaultValueNested(self):
        self.props.setProperty("xxx", 'yyy', "scheduler")
        value = Property("do-tests", default=WithProperties("a-%(xxx)s-b"))

        d = self.build.render(value)
        d.addCallback(self.failUnlessEqual, "a-yyy-b")
        return d
コード例 #6
0
    def testDefaultValue(self):
        value = Property("do-tests", default="Hello!")

        d = self.build.render(value)
        d.addCallback(self.failUnlessEqual,
                "Hello!")
        return d
コード例 #7
0
ファイル: test_cmake.py プロジェクト: pmisik/buildbot
    def test_generator_interpolation(self):
        value = 'Our_GENERATOR'

        self.setup_step(CMake(generator=Property('GENERATOR')))
        self.properties.setProperty('GENERATOR', value, source='test')

        self.expect_and_run_command('-G', value)
コード例 #8
0
 def test_start_instance_noimage_renderabledockerfile(self):
     bs = self.setupWorker(
         'bot', 'pass', 'tcp://1234:2375', 'customworker',
         dockerfile=Interpolate('FROM debian:%(kw:distro)s',
                                distro=Property('distro')))
     id, name = self.successResultOf(bs.start_instance(self.build))
     self.assertEqual(name, 'customworker')
コード例 #9
0
    def test_run_jobsProperties(self):
        """
        C{jobs} should accept Properties
        """
        self.setupStep(
            python_twisted.Trial(workdir='build',
                                 tests='testname',
                                 jobs=Property('jobs_count'),
                                 testpath=None))
        self.properties.setProperty('jobs_count', '2', 'Test')

        self.expectCommands(
            ExpectShell(
                workdir='build',
                command=[
                    'trial', '--reporter=bwverbose', '--jobs=2', 'testname'
                ],
                usePTY="slave-config",
                logfiles={
                    'test.0.log': '_trial_temp/0/test.log',
                    'err.0.log': '_trial_temp/0/err.log',
                    'out.0.log': '_trial_temp/0/out.log',
                    'test.1.log': '_trial_temp/1/test.log',
                    'err.1.log': '_trial_temp/1/err.log',
                    'out.1.log': '_trial_temp/1/out.log',
                }) + ExpectShell.log('stdio', stdout="Ran 1 tests\n") + 0)
        self.expectOutcome(result=SUCCESS, state_string='1 test passed')
        return self.runStep()
コード例 #10
0
 def test_volume_bad_format_renderable(self):
     bs = self.setupWorker(
         'bot', 'pass', 'http://localhost:2375', image="worker",
         volumes=[Interpolate('/data==/worker/%(kw:builder)s/build',
                              builder=Property('builder'))])
     f = self.failureResultOf(bs.start_instance(self.build))
     f.check(config.ConfigErrors)
コード例 #11
0
ファイル: test_cmake.py プロジェクト: pmisik/buildbot
    def test_options_interpolation(self):
        prop = 'option'
        value = 'value'

        self.setup_step(CMake(options=(Property(prop), )))
        self.properties.setProperty(prop, value, source='test')
        self.expect_and_run_command(value)
コード例 #12
0
ファイル: test_cmake.py プロジェクト: pmisik/buildbot
    def test_path_interpolation(self):
        prop = 'path'
        value = 'some/path'

        self.setup_step(CMake(path=Property(prop)))
        self.properties.setProperty(prop, value, source='test')
        self.expect_and_run_command(value)
コード例 #13
0
 def test_renderable(self):
     self.props.setProperty("buildername", "blue fish", "test")
     command = Interpolate("echo '%s'", Property("buildername"))
     d = self.build.render(command)
     d.addCallback(self.failUnlessEqual,
                         "echo 'blue fish'")
     return d
コード例 #14
0
    def testIgnoreDefaultValue(self):
        self.props.setProperty("do-tests", "string", "scheduler")
        value = Property("do-tests", default="Hello!")

        d = self.build.render(value)
        d.addCallback(self.failUnlessEqual, "string")
        return d
コード例 #15
0
    def testMissingProperty(self):
        value = Property("do-tests")

        d = self.build.render(value)
        d.addCallback(self.failUnlessEqual,
                None)
        return d
コード例 #16
0
ファイル: master.cfg.py プロジェクト: JohnBuckleyGitHub/schat
def MakeMacBuilder():
    f = BuildFactory()
    f.addSteps(svn_co)
    f.addStep(
        ShellCommand(
            name='revision',
            command=['bash', 'revision.sh'],
            workdir='build/os/macosx',
            haltOnFailure=True,
            env={'SCHAT_REVISION': Property('got_revision')},
        ))
    f.addStep(
        ShellCommand(
            name='dmg',
            command=['bash', 'deploy.sh'],
            workdir='build/os/macosx',
            haltOnFailure=True,
        ))
    f.addStep(
        FileUpload(
            mode=0644,
            slavesrc=WithProperties(
                'os/macosx/dmg/SimpleChat2-%(version)s.dmg'),
            masterdest=UploadFileName('SimpleChat2-%(version)s%(suffix)s.dmg'),
            url=WithProperties(
                'https://download.schat.me/schat2/snapshots/%(version)s/r%(got_revision)s/SimpleChat2-%(version)s%(suffix)s.dmg'
            ),
        ))
コード例 #17
0
    def testStringProperty(self):
        self.props.setProperty("do-tests", "string", "scheduler")
        value = Property("do-tests")

        d = self.build.render(value)
        d.addCallback(self.failUnlessEqual, "string")
        return d
コード例 #18
0
ファイル: test_steps_cmake.py プロジェクト: zahedbri/buildbot
    def test_definitions_renderable(self):
        b_value = 'real_b'

        definitions = Property('b')
        self.setupStep(CMake(definitions=definitions))
        self.properties.setProperty('b', {'a': b_value}, source='test')
        self.expect_and_run_command('-D%s=%s' % ('a', b_value))
コード例 #19
0
    def testIgnoreFalseValue(self):
        self.props.setProperty("do-tests-string", "", "scheduler")
        self.props.setProperty("do-tests-int", 0, "scheduler")
        self.props.setProperty("do-tests-list", [], "scheduler")
        self.props.setProperty("do-tests-None", None, "scheduler")

        value = [
            Property("do-tests-string", default="Hello!"),
            Property("do-tests-int", default="Hello!"),
            Property("do-tests-list", default="Hello!"),
            Property("do-tests-None", default="Hello!")
        ]

        d = self.build.render(value)
        d.addCallback(self.failUnlessEqual, ["Hello!"] * 4)
        return d
コード例 #20
0
    def __init__(self,
                 schedulerNames=None,
                 sourceStamp=None,
                 sourceStamps=None,
                 updateSourceStamp=None,
                 alwaysUseLatest=False,
                 waitForFinish=False,
                 set_properties=None,
                 copy_properties=None,
                 parent_relationship="Triggered from",
                 unimportantSchedulerNames=None,
                 **kwargs):
        if schedulerNames is None:
            schedulerNames = []
        if unimportantSchedulerNames is None:
            unimportantSchedulerNames = []
        if not schedulerNames:
            config.error("You must specify a scheduler to trigger")
        if (sourceStamp or sourceStamps) and (updateSourceStamp is not None):
            config.error(
                "You can't specify both sourceStamps and updateSourceStamp")
        if (sourceStamp or sourceStamps) and alwaysUseLatest:
            config.error(
                "You can't specify both sourceStamps and alwaysUseLatest")
        if alwaysUseLatest and (updateSourceStamp is not None):
            config.error(
                "You can't specify both alwaysUseLatest and updateSourceStamp")
        if not set(schedulerNames).issuperset(set(unimportantSchedulerNames)):
            config.error(
                "unimportantSchedulerNames must be a subset of schedulerNames")

        self.schedulerNames = schedulerNames
        self.unimportantSchedulerNames = unimportantSchedulerNames
        self.sourceStamps = sourceStamps or []
        if sourceStamp:
            self.sourceStamps.append(sourceStamp)
        if updateSourceStamp is not None:
            self.updateSourceStamp = updateSourceStamp
        else:
            self.updateSourceStamp = not (alwaysUseLatest or self.sourceStamps)
        self.alwaysUseLatest = alwaysUseLatest
        self.waitForFinish = waitForFinish

        if set_properties is None:
            set_properties = {}
        if copy_properties is None:
            copy_properties = []

        properties = {}
        properties.update(set_properties)
        for i in copy_properties:
            properties[i] = Property(i)
        self.set_properties = properties
        self.parent_relationship = parent_relationship
        self.running = False
        self.ended = False
        self.brids = []
        self.triggeredNames = None
        self.waitForFinishDeferred = None
        BuildStep.__init__(self, **kwargs)
コード例 #21
0
ファイル: master.cfg.py プロジェクト: JohnBuckleyGitHub/schat
def MakeWinLegacyBuilder():
    f = BuildFactory()
    f.addSteps(svn_co_legacy)
    f.addStep(
        ShellCommand(
            name='revision',
            command=['cmd', '/c', 'revision.cmd'],
            workdir='build/os/win32',
            env={
                'SCHAT_VERSION': SCHAT_VERSION_LEGACY,
                'SCHAT_REVISION': Property('got_revision')
            },
            haltOnFailure=True,
        ))
    f.addStep(
        ShellCommand(
            name='qmake',
            command=['qmake', '-r'],
            haltOnFailure=True,
        ))
    f.addStep(Compile(
        command=['jom', '-j3', '/NOLOGO'],
        haltOnFailure=True,
    ))
    f.addStep(
        ShellCommand(
            name='nsis',
            command=['cmd', '/c', 'nsis.cmd'],
            workdir='build/os/win32',
            env={
                'SCHAT_SIGN_FILE': schat_passwords.SIGN_FILE,
                'SCHAT_SIGN_PASSWORD': schat_passwords.SIGN_PASSWORD,
                'SCHAT_VERSION': SCHAT_VERSION_LEGACY,
                'SCHAT_REVISION': Property('got_revision')
            },
            haltOnFailure=True,
            logEnviron=False,
        ))
    f.addStep(
        FileUpload(
            mode=0644,
            slavesrc=WithProperties(
                'os/win32/out/schat-%(version_legacy)s.%(got_revision)s.exe'),
            masterdest=UploadFileNameLegacy(
                'schat-%(version_legacy)s.%(got_revision)s.exe'),
        ))
コード例 #22
0
ファイル: master.cfg.py プロジェクト: JohnBuckleyGitHub/schat
def MakeBetaBuilder():
    f = BuildFactory()
    f.addStep(
        MasterShellCommand(name='Create Update Channel',
                           command=[
                               'php',
                               'update.php',
                               '--channel',
                               Property('channel', default='beta'),
                               '--version',
                               SCHAT_VERSION,
                               '--revision',
                               Property('revision'),
                               '--os',
                               Property('os', default='win32'),
                           ]))
    return f
コード例 #23
0
    def test_definitions_interpolation(self):
        b_value = 'real_b'

        definitions = {'a': Property('b')}

        self.setupStep(CMake(definitions=definitions))
        self.properties.setProperty('b', b_value, source='test')
        self.expect_and_run_command('-D%s=%s' % ('a', b_value))
コード例 #24
0
    def testDefaultWhenFalse(self):
        self.props.setProperty("do-tests-string", "", "scheduler")
        self.props.setProperty("do-tests-int", 0, "scheduler")
        self.props.setProperty("do-tests-list", [], "scheduler")
        self.props.setProperty("do-tests-None", None, "scheduler")

        value = [
            Property("do-tests-string",
                     default="Hello!",
                     defaultWhenFalse=False),
            Property("do-tests-int", default="Hello!", defaultWhenFalse=False),
            Property("do-tests-list", default="Hello!",
                     defaultWhenFalse=False),
            Property("do-tests-None", default="Hello!", defaultWhenFalse=False)
        ]

        self.failUnlessEqual(self.build.render(value), ["", 0, [], None])
コード例 #25
0
    def test_rendering(self):
        self.setupStep(
            VCx(projectfile=Property('a'),
                config=Property('b'),
                project=Property('c')))
        self.properties.setProperty('a', 'aa', 'Test')
        self.properties.setProperty('b', 'bb', 'Test')
        self.properties.setProperty('c', 'cc', 'Test')
        self.expectCommands(
            ExpectShell(workdir='wkdir', command=['command', 'here']) + 0)
        self.expectOutcome(result=SUCCESS,
                           state_string="compile 0 projects 0 files")
        yield self.runStep()

        self.assertEqual(
            [self.step.projectfile, self.step.config, self.step.project],
            ['aa', 'bb', 'cc'])
コード例 #26
0
    def steps_unibootstrap(self,
                           buildout_slave_path,
                           options,
                           eggs_cache,
                           dump_options_to=None,
                           **step_kw):
        """return a list of steps for buildout bootstrap, using uniform script.

        The uniform script is ``unibootstrap.py``. For now it ships with
        build_utils and is downloaded from the buildmaster.

        options prefixed with 'bootstrap-' are applied

        :param dump_options_to: kept for backwards compatibility,
                                (unibootstrap will dump them in all cases).
        :param step_kw: will be passed to the step constructor. Known use-case:
                        change workdir in packaging step.
        """
        boot_opts = {}
        if options.get('virtualenv', 'true').strip().lower() == 'true':
            boot_opts['--python'] = Interpolate(
                '%(prop:cap_python_venv:-~/openerp-env)s'
                '/bin/python')

        bv = options.get('bootstrap-version')
        if bv is not None:
            boot_opts['--buildout-version'] = bv.strip()

        command = [
            Property('cap_python_bin',
                     default='python'), 'unibootstrap.py', '--dists-directory',
            WithProperties(eggs_cache), '--buildout-config',
            buildout_slave_path
        ]
        if dump_options_to is None:
            command.append('--no-output-bootstrap-config')
        else:
            boot_opts['--output-bootstrap-config'] = dump_options_to

        for o, v in boot_opts.items():
            command.extend((o, v))
        command.append('.')

        return [
            FileDownload(mastersrc=os.path.join(BUILD_UTILS_PATH,
                                                'unibootstrap.py'),
                         slavedest='unibootstrap.py',
                         name="download",
                         description=['download', 'unibootstrap'],
                         **step_kw),
            ShellCommand(command=command,
                         name='bootstrap',
                         description="bootstrapping",
                         descriptionDone="bootstrapped",
                         locks=[buildout_caches_lock.access('exclusive')],
                         haltOnFailure=True,
                         **step_kw)
        ]
コード例 #27
0
ファイル: test_reporters.py プロジェクト: kou/ursabot
    async def test_topic_is_renderable(self):
        @renderer
        def branch(props):
            return props.getProperty('branch')

        await self.setupReporter(name='a', topic='test')
        await self.setupReporter(name='d', topic=branch)
        await self.setupReporter(name='b', topic=Property('branch'))
        await self.setupReporter(name='c', topic=Interpolate('%(prop:event)s'))
コード例 #28
0
def get_pdb_filename(abi=None):
    "Determines the name of an -pdb.zip file for uploading."

    suffix = ""
    if abi and not abi.startswith('cp27-'):
        suffix = "-py%s.%s" % (abi[2], abi[3])

    return Interpolate("Panda3D-%s%s%s-pdb.zip", Property("version"), suffix,
                       arch_suffix)
コード例 #29
0
def test_nonrecursive_rendering():
    # recursiverender(<object>, <callback>)
    obj = Property('foo')

    @defer.inlineCallbacks
    def callback(irenderable):
        return (yield irenderable)

    assert (yield recursiverender(obj, callback)) is obj
コード例 #30
0
ファイル: master.cfg.py プロジェクト: JohnBuckleyGitHub/schat
def MakeWinBuilder():
    f = BuildFactory()
    f.addSteps(svn_co)
    f.addStep(
        ShellCommand(
            name='revision',
            command=['cmd', '/c', 'revision.cmd'],
            workdir='build/os/win32',
            env={'SCHAT_REVISION': Property('got_revision')},
            haltOnFailure=True,
        ))
    f.addStep(
        ShellCommand(
            name='qmake',
            command=['qmake', '-r'],
            haltOnFailure=True,
        ))
    f.addStep(Compile(
        command=['jom', '-j3', '/NOLOGO'],
        haltOnFailure=True,
    ))
    f.addStep(
        ShellCommand(
            name='nsis',
            command=['cmd', '/c', 'nsis.cmd'],
            workdir='build/os/win32',
            env={
                'SCHAT_SIGN_FILE': schat_passwords.SIGN_FILE,
                'SCHAT_SIGN_PASSWORD': schat_passwords.SIGN_PASSWORD,
                'SCHAT_VERSION': SCHAT_VERSION,
                'SCHAT_REVISION': Property('got_revision')
            },
            haltOnFailure=True,
            logEnviron=False,
        ))
    f.addStep(
        FileUpload(
            mode=0644,
            slavesrc=WithProperties('os/win32/out/schat2-%(version)s.exe'),
            masterdest=UploadFileName('schat2-%(version)s%(suffix)s.exe'),
            url=WithProperties(
                'https://download.schat.me/schat2/snapshots/%(version)s/r%(got_revision)s/schat2-%(version)s%(suffix)s.exe'
            ),
        ))