[zorg] r263313 - Allow build to determine the branch name from the SVN repository url

Marc Schifer via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 11 16:34:26 PST 2016


Author: mschifer
Date: Fri Mar 11 18:34:26 2016
New Revision: 263313

URL: http://llvm.org/viewvc/llvm-project?rev=263313&view=rev
Log:
Allow build to determine the branch name from the SVN repository url

Modified:
    zorg/trunk/test/jenkins/test_build.py
    zorg/trunk/zorg/jenkins/build.py

Modified: zorg/trunk/test/jenkins/test_build.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/test/jenkins/test_build.py?rev=263313&r1=263312&r2=263313&view=diff
==============================================================================
--- zorg/trunk/test/jenkins/test_build.py (original)
+++ zorg/trunk/test/jenkins/test_build.py Fri Mar 11 18:34:26 2016
@@ -36,7 +36,7 @@
 # CHECK-SIMPLE: '-DCOMPILER_RT_BUILD_SANITIZERS=On'
 # CHECK-SIMPLE: '-DCMAKE_INSTALL_PREFIX
 # CHECK-SIMPLE: '-DLLVM_ENABLE_PIC=On'
-# CHECK-SIMPLE: '-DLLVM_REPOSITORY=None'
+# CHECK-SIMPLE: '-DLLVM_REPOSITORY=/foo/workspace/llvm.src'
 # CHECK-SIMPLE: '-DSVN_REVISION=1234'
 # CHECK-SIMPLE: '-DLLVM_BUILD_TESTS=On'
 # CHECK-SIMPLE: '-DLLVM_INCLUDE_TESTS=On'

Modified: zorg/trunk/zorg/jenkins/build.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/jenkins/build.py?rev=263313&r1=263312&r2=263313&view=diff
==============================================================================
--- zorg/trunk/zorg/jenkins/build.py (original)
+++ zorg/trunk/zorg/jenkins/build.py Fri Mar 11 18:34:26 2016
@@ -9,6 +9,7 @@ import argparse
 import urllib
 import shutil
 import math
+import xml.etree.ElementTree as ET
 
 SERVER = "labmaster2.local"
 
@@ -66,7 +67,7 @@ class Configuration(object):
         self.svn_rev = os.environ.get('LLVM_REV', 'NONE')
         self.nobootstrap = True
         self.device = None
-        self._svn_url = None
+        self._svn_url_cache = None
 
         # Import all of the command line arguments into the config object
         self.__dict__.update(vars(args))
@@ -127,6 +128,26 @@ class Configuration(object):
             else:
                 return "master"
 
+    @property
+    def _svn_url(self):
+        if self._svn_url_cache:
+            return self._svn_url_cache
+        # Jenkins uses SVN_URL, and for more than one repo builds, numbers them.
+        svn_url = os.environ.get('SVN_URL',
+                                 os.environ.get('SVN_URL_1', None))
+        if svn_url is None:
+            svn_url = self.grab_svn_url()
+        self._svn_url_cache = svn_url
+        return svn_url
+
+    def grab_svn_url(self):
+        if os.environ.get('TESTING', False):
+            return '/foo/workspace/llvm.src'
+        cmd = ['svn', 'info', '--xml', os.path.join(self.workspace,'llvm.src')]
+        out = run_collect_output(cmd)
+        x = ET.fromstring(out)
+        url = x.find('entry').find('url').text
+        return url
 
     def link_memory_usage(self):
         """Guesstimate the maximum link memory usage for this build.
@@ -716,6 +737,7 @@ TEST_VALS = {"sysctl hw.ncpu": "hw.ncpu:
 def run_collect_output(cmd):
     """Run cmd, and return the output"""
     if os.getenv("TESTING"):
+        print 'TV: ' + ' '.join(cmd)
         return TEST_VALS[' '.join(cmd)]
 
     return subprocess.check_output(cmd)




More information about the llvm-commits mailing list