[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37144] trunk/blender/build_files: BuildBot: various changes to support building branches.

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Jun 3 22:44:23 CEST 2011


Revision: 37144
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37144
Author:   blendix
Date:     2011-06-03 20:44:23 +0000 (Fri, 03 Jun 2011)
Log Message:
-----------
BuildBot: various changes to support building branches.

Modified Paths:
--------------
    trunk/blender/build_files/buildbot/master.cfg
    trunk/blender/build_files/buildbot/master_unpack.py
    trunk/blender/build_files/buildbot/slave_compile.py
    trunk/blender/build_files/buildbot/slave_pack.py
    trunk/blender/build_files/scons/tools/btools.py

Modified: trunk/blender/build_files/buildbot/master.cfg
===================================================================
--- trunk/blender/build_files/buildbot/master.cfg	2011-06-03 19:33:15 UTC (rev 37143)
+++ trunk/blender/build_files/buildbot/master.cfg	2011-06-03 20:44:23 UTC (rev 37144)
@@ -53,7 +53,7 @@
 buildernames = []
 
 
-def add_builder(c, name, libdir, factory):
+def add_builder(c, name, libdir, factory, branch=''):
     slavenames = []
 
     for slave in master_private.slaves:
@@ -61,24 +61,26 @@
             slavenames.append(slave['name'])
 
     if len(slavenames) > 0:
-        f = factory(name, libdir)
+        f = factory(name, libdir, branch)
         c['builders'].append(BuilderConfig(name=name, slavenames=slavenames, factory=f, category='blender'))
         buildernames.append(name)
 
 # common steps
 
 
-def svn_step():
-    return SVN(baseURL='https://svn.blender.org/svnroot/bf-blender/%%BRANCH%%/blender', mode='update', defaultBranch='trunk', workdir='blender')
+def svn_step(branch=''):
+    if branch:
+        return SVN(baseURL='https://svn.blender.org/svnroot/bf-blender/branches/%%BRANCH%%', mode='update', defaultBranch=branch, workdir='blender')
+    else:
+        return SVN(baseURL='https://svn.blender.org/svnroot/bf-blender/%%BRANCH%%/blender', mode='update', defaultBranch='trunk', workdir='blender')
 
-
 def lib_svn_step(dir):
     return SVN(name='lib svn', baseURL='https://svn.blender.org/svnroot/bf-blender/%%BRANCH%%/lib/' + dir, mode='update', defaultBranch='trunk', workdir='lib/' + dir)
 
 # generic builder
 
 
-def generic_builder(id, libdir=""):
+def generic_builder(id, libdir='', branch=''):
     filename = 'buildbot_upload_' + id + '.zip'
     compile_script = '../blender/build_files/buildbot/slave_compile.py'
     test_script = '../blender/build_files/buildbot/slave_test.py'
@@ -86,13 +88,13 @@
     unpack_script = 'master_unpack.py'
 
     f = BuildFactory()
-    f.addStep(svn_step())
+    f.addStep(svn_step(branch))
     if libdir != '':
         f.addStep(lib_svn_step(libdir))
 
     f.addStep(Compile(command=['python', compile_script, id]))
     f.addStep(Test(command=['python', test_script, id]))
-    f.addStep(ShellCommand(name='package', command=['python', pack_script, id], description='packaging', descriptionDone='packaged'))
+    f.addStep(ShellCommand(name='package', command=['python', pack_script, id, branch], description='packaging', descriptionDone='packaged'))
     if id.find('cmake') != -1:
         f.addStep(FileUpload(name='upload', slavesrc='buildbot_upload.zip', masterdest=filename, maxsize=100 * 1024 * 1024))
     else:
@@ -102,12 +104,19 @@
 
 # builders
 
-add_builder(c, 'mac_x86_64_cmake', 'darwin-9.x.universal', generic_builder)
-add_builder(c, 'mac_i386_cmake', 'darwin-9.x.universal', generic_builder)
-add_builder(c, 'mac_ppc_cmake', 'darwin-9.x.universal', generic_builder)
-add_builder(c, 'linux_x86_64_cmake', '', generic_builder)
+add_builder(c, 'mac_x86_64_scons', 'darwin-9.x.universal', generic_builder)
+add_builder(c, 'salad_mac_x86_64_scons', 'darwin-9.x.universal', generic_builder, 'soc-2011-salad')
+add_builder(c, 'mac_i386_scons', 'darwin-9.x.universal', generic_builder)
+add_builder(c, 'mac_ppc_scons', 'darwin-9.x.universal', generic_builder)
+#add_builder(c, 'linux_x86_64_cmake', '', generic_builder)
+add_builder(c, 'linux_i386_scons', '', generic_builder)
+add_builder(c, 'salad_linux_i386_scons', '', generic_builder, 'soc-2011-salad')
 add_builder(c, 'linux_x86_64_scons', '', generic_builder)
+add_builder(c, 'salad_linux_x86_64_scons', '', generic_builder, 'soc-2011-salad')
 add_builder(c, 'win32_scons', 'windows', generic_builder)
+add_builder(c, 'salad_win32_scons', 'windows', generic_builder, 'soc-2011-salad')
+#add_builder(c, 'freebsd_i386_cmake', '', generic_builder)
+#add_builder(c, 'freebsd_x86_64_cmake', '', generic_builder)
 
 # SCHEDULERS
 #
@@ -149,7 +158,7 @@
     pingBuilder=False,
     stopBuild=False,
     stopAllBuilds=False,
-    cancelPendingBuild=False,
+    cancelPendingBuild=True,
 )
 
 c['status'].append(html.WebStatus(http_port=8010, authz=authz_cfg))

Modified: trunk/blender/build_files/buildbot/master_unpack.py
===================================================================
--- trunk/blender/build_files/buildbot/master_unpack.py	2011-06-03 19:33:15 UTC (rev 37143)
+++ trunk/blender/build_files/buildbot/master_unpack.py	2011-06-03 20:44:23 UTC (rev 37144)
@@ -43,6 +43,7 @@
     # platform out, but there may be some variations, so we fiddle a
     # bit to handle current and hopefully future names
     filename = strip_extension(filename)
+    filename = strip_extension(filename)
 
     tokens = filename.split("-")
     platforms = ('osx', 'mac', 'bsd',
@@ -63,6 +64,21 @@
 
     return '-'.join(platform_tokens)
 
+def get_branch(filename):
+    tokens = filename.split("-")
+    branch = ""
+    
+    for token in tokens:
+        if branch == "":
+            branch = token
+        else:
+            branch = branch + "-" + token
+
+        if token == "blender":
+            return branch
+
+    return ""
+
 # get filename
 if len(sys.argv) < 2:
     sys.stderr.write("Not enough arguments, expecting file to unpack\n")
@@ -88,8 +104,9 @@
 package = z.namelist()[0]
 packagename = os.path.basename(package)
 
-# detect platform
+# detect platform and branch
 platform = get_platform(packagename)
+branch = get_branch(packagename)
 
 if platform == '':
     sys.stderr.write('Failed to detect platform ' +
@@ -113,10 +130,10 @@
     sys.stderr.write('Failed to unzip package: %s\n' % str(ex))
     sys.exit(1)
 
-# remove other files from the same platform
+# remove other files from the same platform and branch
 try:
     for f in os.listdir(directory):
-        if platform.lower() in f.lower():
+        if get_platform(f) == platform and get_branch(f) == branch:
             if f != packagename:
                 os.remove(os.path.join(directory, f))
 except Exception, ex:

Modified: trunk/blender/build_files/buildbot/slave_compile.py
===================================================================
--- trunk/blender/build_files/buildbot/slave_compile.py	2011-06-03 19:33:15 UTC (rev 37143)
+++ trunk/blender/build_files/buildbot/slave_compile.py	2011-06-03 20:44:23 UTC (rev 37144)
@@ -38,11 +38,11 @@
     # set build options
     cmake_options = ['-DCMAKE_BUILD_TYPE:STRING=Release']
 
-    if builder == 'mac_x86_64_cmake':
+    if builder.endswith('mac_x86_64_cmake'):
         cmake_options.append('-DCMAKE_OSX_ARCHITECTURES:STRING=x86_64')
-    elif builder == 'mac_i386_cmake':
+    elif builder.endswith('mac_i386_cmake'):
         cmake_options.append('-DCMAKE_OSX_ARCHITECTURES:STRING=i386')
-    elif builder == 'mac_ppc_cmake':
+    elif builder.endswith('mac_ppc_cmake'):
         cmake_options.append('-DCMAKE_OSX_ARCHITECTURES:STRING=ppc')
 
     # configure and make
@@ -75,10 +75,10 @@
         config_dir = os.path.join(buildbot_dir, 'config')
 
         configs = []
-        if builder == 'linux_x86_64_scons':
+        if builder.endswith('linux_x86_64_scons'):
             configs = ['user-config-player-x86_64.py',
                        'user-config-x86_64.py']
-        elif builder == 'linux_i386_scons':
+        elif builder.endswith('linux_i386_scons'):
             configs = ['user-config-player-i686.py',
                        'user-config-i686.py']
 

Modified: trunk/blender/build_files/buildbot/slave_pack.py
===================================================================
--- trunk/blender/build_files/buildbot/slave_pack.py	2011-06-03 19:33:15 UTC (rev 37143)
+++ trunk/blender/build_files/buildbot/slave_pack.py	2011-06-03 20:44:23 UTC (rev 37144)
@@ -33,11 +33,15 @@
     sys.exit(1)
 
 builder = sys.argv[1]
+branch = ''
 
+if len(sys.argv) >= 3:
+	branch = sys.argv[2]
+
 # scons does own packaging
 if builder.find('scons') != -1:
     os.chdir('../blender')
-    scons_options = ['BF_QUICK=slnt', 'buildslave']
+    scons_options = ['BF_QUICK=slnt', 'BUILDBOT_BRANCH=' + branch, 'buildslave']
 
     if builder.startswith('linux'):
         buildbot_dir = os.path.dirname(os.path.realpath(__file__))
@@ -52,9 +56,9 @@
 
         config = None
 
-        if builder == 'linux_x86_64_scons':
+        if builder.endswith('linux_x86_64_scons'):
             config = 'user-config-x86_64.py'
-        elif builder == 'linux_i386_scons':
+        elif builder.endswith('linux_i386_scons'):
             config = 'user-config-x86_64.py'
 
         if config is not None:

Modified: trunk/blender/build_files/scons/tools/btools.py
===================================================================
--- trunk/blender/build_files/scons/tools/btools.py	2011-06-03 19:33:15 UTC (rev 37143)
+++ trunk/blender/build_files/scons/tools/btools.py	2011-06-03 20:44:23 UTC (rev 37144)
@@ -134,7 +134,8 @@
             'BF_RAYOPTIMIZATION_SSE_FLAGS',
             'BF_NO_ELBEEM',
             'WITH_BF_CXX_GUARDEDALLOC',
-            'WITH_BF_JEMALLOC', 'WITH_BF_STATICJEMALLOC', 'BF_JEMALLOC', 'BF_JEMALLOC_INC', 'BF_JEMALLOC_LIBPATH', 'BF_JEMALLOC_LIB', 'BF_JEMALLOC_LIB_STATIC'
+            'WITH_BF_JEMALLOC', 'WITH_BF_STATICJEMALLOC', 'BF_JEMALLOC', 'BF_JEMALLOC_INC', 'BF_JEMALLOC_LIBPATH', 'BF_JEMALLOC_LIB', 'BF_JEMALLOC_LIB_STATIC',
+            'BUILDBOT_BRANCH'
             ]
     
     # Have options here that scons expects to be lists
@@ -501,7 +502,9 @@
         
         (BoolVariable('WITH_BF_RAYOPTIMIZATION', 'Enable raytracer SSE/SIMD optimization.', False)),
         ('BF_RAYOPTIMIZATION_SSE_FLAGS', 'SSE flags', ''),
-        (BoolVariable('WITH_BF_CXX_GUARDEDALLOC', 'Enable GuardedAlloc for C++ memory allocation tracking.', False))
+        (BoolVariable('WITH_BF_CXX_GUARDEDALLOC', 'Enable GuardedAlloc for C++ memory allocation tracking.', False)),
+
+        ('BUILDBOT_BRANCH', 'Buildbot branch name', ''),
     ) # end of opts.AddOptions()
 
     return localopts
@@ -546,7 +549,7 @@
     Builder for buildbot integration. Used by buildslaves of http://builder.blender.org only.
     """
 
-    if env['OURPLATFORM'] in ('win32-vc', 'win64-vc', 'win32-mingw'):
+    if env['OURPLATFORM'] in ('win32-vc', 'win64-vc', 'win32-mingw', 'darwin'):
         extension = '.zip'
     else:
         extension = '.tar.bz2'
@@ -560,9 +563,15 @@
             platform = 'linux-glibc27-x86_64'
         elif bitness == '32bit':
             platform = 'linux-glibc27-i686'
+    if platform == 'darwin':

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list