import os
import re
+import shlex
+import subprocess
+import time
+
+PARALLEL_BUILD = False
# Assemble a list of builds from a single build spec
-def interpret_build(concrete_build_list, build, param_names, current_concrete_build={}, concrete_build_list=[]):
+def interpret_build(build, param_names, current_concrete_build={}, concrete_build_list=[]):
if (param_names==[]):
concrete_build_list.extend([current_concrete_build])
cmdline = '''%(sh)s
%(vbuildnightly)s
- -b %(pldistro)s-%(fcdistro)s-%(arch)s-%(myplcversion)s-%(release)s-%(date)s
+ -b pl-%(fcdistro)s-%(arch)s-%(myplcversion)s-%(release)s-%(date)s
-f %(fcdistro)s
-m %(mailto)s
-p %(personality)s
-r %(webpath)s
- -s %(svnpath)s
- -t %(tags)s
+ -s %(scmpath)s
+ -t %(tags)s
-w %(webpath)s/%(pldistro)s/%(fcdistro)s
%(runtests)s'''.replace('\n','')
# Turn build parameter dicts into commandlines and execute them
def process_builds (builds, build_names, default_build):
for build_name in build_names:
- import pdb
- pdb.set_trace()
build = complete_build_spec_with_defaults (builds[build_name], default_build)
concrete_builds_without_deps = interpret_build (build, build.keys(), {}, [])
concrete_builds = map(reduce_dependencies, concrete_builds_without_deps)
commandlines = map(concrete_build_to_commandline, concrete_builds)
- print "Number of builds for %s = %d\n"%(build_name,len(commandlines))
for commandline in commandlines:
- print commandline
-
+ if PARALLEL_BUILD == True:
+ args = shlex.split(commandline)
+ subprocess.Popen(args)
+ # workaround the vserver race
+ time.sleep(60)
+ else:
+ os.system(commandline)
+
def main():
config_file = '/etc/build-conf-planetlab.py'
builds = {}