[Checkins] SVN: gocept.bsquare/branches/adamg-bpf-layout/ try again with bpf -- now taken from a working version
Adam Groszer
agroszer at gmail.com
Tue Oct 6 07:51:21 EDT 2009
Log message for revision 104836:
try again with bpf -- now taken from a working version
Changed:
U gocept.bsquare/branches/adamg-bpf-layout/src/gocept/bsquare/master.py
U gocept.bsquare/branches/adamg-bpf-layout/update-config.py
-=-
Modified: gocept.bsquare/branches/adamg-bpf-layout/src/gocept/bsquare/master.py
===================================================================
--- gocept.bsquare/branches/adamg-bpf-layout/src/gocept/bsquare/master.py 2009-10-06 08:57:47 UTC (rev 104835)
+++ gocept.bsquare/branches/adamg-bpf-layout/src/gocept/bsquare/master.py 2009-10-06 11:51:21 UTC (rev 104836)
@@ -8,7 +8,7 @@
from buildbot import locks
from buildbot.changes.svnpoller import SVNPoller, split_file_branches
-from buildbot.steps.source import SVN
+from buildbot.steps import source
from buildbot.steps.shell import Compile
from buildbot.process.factory import BuildFactory
@@ -20,8 +20,15 @@
is_win32 = sys.platform == 'win32'
-def split_file_pbf(path):
- #PROJECT/BRANCHNAME/FILEPATH repositories
+class SVN(source.SVN):
+ def startVC(self, branch, revision, patch):
+ log.msg('startVC %s %s %s' % (branch, revision, patch))
+ if branch.startswith('trunk/'):
+ branch = 'trunk'
+ return source.SVN.startVC(self, branch, revision, patch)
+
+def split_file(path):
+ log.msg('split_file %s' % (path))
pieces = path.split("/")
if len(pieces) < 2:
return None
@@ -30,40 +37,17 @@
return None
return ("%s/%s" % (project, branch), "/".join(pieces[2:]))
+def make_factory(svn_url, passOnNoTest=True, subfolder=''):
+ f = BuildFactory()
+ f.addStep(SVN(baseURL=svn_url, mode='clobber'))
+ if subfolder:
+ subfolder = os.path.join('build', subfolder)
+ else:
+ subfolder = 'build'
-def split_file_bpf(path):
- #BRANCHNAME/PROJECT/FILEPATH repositories
- pieces = path.split("/")
- if len(pieces) < 2:
- return None
- project, branch = pieces[1], pieces[0]
- if branch != "trunk":
- return None
- return ("%s/%s" % (project, branch), "/".join(pieces[2:]))
-
-def split_file_i(path):
- #intelligent
- log.msg("split_file_i: %s" % path)
- pieces = path.split("/")
- if len(pieces) < 2:
- return None
- project, branch = pieces[0], pieces[1]
- #if project in ('trunk','branches','tags'):
- #this is a BPF
- #project, branch = branch, project
- #if branch != "trunk":
- #return None
- rv = ("%s/%s" % (project, branch), "/".join(pieces[2:]))
- log.msg("split_file_i: %s" % repr(rv))
- return rv
-
-
-def make_factory(svn_url, passOnNoTest=True):
- f = BuildFactory()
- log.msg("make_factory svn_url: %s" % svn_url)
- f.addStep(SVN(baseURL=svn_url, mode='clobber',defaultBranch=''))
f.addStep(Compile(name='bootstrap',
- command='buildout bootstrap .',
+ command='buildout bootstrap',
+ workdir=subfolder,
description=['bootstrapping'],
descriptionDone=['bootstrap']))
if is_win32:
@@ -72,6 +56,7 @@
command = 'bin/buildout'
f.addStep(Compile(name="buildout",
command=command,
+ workdir=subfolder,
description=['building'],
descriptionDone=['build']))
@@ -89,18 +74,19 @@
f.addStep(Compile(name="test",
command=command,
+ workdir=subfolder,
description=['testing'],
descriptionDone=['tests']))
f.treeStableTimer = 300
return f
-def make_factory_strict(svn_url):
+def make_factory_strict(svn_url, subfolder=''):
"""Same as make_factory, but will fail when no bin/test exists
That's somehow a must be solution, because bin/buildout does NOT
return an exitstatus on an error
"""
- return make_factory(svn_url, passOnNoTest=False)
+ return make_factory(svn_url, passOnNoTest=False, subfolder=subfolder)
def configure(svn_url, http_port=8010, allowForce=False,
svnuser = None, svnpasswd = None,
@@ -138,7 +124,7 @@
c['slavePortnum'] = 8989
if poller is None:
c['change_source'] = SVNPoller(svn_url,
- split_file=split_file_i,
+ split_file=split_file,
svnuser=svnuser,
svnpasswd=svnpasswd,
pollinterval=pollinterval,
@@ -150,19 +136,12 @@
slow_lock = locks.SlaveLock("cpu", maxCount=maxConcurrent)
+ #'normal' pbf layouted projects
+
projects = open("project-list.cfg", "rb").readlines()
projects = [x.strip() for x in projects]
for project in projects:
- realsvn_url = svn_url
- if '/' in project:
- parts = project.split('/')
- realsvn_url = svn_url+project+'/'
- project = parts[-1]
- branch = "trunk/%s" % project
- else:
- branch = "%s/trunk" % project
-
if isinstance(make_factory, dict):
f = makefactory.get(project,
makefactory.get('__default__', make_factory))
@@ -179,12 +158,41 @@
del f
c['schedulers'].append(Scheduler(
- project, branch, pollinterval+10, [project]))
+ project, "%s/trunk" % project, pollinterval+10, [project]))
if nightlyhour is not None:
c['schedulers'].append(Nightly(
"%s nightly" % project, [project], hour=[nightlyhour],
- branch=branch))
+ branch="%s/trunk" % project))
+ #bpf layouted projects, there are tiny changes compared to above
+
+ projects = open("project-list-bpf.cfg", "rb").readlines()
+ projects = [x.strip() for x in projects]
+
+ for project in projects:
+ if isinstance(make_factory, dict):
+ f = makefactory.get(project,
+ makefactory.get('__default__', make_factory))
+ f = f(svn_url, subfolder=project)
+ else:
+ f = makefactory(svn_url, subfolder=project)
+
+ c['builders'].append({
+ 'name': project,
+ 'slavename': 'local',
+ 'builddir': project,
+ 'factory': f,
+ 'locks': [slow_lock],
+ })
+ del f
+
+ c['schedulers'].append(Scheduler(
+ project, "trunk/%s" % project, pollinterval+10, [project]))
+ if nightlyhour is not None:
+ c['schedulers'].append(Nightly(
+ "%s nightly" % project, [project], hour=[nightlyhour],
+ branch="trunk/%s" % project))
+
# Status display(s)
c['status'] = []
c['status'].append(status.ExtendedWebStatus(http_port=http_port,
Modified: gocept.bsquare/branches/adamg-bpf-layout/update-config.py
===================================================================
--- gocept.bsquare/branches/adamg-bpf-layout/update-config.py 2009-10-06 08:57:47 UTC (rev 104835)
+++ gocept.bsquare/branches/adamg-bpf-layout/update-config.py 2009-10-06 11:51:21 UTC (rev 104836)
@@ -87,6 +87,7 @@
projects = svnls(base)
cleaned = []
+ cleaned_bpf = []
for project in projects.splitlines():
if project.endswith('/'):
project = project[:-1]
@@ -99,7 +100,7 @@
try:
svnls("%strunk/%s/buildout.cfg" % (base, subproject))
- cleaned.append("trunk/"+subproject)
+ cleaned_bpf.append(subproject)
except OSError:
pass
@@ -112,6 +113,8 @@
open(os.path.join(home, 'project-list.cfg'), 'wb').write(
'\n'.join(cleaned) )
+ open(os.path.join(home, 'project-list-bpf.cfg'), 'wb').write(
+ '\n'.join(cleaned_bpf) )
if sys.platform == 'win32':
#there is no make usually on win32 and reconfig is also not supported
More information about the checkins
mailing list