adjust build scripts for git
authorS.Çağlar Onur <caglar@cs.princeton.edu>
Tue, 22 Jun 2010 15:08:20 +0000 (11:08 -0400)
committerS.Çağlar Onur <caglar@cs.princeton.edu>
Tue, 22 Jun 2010 15:08:20 +0000 (11:08 -0400)
build-conf-planetlab.py
run-nightlies.py

index f24f325..b93a232 100755 (executable)
@@ -1,5 +1,4 @@
 #!/usr/bin/python
-
 ###
 # Nightly build spec HOWTO
 #
 # on the current build spec. e.g. in this case, it would be to the effect of lambda (build): if (build['fcdistro']=='f10') then ['linux32','linux64'] else ['linux32']
 #
 
+#caglar_k32_build = {
+#      'tags':'planetlab-k32-tags.mk',
+#      'fcdistro':['f12', 'centos5','f8'],
+#      'personality':['linux32','linux64'],
+#      'test':0,
+#      'release':'k32'
+#}
+
+sapans_k27_build = {
+       'tags':'planetlab-k27-tags.mk',
+       'fcdistro':['f12', 'centos5','f8'],
+       'personality':['linux32','linux64'],
+       'test':0,
+       'release':'k27'
+}
 
-marcs_trunk_build = {
+marcs_k22_build = {
        'tags':'planetlab-tags.mk',
-       'fcdistro':['centos5','f8'],
+       'fcdistro':['f12', 'centos5','f8'],
        'personality':['linux32','linux64'],
        'test': 0,
        'release':'k22',
 }
-               
-sapans_k27_build = {
-       'tags':'k27-tags.mk',
-       'fcdistro':['centos5','f8'],
-       'personality':'linux32',
-       'test':1,
-       'release':'k27'
-}
 
 ###
 #
@@ -47,9 +53,9 @@ __flag_to_test__={0:'-B', 1:''}
 
 def __check_out_build_script__(build):
     import os
-    tmpname = os.popen('mktemp /tmp/'+build['build-script']+'.XXXXXX').read().rstrip('\n')
-    os.system("svn cat %s/%s > %s 2>/dev/null"%(build['svnpath'],build['build-script'],tmpname))
-    return tmpname
+    tmpname = os.popen('mktemp -d /tmp/'+build['build-script']+'.XXXXXX').read().rstrip('\n')
+    os.system("git clone --depth 1 %s %s" % (scmpath, tmpname))
+    return "%s/%s" % (tmpname, build['build-script'])
 
 def __today__():
     import datetime
@@ -70,15 +76,13 @@ __default_build__ = {
        'webpath':'/vservers/build.planet-lab.org/var/www/html/install-rpms/archive',
        'pldistro':'planetlab',
        'date': __today__(),
-       'svnpath':'http://svn.planet-lab.org/svn/build/trunk',
+       'scmpath':'git://git.planet-lab.org/build.git',
     'personality':'linux32',
     'myplcversion':'4.3',
 
-
 ### Parameters with dependencies: define paramater mappings as lambdas here
 
     'arch':lambda build: __personality_to_arch__[build['personality']],
     'runtests':lambda build: __flag_to_test__[build['test']],
     'vbuildnightly':lambda build: __check_out_build_script__(build)
-
 }
index 01b3036..3c8035c 100755 (executable)
@@ -3,6 +3,11 @@
 
 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(build, param_names, current_concrete_build={}, concrete_build_list=[]):
@@ -42,13 +47,13 @@ def concrete_build_to_commandline(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','')
 
@@ -76,8 +81,14 @@ def process_builds (builds, build_names, default_build):
                 concrete_builds = map(reduce_dependencies, concrete_builds_without_deps)
                 commandlines = map(concrete_build_to_commandline, concrete_builds)
                 for commandline in commandlines:
-                    os.system(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 = {}