def packaging(configurator, options,
              buildout_slave_path, environ=()):
    """Final steps for upload after testing of tarball.

    See :func:`postdownload.packaging` for explanation of options.
    """

    archive_name_interp = options['packaging.prefix'] + '-%(buildout-tag)s'
    upload_dir = options['packaging.upload-dir']
    master_dir = os.path.join('/var/www/livraison', upload_dir)
    master_path = os.path.join(master_dir, archive_name_interp + '.tar.bz2')
    base_url = options['packaging.base-url']
    return [
        FileUpload(
            slavesrc=WithProperties(
                '../dist/' + archive_name_interp + '.tar.bz2'),
            masterdest=WithProperties(master_path),
            url='/'.join((base_url, upload_dir)),
            mode=0644,
        ),
        FileUpload(
            slavesrc=WithProperties(
                '../dist/' + archive_name_interp + '.tar.bz2.md5'),
            masterdest=WithProperties(master_path + '.md5'),
            url='/'.join((base_url, upload_dir)),
            mode=0644,
        ),
    ]
def add_package_build(type, factory, compile_command):
    build = '%(slavename)s'

    # Build
    cmd = compile_command + [type]
    factory.addStep(Compile(description = [type], descriptionDone = [type],
                            command = cmd, warningPattern = warnPat))

    # Get file name
    factory.addStep(FileUpload(slavesrc = type + '.txt',
                               property = 'package_name'))

    # Get file
    src = '%(package_name)s'
    file = '/tmp/%(slavename)s/' + src
    step = FileUpload(slavesrc = WithProperties(src),
                      masterdest = WithProperties(file))
    step.haltOnFailure = True
    step.flunkOnFailure = True
    factory.addStep(step)

    # Publish
    cmd = WithProperties('/host/bin/publish build ' + file + \
                             ' %(slavename)s %(got_revision)s %(buildnumber)s')
    MasterShellCommand.haltOnFailure = True
    MasterShellCommand.flunkOnFailure = True
    step = MasterShellCommand(command = cmd, property = 'publish_path',
                              url = (src, c['distURL'] + '%(publish_path)s'),
                              name = 'publish ' + type)
    factory.addStep(step)
Beispiel #3
0
 def __init__(self, yaml, **kwargs):
     self.yaml = yaml
     self.masterdest = mktemp()
     FileUpload.__init__(self,
                         workersrc=self.yaml,
                         masterdest=self.masterdest,
                         haltOnFailure=True,
                         hideStepIf=util.hideStepIfSuccess,
                         **kwargs)
Beispiel #4
0
    def start(self):
        props = self.build.getProperties()
        upload_path = props.getProperty("upload_path")

        if not upload_path:
            upload_path = self.default_upload_path

        self.masterdest = upload_path + "/" + self.dest_filename

        FileUpload.start(self)
Beispiel #5
0
    def start(self):
        if self.getProperty('release'):
            self.masterdest = '/var/www/TaskCoach-packages/release/%s' % self.getProperty('basefilename')

        FileUpload.start(self)

        if not self.getProperty('release'):
            url = 'http://www.fraca7.net/TaskCoach-packages/%s/%s' % (self.getProperty('branch') or '',
                                                                      self.getProperty('basefilename'))

            self.addURL('Download', url)
Beispiel #6
0
    def testTimestamp(self):
        s = FileUpload(slavesrc=__file__,
                       masterdest=self.destfile,
                       keepstamp=True)
        s.build = Mock()
        s.build.getProperties.return_value = Properties()
        s.build.getSlaveCommandVersion.return_value = "2.13"

        s.step_status = Mock()
        s.buildslave = Mock()
        s.remote = Mock()
        s.start()
        timestamp = (os.path.getatime(__file__), os.path.getmtime(__file__))

        for c in s.remote.method_calls:
            name, command, args = c
            commandName = command[3]
            kwargs = command[-1]
            if commandName == 'uploadFile':
                self.assertEquals(kwargs['slavesrc'], __file__)
                writer = kwargs['writer']
                writer.remote_write(open(__file__, "rb").read())
                self.assert_(not os.path.exists(self.destfile))
                writer.remote_close()
                writer.remote_utime(timestamp)
                break
        else:
            self.assert_(False, "No uploadFile command found")

        desttimestamp = (os.path.getatime(self.destfile),
                         os.path.getmtime(self.destfile))
        self.assertAlmostEquals(timestamp[0], desttimestamp[0], places=5)
        self.assertAlmostEquals(timestamp[1], desttimestamp[1], places=5)
Beispiel #7
0
    def testURL(self):
        s = FileUpload(slavesrc=__file__,
                       masterdest=self.destfile,
                       url="http://server/file")
        s.build = Mock()
        s.build.getProperties.return_value = Properties()
        s.build.getSlaveCommandVersion.return_value = "2.13"

        s.step_status = Mock()
        s.step_status.addURL = Mock()
        s.buildslave = Mock()
        s.remote = Mock()
        s.start()

        for c in s.remote.method_calls:
            name, command, args = c
            commandName = command[3]
            kwargs = command[-1]
            if commandName == 'uploadFile':
                self.assertEquals(kwargs['slavesrc'], __file__)
                writer = kwargs['writer']
                writer.remote_write(open(__file__, "rb").read())
                self.assert_(not os.path.exists(self.destfile))
                writer.remote_close()
                break
        else:
            self.assert_(False, "No uploadFile command found")

        s.step_status.addURL.assert_called_once_with(
            os.path.basename(self.destfile), "http://server/file")
    def testBasic(self):
        s = FileUpload(slavesrc=__file__, masterdest=self.destfile)
        s.build = Mock()
        s.build.getProperties.return_value = Properties()
        s.build.getSlaveCommandVersion.return_value = 1

        s.step_status = Mock()
        s.buildslave = Mock()
        s.remote = Mock()

        s.start()

        for c in s.remote.method_calls:
            name, command, args = c
            commandName = command[3]
            kwargs = command[-1]
            if commandName == 'uploadFile':
                self.assertEquals(kwargs['slavesrc'], __file__)
                writer = kwargs['writer']
                writer.remote_write(open(__file__, "rb").read())
                self.assert_(not os.path.exists(self.destfile))
                writer.remote_close()
                break
        else:
            self.assert_(False, "No uploadFile command found")

        self.assertEquals(
            open(self.destfile, "rb").read(),
            open(__file__, "rb").read())
Beispiel #9
0
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'
            ),
        ))
Beispiel #10
0
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'
            ),
        ))
Beispiel #11
0
	def initFactory(self,arch):
		f = GNUAutoconf(SVN("http://svn.cri.ensmp.fr/svn/linear/trunk"),
			test=None,
			configureFlags=self.configure_flags)
		if arch == "linux-64":
			f.addStep(FileUpload(slavesrc=os.path.join("BUILD",self.targz),
						masterdest=self.www+self.targz, mode=0644))
		return f
Beispiel #12
0
    def testBasic(self):
        s = FileUpload(slavesrc=__file__, masterdest=self.destfile)
        s.build = Mock()
        s.build.getProperties.return_value = Properties()
        s.build.getSlaveCommandVersion.return_value = 1

        s.step_status = Mock()
        s.buildslave = Mock()
        s.remote = Mock()

        s.start()

        for c in s.remote.method_calls:
            name, command, args = c
            commandName = command[3]
            kwargs = command[-1]
            if commandName == 'uploadFile':
                self.assertEquals(kwargs['slavesrc'], __file__)
                writer = kwargs['writer']
                writer.remote_write(open(__file__, "rb").read())
                self.assert_(not os.path.exists(self.destfile))
                writer.remote_close()
                break
        else:
            self.assert_(False, "No uploadFile command found")

        self.assertEquals(open(self.destfile, "rb").read(),
                open(__file__, "rb").read())
Beispiel #13
0
    def testURL(self):
        s = FileUpload(slavesrc=__file__, masterdest=self.destfile, url="http://server/file")
        s.build = Mock()
        s.build.getProperties.return_value = Properties()
        s.build.getSlaveCommandVersion.return_value = "2.13"

        s.step_status = Mock()
        s.step_status.addURL = Mock()
        s.buildslave = Mock()
        s.remote = Mock()
        s.start()

        for c in s.remote.method_calls:
            name, command, args = c
            commandName = command[3]
            kwargs = command[-1]
            if commandName == 'uploadFile':
                self.assertEquals(kwargs['slavesrc'], __file__)
                writer = kwargs['writer']
                writer.remote_write(open(__file__, "rb").read())
                self.assert_(not os.path.exists(self.destfile))
                writer.remote_close()
                break
        else:
            self.assert_(False, "No uploadFile command found")

        s.step_status.addURL.assert_called_once_with(
            os.path.basename(self.destfile), "http://server/file")
Beispiel #14
0
    def testTimestamp(self):
        s = FileUpload(slavesrc=__file__, masterdest=self.destfile, keepstamp=True)
        s.build = Mock()
        s.build.getProperties.return_value = Properties()
        s.build.getSlaveCommandVersion.return_value = "2.13"

        s.step_status = Mock()
        s.buildslave = Mock()
        s.remote = Mock()
        s.start()
        timestamp = ( os.path.getatime(__file__),
                      os.path.getmtime(__file__) )

        for c in s.remote.method_calls:
            name, command, args = c
            commandName = command[3]
            kwargs = command[-1]
            if commandName == 'uploadFile':
                self.assertEquals(kwargs['slavesrc'], __file__)
                writer = kwargs['writer']
                writer.remote_write(open(__file__, "rb").read())
                self.assert_(not os.path.exists(self.destfile))
                writer.remote_close()
                writer.remote_utime(timestamp)
                break
        else:
            self.assert_(False, "No uploadFile command found")

        desttimestamp = ( os.path.getatime(self.destfile),
                          os.path.getmtime(self.destfile) )
        self.assertAlmostEquals(timestamp[0],desttimestamp[0],places=5)
        self.assertAlmostEquals(timestamp[1],desttimestamp[1],places=5)
Beispiel #15
0
def get_upload_step(abi, arch, file):
    do_step = True
    if abi in ('cp27-cp27m', 'cp34-cp34m', 'cp35-cp35m'):
        do_step = is_branch('release/1.10.x')

    return FileUpload(
        name="upload " + arch + " " + abi, workersrc=file,
        masterdest=Interpolate("%s/%s", common.upload_dir, file),
        mode=0o664, haltOnFailure=True, doStepIf=do_step)
Beispiel #16
0
	def initFactory(self,arch):
		self.make = "gmake" if arch == "bsd-64" else "make"
		f = GNUAutoconf( SVN("http://svn.cri.ensmp.fr/svn/pips/trunk"),
			configureFlags=self.configure_flags,
			compile=[self.make, "all"],
			test=None,
			install=[self.make, "install"],
			distcheck=None #[self.make, "distcheck"]
			)
		if arch == "linux-64":
			f.addStep(FileUpload(slavesrc=os.path.join("BUILD",self.targz),
						masterdest=self.www+self.targz, mode=0644))
		return f
  def AddUploadPerfExpectations(self, factory_properties=None):
    """Adds a step to the factory to upload perf_expectations.json to the
    master.
    """
    perf_id = factory_properties.get('perf_id')
    if not perf_id:
      logging.error('Error: cannot upload perf expectations: perf_id is unset')
      return
    slavesrc = 'src/tools/perf_expectations/perf_expectations.json'
    masterdest = ('../../scripts/master/log_parser/perf_expectations/%s.json' %
                  perf_id)

    self._factory.addStep(FileUpload(slavesrc=slavesrc,
                                     masterdest=masterdest))
Beispiel #18
0
 def finished(self, result):
     if self._descDone is None:
         self.descriptionDone = [
             '<a href="builders/%s/builds/%s/output">output</a>' %
             (urllib.quote(self.getProperty('buildername'),
                           safe=''), self.getProperty('buildnumber'))
         ]
     self.step_status.setText(self.descriptionDone)
     if not self.cmd.rc:
         self.step_status.addURL(
             self._dest, 'builders/%s/builds/%s/output/%s' %
             (urllib.quote(self.getProperty('buildername'), safe=''),
              self.getProperty('buildnumber'), self._dest))
     return FileUpload.finished(self, result)
Beispiel #19
0
def run_testament(platform):
    test_url = "test-data/{buildername[0]}/{got_revision[0][nim]}/"
    test_directory = 'public_html/' + test_url

    html_test_results = 'testresults.html'
    html_test_results_dest = gen_dest_filename(html_test_results)
    db_test_results = 'testament.db'
    db_test_results_dest = gen_dest_filename(db_test_results)

    return [
        ShellCommand(command=['koch', 'test'],
                     workdir=str(platform.nim_dir),
                     env=platform.base_env,
                     haltOnFailure=True,
                     timeout=None,
                     **gen_description('Run', 'Running', 'Run', 'Testament')),
        MasterShellCommand(
            command=['mkdir', '-p',
                     FormatInterpolate(test_directory)],
            path="public_html",
            hideStepIf=True),
        FileUpload(
            slavesrc=html_test_results,
            workdir=str(platform.nim_dir),
            url=FormatInterpolate(test_url + html_test_results_dest),
            masterdest=FormatInterpolate(test_directory +
                                         html_test_results_dest),
        ),
        FileUpload(
            slavesrc=db_test_results,
            workdir=str(platform.nim_dir),
            url=FormatInterpolate(test_url + db_test_results_dest),
            masterdest=FormatInterpolate(test_directory +
                                         db_test_results_dest),
        )
    ]
Beispiel #20
0
    def finished(self, result):
        if result == SUCCESS:
            mdest = self.masterdest
            ext = mdest[-3:]
            bname = mdest.split("/")[-1]

            if mdest.startswith(PUB_PREFIX):
                reldest = mdest[len(PUB_PREFIX):]
                if ext in IMAGE_FORMATS:
                    l = ['<a href="/%s"><img src="/%s"></a>' % (reldest, reldest)]
                else:
                    l = []
                    self.addURL(bname, "/" + reldest)
            else:
                l = [bname]
            self.step_status.setText(['Uploaded'] + l)
        return FileUpload.finished(self, result)
Beispiel #21
0
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'),
        ))
Beispiel #22
0
def MakeMacLegacyBuilder():
    f = BuildFactory()
    f.addSteps(svn_co_legacy)
    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/SimpleChat-%(version_legacy)s.dmg'),
            masterdest=UploadFileNameLegacy(
                'SimpleChat-%(version_legacy)s.dmg'),
        ))
Beispiel #23
0
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'
            ),
        ))
Beispiel #24
0
def gen_x64_full_factory (svnURL):
	x64_full_factory = factory.BuildFactory()
	x64_full_factory.addStep(SVN, workdir=r'build',svnurl=svnURL,username='******',password="******")
	x64_full_factory.addStep(Compile, workdir=r'build\\VS2005',
			   description=['64-bit compile'],
			   descriptionDone=['64-bit compile'],
			   command=['build_x64.bat'])
	x64_full_factory.addStep(ShellCommand,
			   workdir=r'build\\VS2005',
			   name='installer',
			   haltOnFailure=True,
			   description=['building installer'],
			   descriptionDone=['installer'],
			   command=['iscc.exe', '/Fgridlabd_x64-release', 'gridlabd-64.iss'])
	x64_full_factory.addStep(FileUpload(
			   workdir=r'build\\VS2005\\x64\\Release',
			   slavesrc='gridlabd_x64-release.exe',
			   masterdest='gridlabd_x64-release.exe'))
	return x64_full_factory
Beispiel #25
0
def gen_win32_full_factory (svnURL):
	win32_full2_factory = factory.BuildFactory()
	win32_full2_factory.addStep(SVN, workdir=r'build',svnurl=svnURL,username='******',password="******")
	win32_full2_factory.addStep(Compile, workdir=r'build\\VS2005',
			   description=['32-bit compile'],
			   descriptionDone=['32-bit compile'],
			   command=['MSBuild', 'gridlabd.sln', '/t:Rebuild',
						'/p:Platform=Win32;Configuration=Release', '/nologo'])
	win32_full2_factory.addStep(ShellCommand,
			   workdir=r'build\\VS2005',
			   name='installer',
			   haltOnFailure=True,
			   description=['building installer'],
			   descriptionDone=['installer'],
			   command=['iscc.exe', '/Fgridlabd-release', 'gridlabd.iss'])
	win32_full2_factory.addStep(FileUpload(
			   workdir=r'build\\VS2005\\Win32\\Release',
			   slavesrc='gridlabd-release.exe',
			   masterdest='gridlabd-release.exe'))
	return win32_full2_factory
Beispiel #26
0
def upload_release(platform):
    upload_url = "test-data/{buildername[0]}/{got_revision[0][nim]}/"
    test_directory = 'public_html/' + upload_url

    nim_exe_source = str(platform.nim_dir / "bin" / platform.nim_exe)
    nim_exe_dest = gen_dest_filename(platform.nim_exe)

    return [
        MasterShellCommand(
            command=['mkdir', '-p',
                     FormatInterpolate(test_directory)],
            path="public_html",
            hideStepIf=True),
        FileUpload(
            slavesrc=nim_exe_source,
            workdir=str(platform.nim_dir),
            url=FormatInterpolate(upload_url + nim_exe_dest),
            masterdest=FormatInterpolate(test_directory + nim_exe_dest),
        ),
    ]
Beispiel #27
0
def add_broot_steps(factory, arch, branch, env={}):
    factory.addStep(
        ShellCommand(command=["./osbuild", "broot", "clean"],
                     description="cleaning",
                     descriptionDone="clean",
                     haltOnFailure=True,
                     env=env))

    command = ["./osbuild", "broot", "create", "--arch=%s" % arch]
    factory.addStep(
        ShellCommand(command=command,
                     description="creating",
                     descriptionDone="create",
                     haltOnFailure=True,
                     env=env))

    factory.addStep(
        ShellCommand(command=["./osbuild", "broot", "distribute"],
                     description="distributing",
                     descriptionDone="distribute",
                     haltOnFailure=True,
                     env=env))

    broot_dir = "~/public_html/broot/"
    broot_filename = "%(prop:buildername)s-%(prop:buildnumber)s.tar.xz"

    masterdest = Interpolate(os.path.join(broot_dir, broot_filename))
    factory.addStep(
        FileUpload(slavesrc="build/sugar-build-broot.tar.xz",
                   masterdest=masterdest))

    command = Interpolate("%s %s %s %s %s" %
                          (get_command_path("release-broot"), broot_dir,
                           broot_filename, arch, branch))

    factory.addStep(
        MasterShellCommand(command=command,
                           description="releasing",
                           descriptionDone="release"))
Beispiel #28
0
def MakeSrcBuilder():
    f = BuildFactory()
    f.addSteps(svn_co)
    f.addStep(
        ShellCommand(
            name='tarball',
            command=['bash', 'os/source/tarball.sh'],
            env={
                'SCHAT_SOURCE':
                WithProperties('schat2-src-%(version)s%(suffix)s')
            },
            haltOnFailure=True,
        ))
    f.addStep(
        FileUpload(
            mode=0644,
            slavesrc=WithProperties(
                'schat2-src-%(version)s%(suffix)s.tar.bz2'),
            masterdest=UploadFileName(
                'schat2-src-%(version)s%(suffix)s.tar.bz2'),
            url=WithProperties(
                'https://download.schat.me/schat2/snapshots/%(version)s/r%(got_revision)s/schat2-src-%(version)s%(suffix)s.tar.bz2'
            ),
        ))
def launchpad_debbuild(c, package, version, binaries, url, distro, arch, machines, othermirror, keys, trigger_names = None):
    f = BuildFactory()
    # Grab the source package
    f.addStep(
        ShellCommand(
            haltOnFailure = True,
            name = package+'-getsourcedeb',
            command = ['dget', '--allow-unauthenticated', url]
        )
    )
    # download hooks
    f.addStep(
        FileDownload(
            name = package+'-grab-hooks',
            mastersrc = 'hooks/D05deps',
            slavedest = Interpolate('%(prop:workdir)s/hooks/D05deps'),
            hideStepIf = success,
            mode = 0777 # make this executable for the cowbuilder
        )
    )
    # Update the cowbuilder
    f.addStep(
        ShellCommand(
            command = ['cowbuilder-update.py', distro, arch] + keys,
            hideStepIf = success
        )
    )
    # Build it
    f.addStep(
        ShellCommand(
            haltOnFailure = True,
            name = package+'-build',
            command = ['cowbuilder',
                       '--build', package+'_'+version+'.dsc',
                       '--distribution', distro, '--architecture', arch,
                       '--basepath', '/var/cache/pbuilder/base-'+distro+'-'+arch+'.cow',
                       '--buildresult', Interpolate('%(prop:workdir)s'),
                       '--hookdir', Interpolate('%(prop:workdir)s/hooks'),
                       '--othermirror', othermirror,
                       '--override-config'],
            env = {'DIST': distro},
            descriptionDone = ['built binary debs', ]
        )
    )
    # Upload debs
    for deb_arch in binaries.keys():
        for deb_name in binaries[deb_arch]:
            debian_pkg = deb_name+'_'+version+'_'+deb_arch+'.deb'
            f.addStep(
                FileUpload(
                    name = deb_name+'-upload',
                    slavesrc = Interpolate('%(prop:workdir)s/'+debian_pkg),
                    masterdest = Interpolate('binarydebs/'+debian_pkg),
                    hideStepIf = success
                )
            )
            # Add the binarydeb using reprepro updater script on master
            f.addStep(
                MasterShellCommand(
                    name = deb_name+'-include',
                    command = ['reprepro-include.bash', deb_name, Interpolate(debian_pkg), distro, deb_arch],
                    descriptionDone = ['updated in apt', debian_pkg]
                )
            )
    # Trigger if needed
    if trigger_names != None:
        f.addStep( Trigger(schedulerNames = trigger_names, waitForFinish = False) )
    # Add to builders
    c['builders'].append(
        BuilderConfig(
            name = package+'_'+distro+'_'+arch+'_debbuild',
            slavenames = machines,
            factory = f
        )
    )
    # return name of builder created
    return package+'_'+distro+'_'+arch+'_debbuild'
Beispiel #30
0
 def __init__(self, **kwargs):
     kwargs['slavesrc'] = WithProperties('dist/TaskCoach-r%s.dmg', 'got_revision')
     kwargs['masterdest'] = WithProperties('/var/www/htdocs/TaskCoach-packages/TaskCoach-r%s.dmg', 'got_revision')
     kwargs['mode'] = 0644
     FileUpload.__init__(self, **kwargs)
Beispiel #31
0
 def __init__(self, *args, **kwargs):
     FileUpload.__init__(self, *args, **kwargs)
     self._dest = self.masterdest
     self._descDone = kwargs.get('descriptionDone')
 def __init__(self, **kwargs):
     kwargs['slavesrc'] = 'changelog_content'
     kwargs['masterdest'] = WithProperties('/var/www/TaskCoach-packages/%s/changelog_content', 'branch')
     kwargs['mode'] = 0644
     FileUpload.__init__(self, **kwargs)
    # Build the installer.
    ShellCommand(name="package", command=package_cmd, haltOnFailure=True,
                 doStepIf=lambda step:not step.getProperty("optimize", False)),

    # And the test scripts for deploy-ng.
    #Test(name="build_samples", command=test_deployng_cmd, doStepIf=is_branch("deploy-ng"), haltOnFailure=True),
]

# Define a global lock, since reprepro won't allow simultaneous access to the repo.
repo_lock = MasterLock('reprepro')

# Steps to publish the runtime and SDK.
publish_deb_steps = [
    # Upload the deb package.
    FileUpload(workersrc=deb_filename, masterdest=deb_upload_filename,
               mode=0o664, haltOnFailure=True,
               doStepIf=lambda step:not step.getProperty("optimize", False)),

    # Create a torrent file and start seeding it.
    #MakeTorrent(deb_upload_filename),
    #SeedTorrent(deb_upload_filename),

    # Upload it to an apt repository.
    MasterShellCommand(name="reprepro", command=[
        "reprepro", "-b", deb_archive_dir, "includedeb", deb_archive_suite,
        deb_upload_filename], locks=[repo_lock.access('exclusive')],
        doStepIf=lambda step:not step.getProperty("optimize", False)),
]

# Now make the factories.
deb_factory = BuildFactory()
Beispiel #34
0
        command=[
            python_executable, "makepanda/makewheel.py", "--outputdir",
            outputdir, "--version", whl_version, "--platform",
            Interpolate("macosx-%(prop:osxtarget)s-i386"), "--verbose"
        ],
        haltOnFailure=True),
    ShellCommand(
        name="makewheel",
        command=[
            python_executable, "makepanda/makewheel.py", "--outputdir",
            outputdir, "--version", whl_version, "--platform",
            Interpolate("macosx-%(prop:osxtarget)s-x86_64"), "--verbose"
        ],
        haltOnFailure=True),
    FileUpload(slavesrc=whl_filename32,
               masterdest=whl_upload_filename32,
               mode=0o664,
               haltOnFailure=True),
    FileUpload(slavesrc=whl_filename64,
               masterdest=whl_upload_filename64,
               mode=0o664,
               haltOnFailure=True),
]

publish_dmg_steps = [
    FileUpload(slavesrc=dmg_filename,
               masterdest=dmg_upload_filename,
               mode=0o664,
               haltOnFailure=True),
    MakeTorrent(dmg_upload_filename),
    SeedTorrent(dmg_upload_filename),
]
Beispiel #35
0
 def __init__(self, **kwargs):
     kwargs['slavesrc'] = WithProperties('dist/%s' % self.filename(), 'got_revision')
     kwargs['masterdest'] = WithProperties('/var/www/htdocs/TaskCoach-packages/%%s/%s' % self.filename(),
                                           'branch', 'got_revision')
     kwargs['mode'] = 0644
     FileUpload.__init__(self, **kwargs)
Beispiel #36
0
        haltOnFailure=True),

    # Invoke makepanda.
    Compile(command=build_cmd,
            haltOnFailure=True,
            env={'PYTHONPATH': python_path}),
]

# Define a global lock, since reprepro won't allow simultaneous access to the repo.
repo_lock = MasterLock('reprepro')

# Steps to publish the runtime and SDK.
publish_deb_steps = [
    # Upload the deb package.
    FileUpload(slavesrc=deb_filename,
               masterdest=deb_upload_filename,
               mode=0o664,
               haltOnFailure=True),

    # Create a torrent file and start seeding it.
    MakeTorrent(deb_upload_filename),
    SeedTorrent(deb_upload_filename),

    # Upload it to an apt repository.
    MasterShellCommand(name="reprepro",
                       command=[
                           "reprepro", "-b", deb_archive_dir, "includedeb",
                           deb_archive_suite, deb_upload_filename
                       ],
                       locks=[repo_lock.access('exclusive')]),
]
    def start(self):
        FileUpload.start(self)

        self.addURL('See', 'http://www.fraca7.net/pylint-%s.html' % self.getProperty('buildername'))
 def __init__(self, **kwargs):
     kwargs['slavesrc'] = 'pylint.html'
     kwargs['masterdest'] = WithProperties('/var/www/pylint-%s.html', 'buildername')
     kwargs['mode'] = 0644
     FileUpload.__init__(self, **kwargs)
Beispiel #39
0
    whl_filename = get_whl_filename(abi, 'universal2')

    build_steps_11_0 += [
        get_build_step(abi),
        get_test_step(abi),
        get_makewheel_step(abi, 'universal2'),
        get_upload_step(abi, 'universal2', whl_filename),
        ShellCommand(name="rm "+abi, command=['rm', '-f', whl_filename], haltOnFailure=False),
    ]

# Build and upload the installer.
package_steps = [
    ShellCommand(name="package", command=package_cmd, haltOnFailure=True),

    FileUpload(name="upload dmg", workersrc=get_dmg_filename(),
               masterdest=get_dmg_upload_filename(),
               mode=0o664, haltOnFailure=True),
]
build_steps_10_6 += package_steps
build_steps_10_9 += package_steps


def macosx_builder(osxver):
    if osxver in ('10.6', '10.7', '10.8'):
        workernames = config.macosx_10_6_workers
        buildsteps = build_steps_10_6
    elif osxver.startswith('11.'):
        workernames = config.macosx_11_0_workers
        buildsteps = build_steps_11_0
    else:
        workernames = config.macosx_10_9_workers
Beispiel #40
0
 def start(self):
     self.masterdest = '%s/%s-output-%s' % (self.getProperty('buildername'),
                                            self.getProperty('buildnumber'),
                                            self._dest)
     return FileUpload.start(self)
Beispiel #41
0
 def __init__(self, default_upload_path, dest_filename, *args, **kwargs):
     FileUpload.__init__(self, masterdest="", *args, **kwargs)
     self.default_upload_path = default_upload_path
     self.dest_filename = dest_filename
Beispiel #42
0
 f.addStep(
     ShellCommand(
         haltOnFailure=True,
         name=package + '-buildsource',
         command=[
             Interpolate('%(prop:workdir)s/build_source_deb.py'),
             rosdistro, package,
             Interpolate('%(prop:release_version)s'),
             Interpolate('%(prop:workdir)s')
         ] + gbp_args,
         descriptionDone=['sourcedeb', package]))
 # Upload sourcedeb to master (currently we are not actually syncing these with a public repo)
 f.addStep(
     FileUpload(
         name=package + '-uploadsource',
         slavesrc=Interpolate('%(prop:workdir)s/' + deb_name + '.dsc'),
         masterdest=Interpolate('sourcedebs/' + deb_name + '.dsc'),
         hideStepIf=success))
 # Stamp the changelog, in a similar fashion to the ROS buildfarm
 f.addStep(
     SetPropertyFromCommand(command="date +%Y%m%d-%H%M-%z",
                            property="datestamp",
                            name=package + '-getstamp',
                            hideStepIf=success))
 f.addStep(
     ShellCommand(
         haltOnFailure=True,
         name=package + '-stampdeb',
         command=[
             'gbp', 'dch', '-a', '--ignore-branch', '--verbose', '-N',
             Interpolate('%(prop:release_version)s-%(prop:datestamp)s' +
 def __init__(self, **kwargs):
     kwargs['slavesrc'] = WithProperties('%s', 'filename')
     kwargs['masterdest'] = WithProperties('/var/www/TaskCoach-packages/%s/%s', 'branch', 'basefilename')
     kwargs['mode'] = 0644
     FileUpload.__init__(self, **kwargs)