Commit f8b9a032 authored by Nicolas Boulenguez's avatar Nicolas Boulenguez

Merge tag 'upstream/1.4.0'

Upstream version 1.4.0
parents 9e16ba68 cd6aeaf3
......@@ -70,7 +70,6 @@ sdist_ubuntu: sdist_linux
# Launchpad does not support one size fits all packages...
cp dist/TaskCoach-$(TCVERSION).tar.gz dist/taskcoach_$(TCVERSION)-0ubuntu10~lucid.tar.gz
cp dist/TaskCoach-$(TCVERSION).tar.gz dist/taskcoach_$(TCVERSION)-0ubuntu12~precise.tar.gz
cp dist/TaskCoach-$(TCVERSION).tar.gz dist/taskcoach_$(TCVERSION)-0ubuntu13~saucy.tar.gz
cp dist/TaskCoach-$(TCVERSION).tar.gz dist/taskcoach_$(TCVERSION)-0ubuntu14~trusty.tar.gz
sdist_raw:
......@@ -110,15 +109,12 @@ ubuntu: sdist_ubuntu
mv build build-lucid
LC_ALL=C $(PYTHON) make.py bdist_ubuntu precise 12 --sdist=dist/taskcoach_$(TCVERSION)-0ubuntu12~precise.tar.gz
mv build build-precise
LC_ALL=C $(PYTHON) make.py bdist_ubuntu saucy 13 --sdist=dist/taskcoach_$(TCVERSION)-0ubuntu13~saucy.tar.gz
mv build build-saucy
LC_ALL=C $(PYTHON) make.py bdist_ubuntu trusty 14 --sdist=dist/taskcoach_$(TCVERSION)-0ubuntu14~trusty.tar.gz
mv build build-trusty
ppa_sign: ubuntu
cd build-lucid; debsign -k0x$(PGPID) taskcoach_$(TCVERSION)-0ubuntu10~lucid-1_source.changes
cd build-precise; debsign -k0x$(PGPID) taskcoach_$(TCVERSION)-0ubuntu12~precise-1_source.changes
cd build-saucy; debsign -k0x$(PGPID) taskcoach_$(TCVERSION)-0ubuntu13~saucy-1_source.changes
cd build-trusty; debsign -k0x$(PGPID) taskcoach_$(TCVERSION)-0ubuntu14~trusty-1_source.changes
# Split PPA by version because the upload has a tendency to fail so the buildbot must retry
......@@ -129,9 +125,6 @@ ppa_rel_lucid:
ppa_rel_precise:
cd build-precise; dput ppa:taskcoach-developers/release-snapshot taskcoach_$(TCVERSION)-0ubuntu12~precise-1_source.changes
ppa_rel_saucy:
cd build-saucy; dput ppa:taskcoach-developers/release-snapshot taskcoach_$(TCVERSION)-0ubuntu13~saucy-1_source.changes
ppa_rel_trusty:
cd build-trusty; dput ppa:taskcoach-developers/release-snapshot taskcoach_$(TCVERSION)-0ubuntu14~trusty-1_source.changes
......@@ -141,9 +134,6 @@ ppa_relnext_lucid:
ppa_relnext_precise:
cd build-precise; dput ppa:taskcoach-developers/nextrelease-snapshot taskcoach_$(TCVERSION)-0ubuntu12~precise-1_source.changes
ppa_relnext_saucy:
cd build-saucy; dput ppa:taskcoach-developers/nextrelease-snapshot taskcoach_$(TCVERSION)-0ubuntu13~saucy-1_source.changes
ppa_relnext_trusty:
cd build-trusty; dput ppa:taskcoach-developers/nextrelease-snapshot taskcoach_$(TCVERSION)-0ubuntu14~trusty-1_source.changes
......@@ -153,9 +143,6 @@ ppa_release_lucid:
ppa_release_precise:
cd build-precise; dput ppa:taskcoach-developers/ppa taskcoach_$(TCVERSION)-0ubuntu12~precise-1_source.changes
ppa_release_saucy:
cd build-saucy; dput ppa:taskcoach-developers/ppa taskcoach_$(TCVERSION)-0ubuntu13~saucy-1_source.changes
ppa_release_trusty:
cd build-trusty; dput ppa:taskcoach-developers/ppa taskcoach_$(TCVERSION)-0ubuntu14~trusty-1_source.changes
......
# -*- makefile -*-
# This is a simple makefile which lives in a buildmaster/buildslave
# directory (next to the buildbot.tac file). It allows you to start/stop the
# master or slave by doing 'make start' or 'make stop'.
# The 'reconfig' target will tell a buildmaster to reload its config file.
start:
sudo -u www-data twistd --no_save -y buildbot.tac
stop:
kill `cat twistd.pid`
reconfig:
kill -HUP `cat twistd.pid`
log:
tail -f twistd.log
from twisted.application import service
from buildbot.master import BuildMaster
basedir = r'/home/buildmaster'
configfile = r'master.cfg'
rotateLength = 1000000
maxRotatedFiles = None
application = service.Application('buildmaster')
try:
from twisted.python.logfile import LogFile
from twisted.python.log import ILogObserver, FileLogObserver
logfile = LogFile.fromFullPath("twistd.log", rotateLength=rotateLength,
maxRotatedFiles=maxRotatedFiles)
application.setComponent(ILogObserver, FileLogObserver(logfile).emit)
except ImportError:
# probably not yet twisted 8.2.0 and beyond, can't set log yet
pass
BuildMaster(basedir, configfile).setServiceParent(application)
#!/usr/bin/python
import os, re, sys
def findLatest(path, valid):
rx = re.compile(r'(.*)(\d+\.\d+\.\d+\.\d+)(.*)')
results = dict()
for name in os.listdir(path):
if (name.lower().startswith('taskcoach') or name.lower().startswith('x-taskcoach')) and valid(name):
mt = rx.search(name)
if mt:
ls = results.get((mt.group(1), mt.group(3)), [])
ls.append(map(int, mt.group(2).split('.')))
results[(mt.group(1), mt.group(3))] = ls
packages = []
for (part1, part3), versions in results.items():
versions.sort()
packages.append('%s%s%s' % (part1, '.'.join(map(str, versions[-1])), part3))
packages.sort()
return packages
def listPath(path):
def isSource(name):
if name.endswith('.tar.gz') or name.endswith('.src.rpm') or name.endswith('.tgz'):
return True
if name.endswith('.zip'):
return not name.endswith('_rev1.zip')
return False
print '<table border="0">'
changelog = os.path.join(path, 'changelog_content')
if os.path.exists(changelog):
print '<tr><td colspan="2"><pre>'
print file(changelog, 'rb').read()
print '</td></tr></pre>'
print '<tr><th colspan="2"><h2>Sources</h2></th></tr>'
for pkgname in findLatest(path, isSource):
print '<tr>'
print '<td><img src="source.png" /></td>'
print '<td>'
if path == '.' or path == 'all':
print '<a href="http://www.fraca7.net/TaskCoach-packages/%s">%s</a>' % (pkgname, pkgname)
else:
print '<a href="http://www.fraca7.net/TaskCoach-packages/%s/%s">%s</a>' % (path, pkgname, pkgname)
print '</td>'
print '</tr>'
print '<tr><th colspan="2"><h2>Binaries</h2></th></tr>'
for pkgname in findLatest(path, lambda x: not isSource(x)):
print '<tr>'
img = 'binary.png'
if pkgname.endswith('.dmg'):
img = 'mac.png'
elif pkgname.endswith('.exe'):
img = 'windows.png'
elif pkgname.endswith('.rpm') or pkgname.endswith('.deb'):
img = 'linux.png'
print '<td><img src="%s" /></td>' % img
print '<td>'
if path == '.' or path == 'all':
print '<a href="http://www.fraca7.net/TaskCoach-packages/%s">%s</a>' % (pkgname, pkgname)
else:
print '<a href="http://www.fraca7.net/TaskCoach-packages/%s/%s">%s</a>' % (path, pkgname, pkgname)
print '</td>'
print '</tr>'
print '</table>'
print '<hr />'
def main(path):
print 'Content-type: text/html'
print
print '<html><head><title>Latest Task Coach builds</title>'
print '<style type="text/css" media="screen">@import "default.css";</style>'
print '</head><body><center>'
if path == '.' or path == 'all':
print '<h1>New developments (from trunk)</h1>'
listPath('.')
if path != '.':
for name in sorted(os.listdir(path), cmp=lambda x, y: cmp(y, x)): # Feature should come first
if name.startswith('Release') or name.startswith('Feature'):
fname = os.path.join(path, name)
if os.path.isdir(fname):
if name.startswith('Release'):
print '<h1>Bug fixes (from %s)</h1>' % name
else:
print '<h1>Experimental features (from %s)</h1>' % name
listPath(fname)
print '<a href="http://www.taskcoach.org/download.html>Back to Task Coach downloads</a>'
print '</center></body></html>'
if __name__ == '__main__':
if sys.argv[0].endswith('latest_features.py'):
main('.')
elif sys.argv[0].endswith('latest_bugfixes.py'):
main('branches')
else:
main('all')
......@@ -19,23 +19,29 @@
c = BuildmasterConfig = {}
BASEURL = 'http://taskcoach.svn.sourceforge.net/svnroot/taskcoach/'
BASEURL = 'https://svn.code.sf.net/p/taskcoach/code/'
PASSWORD = file('.passwd', 'rb').readlines()[0].strip()
USERPASSWORD = file('.userpasswd', 'rb').readlines()[0].strip()
CURRENTRELEASE='1_2'
NEXTRELEASE='1_3'
# Warning: put release branch first.
BRANCHES = [
('Release1_3_Branch', 'LastRelease', 'rel'),
('trunk', 'Trunk', 'trunk'),
]
####### BUILDSLAVES
from buildbot.buildslave import BuildSlave
from buildbot.steps.trigger import Trigger
from buildbot.schedulers.forcesched import ForceScheduler
c['slaves'] = [BuildSlave("WinXPSP3", PASSWORD, max_builds=1),
BuildSlave("Ubuntu8", PASSWORD, max_builds=1),
BuildSlave("Ubuntu9", PASSWORD, max_builds=1),
BuildSlave("Fedora12", PASSWORD, max_builds=1),
## BuildSlave("Fedora13", PASSWORD, max_builds=1),
BuildSlave("MacOS", PASSWORD, max_builds=1)]
BuildSlave("Ubuntu10", PASSWORD, max_builds=1),
BuildSlave("Fedora14", PASSWORD, max_builds=1),
BuildSlave("OpenSuse", PASSWORD, max_builds=1),
BuildSlave("MacOS", PASSWORD, max_builds=1),
BuildSlave("Release", PASSWORD, max_builds=1)]
c['slavePortnum'] = 9989
......@@ -55,71 +61,37 @@ c['change_source'] = SVNPoller(BASEURL,
####### SCHEDULERS
from buildbot.scheduler import Scheduler
from buildbot.scheduler import Scheduler, Triggerable
c['schedulers'] = []
c['schedulers'].append(Scheduler(name="TrunkWin32", branch=None,
treeStableTimer=0,
builderNames=["win32-trunk"]))
c['schedulers'].append(Scheduler(name="LastReleaseWin32", branch='branches/Release%s_Branch' % CURRENTRELEASE,
treeStableTimer=0,
builderNames=["win32-rel"]))
c['schedulers'].append(Scheduler(name="NextReleaseWin32", branch='branches/Release%s_Branch' % NEXTRELEASE,
treeStableTimer=0,
builderNames=["win32-relnext"]))
c['schedulers'].append(Scheduler(name="TrunkUbuntu8", branch=None,
treeStableTimer=0,
builderNames=["ubuntu8-trunk"]))
c['schedulers'].append(Scheduler(name="LastReleaseUbuntu8", branch='branches/Release%s_Branch' % CURRENTRELEASE,
treeStableTimer=0,
builderNames=["ubuntu8-rel"]))
c['schedulers'].append(Scheduler(name="NextReleaseUbuntu8", branch='branches/Release%s_Branch' % NEXTRELEASE,
treeStableTimer=0,
builderNames=["ubuntu8-relnext"]))
c['schedulers'].append(Scheduler(name="TrunkUbuntu9", branch=None,
treeStableTimer=0,
builderNames=["ubuntu9-trunk"]))
c['schedulers'].append(Scheduler(name="LastReleaseUbuntu9", branch='branches/Release%s_Branch' % CURRENTRELEASE,
treeStableTimer=0,
builderNames=["ubuntu9-rel"]))
c['schedulers'].append(Scheduler(name="NextReleaseUbuntu9", branch='branches/Release%s_Branch' % NEXTRELEASE,
treeStableTimer=0,
builderNames=["ubuntu9-relnext"]))
c['schedulers'].append(Scheduler(name="TrunkFedora12", branch=None,
treeStableTimer=0,
builderNames=["fedora12-trunk"]))
c['schedulers'].append(Scheduler(name="LastReleaseFedora12", branch='branches/Release%s_Branch' % CURRENTRELEASE,
treeStableTimer=0,
builderNames=["fedora12-rel"]))
c['schedulers'].append(Scheduler(name="NextReleaseFedora12", branch='branches/Release%s_Branch' % NEXTRELEASE,
treeStableTimer=0,
builderNames=["fedora12-relnext"]))
## c['schedulers'].append(Scheduler(name="TrunkFedora13", branch=None,
## treeStableTimer=0,
## builderNames=["fedora13-trunk"]))
## c['schedulers'].append(Scheduler(name="LastReleaseFedora13", branch='branches/Release%s_Branch' % CURRENTRELEASE,
## treeStableTimer=0,
## builderNames=["fedora13-rel"]))
c['schedulers'].append(Scheduler(name="TrunkMacOS", branch=None,
treeStableTimer=0,
builderNames=["macos-trunk"]))
c['schedulers'].append(Scheduler(name="LastReleaseMacOS", branch='branches/Release%s_Branch' % CURRENTRELEASE,
treeStableTimer=0,
builderNames=["macos-rel"]))
c['schedulers'].append(Scheduler(name="NextReleaseMacOS", branch='branches/Release%s_Branch' % NEXTRELEASE,
treeStableTimer=0,
builderNames=["macos-relnext"]))
forceBuilders = ['Release']
for branchName, longName, shortName in BRANCHES:
branch = None if branchName == 'trunk' else 'branches/%s' % branchName
for platform in ['Win32', 'Ubuntu10', 'Fedora14', 'OpenSuse', 'MacOS']:
c['schedulers'].append(Scheduler(name='%s%s' % (longName, platform),
branch=branch,
treeStableTimer=0,
builderNames=['%s-%s' % (platform.lower(), shortName)]))
forceBuilders.append('%s-%s' % (platform.lower(), shortName))
# Release schedulers
c['schedulers'].append(Triggerable(name="Release",
builderNames=['macos-release', 'windows-release', 'ubuntu10-release', 'fedora14-release', 'opensuse-release']))
c['schedulers'].append(Triggerable(name="PPARelease",
builderNames=['ubuntu10-pparelease']))
# Force schedulers
c['schedulers'].append(ForceScheduler(name="Force", builderNames=forceBuilders))
####### BUILDERS
import os, sys
sys.path.insert(0, os.getcwd())
import tcbuild
reload(tcbuild)
from buildbot.process import factory
from buildbot.steps.source import SVN
......@@ -129,40 +101,47 @@ c['builders'] = []
# For each branch, all platforms should at least make cleanup,
# revision, integration, the platform-specific package or the generic
# package used on this platform, and distribution tests. Unit tests
# are skipped for some platforms (MacOS and Fedora12) due to unknown
# circumstances making them crash randomly.
# package used on this platform, and distribution tests. Unit tests
# are skipped for some platforms (MacOS) due to unknown circumstances
# making them crash randomly.
# Each generic package format may be used by several platforms, but
# only one build is uploaded to the master: the Fedora 8 build for RPM
# and SRPM and the Ubuntu 8 build for DEB.
# only one build is uploaded to the master: the Fedora 14 build for
# RPM and SRPM and the Ubuntu 10 build for DEB.
# Coverage tests must only be run on different OSes (no need to run
# them on Fedora if they are run on Ubuntu), so they run only on
# Ubuntu 8 and Win32 (not MacOS since the unit tests can't be launched
# from the slave there).
# Ubuntu 10 and Win32 (not MacOS since the unit tests can't be
# launched from the slave there).
# Language tests, documentation generation and source (tar.gz and zip)
# need only be run on one platform; this would be Ubuntu 8.
# need only be run on one platform; this would be Ubuntu 10.
def addCommonStartSteps(f, skipUnitTests=False, skipIntegrationTests=False, **kwargs):
f.addStep(tcbuild.Cleanup, **kwargs)
f.addStep(tcbuild.Revision, **kwargs)
f.addStep(tcbuild.Revert(**kwargs))
f.addStep(tcbuild.Cleanup(**kwargs))
f.addStep(tcbuild.Revision(**kwargs))
if not skipUnitTests:
f.addStep(tcbuild.UnitTests, **kwargs)
f.addStep(tcbuild.UnitTests(**kwargs))
if not skipIntegrationTests:
f.addStep(tcbuild.IntegrationTests, **kwargs)
f.addStep(tcbuild.IntegrationTests(**kwargs))
def addCommonEndSteps(f, **kwargs):
f.addStep(tcbuild.DistributionTests, **kwargs)
f.addStep(tcbuild.DistributionTests(**kwargs))
# Main release builder
f = factory.BuildFactory()
f.addStep(tcbuild.CleanupReleaseStep())
f.addStep(Trigger(schedulerNames=['Release'], waitForFinish=True, set_properties=dict(release=True)))
f.addStep(tcbuild.ZipReleaseStep())
BRANCHES = ['trunk', 'rel', 'relnext']
c['builders'].append(dict(name='Release', slavename='Release',
builddir='release', factory=f))
for branch in BRANCHES:
if branch == 'trunk':
svnargs = dict(svnurl=BASEURL + 'trunk')
else:
svnargs = dict(baseURL=BASEURL)
for branchName, longName, shortName in BRANCHES:
svnargs=dict(svnurl=BASEURL + 'trunk') if branchName == 'trunk' else dict(baseURL=BASEURL)
svnargs['retry'] = (30, 5)
workdir = 'build/taskcoach'
......@@ -170,144 +149,194 @@ for branch in BRANCHES:
f = factory.BuildFactory()
f.addStep(SVN, **svnargs)
f.addStep(SVN(**svnargs))
addCommonStartSteps(f, workdir=workdir, skipUnitTests=True)
#f.addStep(tcbuild.Coverage, workdir=workdir)
#f.addStep(tcbuild.UploadCoverage, workdir=workdir)
f.addStep(tcbuild.BuildSourceZip, workdir=workdir)
f.addStep(tcbuild.UploadSourceZip, workdir=workdir)
f.addStep(tcbuild.BuildEXE, workdir=workdir)
f.addStep(tcbuild.UploadEXE, workdir=workdir)
f.addStep(tcbuild.BuildSourceZip(workdir=workdir))
f.addStep(tcbuild.UploadSourceZip(workdir=workdir))
f.addStep(tcbuild.BuildEXE(workdir=workdir))
f.addStep(tcbuild.UploadEXE(workdir=workdir))
f.addStep(tcbuild.BuildWinPenPack(workdir=workdir))
f.addStep(tcbuild.UploadWinPenPack(workdir=workdir))
f.addStep(tcbuild.BuildPortableApps(workdir=workdir))
f.addStep(tcbuild.UploadPortableApps(workdir=workdir))
addCommonEndSteps(f, workdir=workdir)
f.addStep(tcbuild.KillEXE, workdir=workdir)
f.addStep(tcbuild.KillEXE(workdir=workdir))
c['builders'].append(dict(name='win32-%s' % branch,
c['builders'].append(dict(name='win32-%s' % shortName,
slavename='WinXPSP3',
builddir='%s-win32' % branch,
builddir='%s-win32' % shortName,
factory=f))
# Ubuntu 8
# Ubuntu 10
f = factory.BuildFactory()
f.addStep(SVN, **svnargs)
addCommonStartSteps(f, workdir=workdir, skipUnitTests=True)
f.addStep(tcbuild.LanguageTests, workdir=workdir)
#f.addStep(tcbuild.Coverage, workdir=workdir)
#f.addStep(tcbuild.UploadCoverage, workdir=workdir)
f.addStep(tcbuild.Epydoc, workdir=workdir)
f.addStep(tcbuild.UploadDoc, workdir=workdir)
f.addStep(tcbuild.BuildSourceTar, workdir=workdir)
f.addStep(tcbuild.UploadSourceTar, workdir=workdir)
f.addStep(tcbuild.BuildDEB, workdir=workdir, variant='py25')
f.addStep(tcbuild.UploadDEB, workdir=workdir, variant='py25')
f.addStep(SVN(**svnargs))
addCommonStartSteps(f, workdir=workdir)
if shortName == 'rel':
f.addStep(tcbuild.LanguageTests(workdir=workdir))
f.addStep(tcbuild.Epydoc(workdir=workdir))
f.addStep(tcbuild.UploadDoc(workdir=workdir))
f.addStep(tcbuild.Cleanup(workdir=workdir))
f.addStep(tcbuild.Revision(workdir=workdir))
f.addStep(tcbuild.BuildSourceTar(workdir=workdir))
f.addStep(tcbuild.UploadSourceTar(workdir=workdir))
f.addStep(tcbuild.BuildSourceRaw(workdir=workdir))
f.addStep(tcbuild.UploadSourceRaw(workdir=workdir))
f.addStep(tcbuild.BuildDEB(workdir=workdir))
f.addStep(tcbuild.UploadDEB(workdir=workdir))
f.addStep(tcbuild.UploadChangelog(workdir=workdir))
if shortName == 'rel':
f.addStep(tcbuild.PPA(name='rel', workdir=workdir))
elif branchName == 'trunk':
f.addStep(tcbuild.PPA(name='relnext', workdir=workdir))
f.addStep(tcbuild.PylintStep(workdir=workdir))
f.addStep(tcbuild.PylintUploadStep(workdir=workdir))
f.addStep(tcbuild.Coverage(workdir=workdir))
f.addStep(tcbuild.UploadCoverage(workdir=workdir))
addCommonEndSteps(f, workdir=workdir)
c['builders'].append(dict(name='ubuntu8-%s' % branch,
slavename='Ubuntu8',
builddir='%s-ubuntu8' % branch,
c['builders'].append(dict(name='ubuntu10-%s' % shortName,
slavename='Ubuntu10',
builddir='%s-ubuntu10' % shortName,
factory=f))
# Ubuntu 9
# Fedora 14
f = factory.BuildFactory()
f.addStep(SVN, **svnargs)
addCommonStartSteps(f, workdir=workdir, skipUnitTests=True, skipIntegrationTests=True)
#f.addStep(tcbuild.LanguageTests, workdir=workdir)
#f.addStep(tcbuild.Coverage, workdir=workdir)
#f.addStep(tcbuild.UploadCoverage, workdir=workdir)
#f.addStep(tcbuild.Epydoc, workdir=workdir)
#f.addStep(tcbuild.UploadDoc, workdir=workdir)
#f.addStep(tcbuild.BuildSourceTar, workdir=workdir)
#f.addStep(tcbuild.UploadSourceTar, workdir=workdir)
f.addStep(tcbuild.BuildDEB, workdir=workdir, variant='py26')
f.addStep(tcbuild.UploadDEB, workdir=workdir, variant='py26')
f.addStep(SVN(**svnargs))
addCommonStartSteps(f, workdir=workdir)
f.addStep(tcbuild.BuildRPM(workdir=workdir))
f.addStep(tcbuild.UploadRPM(workdir=workdir))
f.addStep(tcbuild.Cleanup(workdir=workdir))
f.addStep(tcbuild.Revision(workdir=workdir))
f.addStep(tcbuild.BuildSRPM(workdir=workdir))
f.addStep(tcbuild.UploadSRPM(workdir=workdir))
f.addStep(tcbuild.Cleanup(workdir=workdir))
f.addStep(tcbuild.Revision(workdir=workdir))
f.addStep(tcbuild.BuildFedora14(workdir=workdir))
f.addStep(tcbuild.UploadFedora14(workdir=workdir))
addCommonEndSteps(f, workdir=workdir)
c['builders'].append(dict(name='ubuntu9-%s' % branch,
slavename='Ubuntu9',
builddir='%s-ubuntu9' % branch,
c['builders'].append(dict(name='fedora14-%s' % shortName,
slavename='Fedora14',
builddir='%s-fedora14' % shortName,
factory=f))
# Fedora 12
## f = factory.BuildFactory()
## f.addStep(SVN, **svnargs)
## addCommonStartSteps(f, skipUnitTests=True, workdir=workdir)
## f.addStep(tcbuild.BuildFedora12, workdir=workdir)
## f.addStep(tcbuild.UploadFedora12, workdir=workdir)
## addCommonEndSteps(f, workdir=workdir)
## c['builders'].append(dict(name='fedora12-%s' % branch,
## slavename='Fedora12',
## builddir='%s-fedora12' % branch,
## factory=f))
# OpenSuse
f = factory.BuildFactory()
f.addStep(SVN, **svnargs)
addCommonStartSteps(f, workdir=workdir)
f.addStep(tcbuild.BuildRPM, workdir=workdir)
f.addStep(tcbuild.UploadRPM, workdir=workdir)
f.addStep(tcbuild.UploadSRPM, workdir=workdir)
# The RPM build somehow prevents the following Fedora build if we
# don't clean up things...
f.addStep(tcbuild.Cleanup, workdir=workdir)
f.addStep(tcbuild.Revision, workdir=workdir)
f.addStep(tcbuild.BuildFedora12, workdir=workdir)
f.addStep(tcbuild.UploadFedora12, workdir=workdir)
addCommonEndSteps(f, workdir=workdir)
f.addStep(SVN(**svnargs))
addCommonStartSteps(f, skipUnitTests=True, skipIntegrationTests=True, workdir=workdir)
f.addStep(tcbuild.BuildOpenSuse(workdir=workdir))
f.addStep(tcbuild.UploadOpenSuse(workdir=workdir))
c['builders'].append(dict(name='fedora12-%s' % branch,
slavename='Fedora12',
builddir='%s-fedora12' % branch,
c['builders'].append(dict(name='opensuse-%s' % shortName,
slavename='OpenSuse',
builddir='%s-opensuse' % shortName,
factory=f))
## # Fedora 13
## f = factory.BuildFactory()
## f.addStep(SVN, **svnargs)
## addCommonStartSteps(f, workdir=workdir)
## f.addStep(tcbuild.BuildRPM, workdir=workdir)
## f.addStep(tcbuild.UploadRPM, workdir=workdir)
## f.addStep(tcbuild.UploadSRPM, workdir=workdir)
## # The RPM build somehow prevents the following Fedora build if we
## # don't clean up things...
## f.addStep(tcbuild.Cleanup, workdir=workdir)
## f.addStep(tcbuild.Revision, workdir=workdir)
## f.addStep(tcbuild.BuildFedora13, workdir=workdir)
## f.addStep(tcbuild.UploadFedora13, workdir=workdir)
## addCommonEndSteps(f, workdir=workdir)
## c['builders'].append(dict(name='fedora13-%s' % branch,
## slavename='Fedora13',
## builddir='%s-fedora13' % branch,
## factory=f))
# MacOS
f = factory.BuildFactory()
f.addStep(SVN, **svnargs)
f.addStep(SVN(**svnargs))
addCommonStartSteps(f, skipUnitTests=True, skipIntegrationTests=True, workdir=workdir)
f.addStep(tcbuild.BuildDMG, workdir=workdir)
f.addStep(tcbuild.UploadDMG, workdir=workdir)
f.addStep(tcbuild.BuildDMG(workdir=workdir))
f.addStep(tcbuild.UploadDMG(workdir=workdir))
addCommonEndSteps(f, workdir=workdir)
c['builders'].append(dict(name='macos-%s' % branch,
c['builders'].append(dict(name='macos-%s' % shortName,
slavename='MacOS',
builddir='%s-macos' % branch,
builddir='%s-macos' % shortName,
factory=f))
####### Release
f = factory.BuildFactory()
f.addStep(SVN(baseURL=BASEURL, defaultBranch='branches/%s' % BRANCHES[0][0], retry=(30, 5)))
f.addStep(tcbuild.Cleanup(workdir='build/taskcoach'))
f.addStep(tcbuild.BuildDMG(workdir='build/taskcoach'))
f.addStep(tcbuild.UploadDMG(workdir='build/taskcoach'))
c['builders'].append(dict(name='macos-release', slavename='MacOS',
builddir='release-macos', factory=f))
f = factory.BuildFactory()
f.addStep(SVN(baseURL=BASEURL, defaultBranch='branches/%s' % BRANCHES[0][0], retry=(30, 5)))
f.addStep(tcbuild.Cleanup(workdir='build/taskcoach'))
f.addStep(tcbuild.BuildEXE(workdir='build/taskcoach'))
f.addStep(tcbuild.UploadEXE(workdir='build/taskcoach'))
f.addStep(tcbuild.BuildSourceZip(workdir='build/taskcoach'))
f.addStep(tcbuild.UploadSourceZip