[Bf-blender-cvs] [a260fe0] buildbot_linux_cmake: Buildbot: Avoid subprocess call to get build info

Sergey Sharybin noreply at git.blender.org
Wed Dec 2 13:50:40 CET 2015


Commit: a260fe04478d1d901c2f5e8e03f8f8f94d6dd614
Author: Sergey Sharybin
Date:   Wed Dec 2 17:50:20 2015 +0500
Branches: buildbot_linux_cmake
https://developer.blender.org/rBa260fe04478d1d901c2f5e8e03f8f8f94d6dd614

Buildbot: Avoid subprocess call to get build info

===================================================================

M	build_files/buildbot/slave_pack.py

===================================================================

diff --git a/build_files/buildbot/slave_pack.py b/build_files/buildbot/slave_pack.py
index 416f614..adc6a7f 100644
--- a/build_files/buildbot/slave_pack.py
+++ b/build_files/buildbot/slave_pack.py
@@ -156,12 +156,25 @@ else:
             sys.exit(1)
 
     elif builder.startswith('linux_'):
+        def parse_header_file(filename, define):
+            import re
+            regex = re.compile("^#\s*define\s+%s\s+(.*)" % define)
+            for l in open(filename, "r"):
+                match = regex.match(l)
+                if match:
+                    return match.group(1)
+            return None
+
         blender_dir = os.path.join('..', 'blender.git')
+        build_dir = os.path.join('..', 'build', builder)
         install_dir = os.path.join('..', 'install', builder)
 
         blender = os.path.join(install_dir, 'blender')
         blenderplayer = os.path.join(install_dir, 'blenderplayer')
 
+        buildinfo_h = os.path.join(build_dir, "source", "creator", "buildinfo.h")
+        blender_h = os.path.join(blender_dir, "source", "blender", "blenkernel", "BKE_blender.h")
+
         if builder.endswith('x86_64_cmake'):
             chroot_name = 'buildbot_squeeze_x86_64'
             bits = 64
@@ -191,14 +204,10 @@ else:
         os.system('chmod 755 %s' % (os.path.join(install_dir, 'blender-softwaregl')))
 
         # Get version information for the archive name
-        lines = subprocess.check_output(chroot_prefix + [os.path.join(install_dir, 'blender'), '--version']).split("\n")
-        blender_version = lines[0].split(' ')[1]
-        blender_hash = 'UNKNOWN'
+        blender_version = int(parse_header_file(blender_h, 'BLENDER_VERSION'))
+        blender_version = "%d.%d" % (blender_version / 100, blender_version % 100)
+        blender_hash = parse_header_file(buildinfo_h, 'BUILD_HASH')[1:-1]
         blender_glibc = builder.split('_')[1]
-        for line in lines:
-            line = line.strip()
-            if line.startswith("build hash:"):
-                blender_hash = line.split(' ')[-1]
 
         upload_filename = 'blender-%s-%s-linux-%s-%s.tar.bz2' % (blender_version,
                                                                  blender_hash,




More information about the Bf-blender-cvs mailing list