Title: [125066] trunk/Tools
Revision
125066
Author
pe...@chromium.org
Date
2012-08-08 12:11:37 -0700 (Wed, 08 Aug 2012)

Log Message

Buildmaster changes in preparation of a Chromium Android tester
https://bugs.webkit.org/show_bug.cgi?id=92251

Reviewed by Adam Barth.

Slightly update the build master's configuration in preparation of adding
a Chromium Android tester.

The change in built-product-archive is required as the out/ directory
for Android has a number of unstripped .so binaries and unaligned APKs,
causing the default release.zip file to be 2.7 gigabytes. By excluding
these file types, the file is only 59.7 megabytes. We can't disable
them for all of Chromium, as Mac and Linux do use their .so files.

* BuildSlaveSupport/build.webkit.org-config/master.cfg:
(ArchiveBuiltProduct): Pass the full platform name instead of just the
    generic type, i.e. chromium-android instead of chromium.
(ExtractBuiltProduct): Dito, stay consistent for this script.
(RunUnitTests): Pass --chromium-android as well as --chromium. Since we
    now read the full platform name, stay on the safe side with 'win'
    even though there (as far as I know) is no win-* platform.
(RunChromiumWebKitUnitTests): Dito. The platform wasn't being passed
    at all, but we'll be needing different handling here.
(unitTestsSupported): Next to refactoring work required, as we'll be
    running this test on a device, there is no reason to disable this
    in the master's configuration.
* BuildSlaveSupport/built-product-archive:
(main): Determine the generic platform.
(archiveBuiltProduct): Use an identical set of ignorePatterns, but
    extend the list with .so, .pak and -unaligned.apk for Android.

Modified Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg (125065 => 125066)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg	2012-08-08 19:09:07 UTC (rev 125065)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/master.cfg	2012-08-08 19:11:37 UTC (rev 125066)
@@ -195,7 +195,7 @@
 
 class ArchiveBuiltProduct(shell.ShellCommand):
     command = ["python", "./Tools/BuildSlaveSupport/built-product-archive",
-               WithProperties("--platform=%(platform)s"), WithProperties("--%(configuration)s"), "archive"]
+               WithProperties("--platform=%(fullPlatform)s"), WithProperties("--%(configuration)s"), "archive"]
     name = "archive-built-product"
     description = ["archiving built product"]
     descriptionDone = ["archived built product"]
@@ -204,7 +204,7 @@
 
 class ExtractBuiltProduct(shell.ShellCommand):
     command = ["python", "./Tools/BuildSlaveSupport/built-product-archive",
-               WithProperties("--platform=%(platform)s"), WithProperties("--%(configuration)s"), "extract"]
+               WithProperties("--platform=%(fullPlatform)s"), WithProperties("--%(configuration)s"), "extract"]
     name = "extract-built-product"
     description = ["extracting built product"]
     descriptionDone = ["extracted built product"]
@@ -421,13 +421,15 @@
     failedTestsFormatString = "%d unit tests failed or timed out"
 
     def start(self):
-        platform = self.getProperty('platform')
-        if platform == 'win':
+        platform = self.getProperty('fullPlatform')
+        if platform.startswith('win'):
             self.setCommand(self.command + ['--no-build'])
         if platform.startswith('mac'):
             self.setCommand(self.command + ['--no-build'])
         if platform.startswith('chromium'):
             self.setCommand(self.command + ['--chromium'])
+        if platform == 'chromium-android':
+            self.setCommand(self.command + ['--chromium-android'])
         return shell.Test.start(self)
 
     def countFailures(self, cmd):
@@ -603,7 +605,7 @@
     description = ["webkit-unit-tests running"]
     descriptionDone = ["webkit-unit-tests"]
     command = ["perl", "./Tools/Scripts/run-chromium-webkit-unit-tests",
-               WithProperties("--%(configuration)s")]
+               WithProperties("--%(configuration)s"), WithProperties("--platform=%(fullPlatform)s")]
 
 
 class RunAndUploadPerfTests(shell.Test):
@@ -712,8 +714,7 @@
 def unitTestsSupported(configuration, platform):
     if platform.startswith('mac') and configuration == "release":
         return False; # https://bugs.webkit.org/show_bug.cgi?id=82652
-    return (platform == 'win' or platform.startswith('mac')
-            or (platform.startswith('chromium') and platform != 'chromium-android'))
+    return (platform == 'win' or platform.startswith('mac') or platform.startswith('chromium'))
 
 def pickLatestBuild(builder, requests):
     return max(requests, key=operator.attrgetter("submittedAt"))

Modified: trunk/Tools/BuildSlaveSupport/built-product-archive (125065 => 125066)


--- trunk/Tools/BuildSlaveSupport/built-product-archive	2012-08-08 19:09:07 UTC (rev 125065)
+++ trunk/Tools/BuildSlaveSupport/built-product-archive	2012-08-08 19:11:37 UTC (rev 125066)
@@ -51,14 +51,15 @@
         parser.error("Action is required")
         return 1
 
-    if not determineWebKitBuildDirectory(options.platform, options.configuration):
+    genericPlatform = options.platform.split('-', 1)[0]
+    if not determineWebKitBuildDirectory(genericPlatform, options.configuration):
         print >> sys.stderr, "Could not determine build directory"
         return 1
 
     if action == 'archive':
-        return archiveBuiltProduct(options.configuration, options.platform)
+        return archiveBuiltProduct(options.configuration, genericPlatform, options.platform)
     else:
-        return extractBuiltProduct(options.configuration, options.platform)
+        return extractBuiltProduct(options.configuration, genericPlatform)
 
 
 def determineWebKitBuildDirectory(platform, configuration):
@@ -116,7 +117,7 @@
         return subprocess.call(["zip", "-y", "-r", archiveFile, "."], cwd=directoryToZip)
 
 
-def archiveBuiltProduct(configuration, platform):
+def archiveBuiltProduct(configuration, platform, fullPlatform):
     assert platform in ('mac', 'win', 'qt', 'gtk', 'efl', 'chromium')
 
     configurationBuildDirectory = os.path.join(_buildDirectory, configuration.title())
@@ -164,10 +165,14 @@
     elif platform == 'chromium':
         thinDirectory = os.path.join(configurationBuildDirectory, "thin")
 
+        ignorePatterns = ['.svn', '*.a', '*.d', '*.dSYM', '*.o', '*.ilk', '*.lib', '*.idb',
+                          'BuildLog.htm', '*.obj', '*.pdb', '*.pch', '*.tlog', '*.lastbuildstate']
+
+        if fullPlatform and fullPlatform == 'chromium-android':
+            ignorePatterns.extend(['*.so', '*.pak', '*-unaligned.apk'])
+
         removeDirectoryIfExists(thinDirectory)
-        copyBuildFiles(configurationBuildDirectory, thinDirectory,
-            ['.svn', '*.a', '*.d', '*.dSYM', '*.o', '*.ilk', '*.lib', '*.idb', 'BuildLog.htm', '*.obj',
-            '*.pdb', '*.pch', '*.tlog', '*.lastbuildstate'])
+        copyBuildFiles(configurationBuildDirectory, thinDirectory, ignorePatterns)
         if createZip(thinDirectory, configuration):
             return 1
 

Modified: trunk/Tools/ChangeLog (125065 => 125066)


--- trunk/Tools/ChangeLog	2012-08-08 19:09:07 UTC (rev 125065)
+++ trunk/Tools/ChangeLog	2012-08-08 19:11:37 UTC (rev 125066)
@@ -1,3 +1,36 @@
+2012-08-08  Peter Beverloo  <pe...@chromium.org>
+
+        Buildmaster changes in preparation of a Chromium Android tester
+        https://bugs.webkit.org/show_bug.cgi?id=92251
+
+        Reviewed by Adam Barth.
+
+        Slightly update the build master's configuration in preparation of adding
+        a Chromium Android tester.
+
+        The change in built-product-archive is required as the out/ directory
+        for Android has a number of unstripped .so binaries and unaligned APKs,
+        causing the default release.zip file to be 2.7 gigabytes. By excluding
+        these file types, the file is only 59.7 megabytes. We can't disable
+        them for all of Chromium, as Mac and Linux do use their .so files.
+
+        * BuildSlaveSupport/build.webkit.org-config/master.cfg:
+        (ArchiveBuiltProduct): Pass the full platform name instead of just the
+            generic type, i.e. chromium-android instead of chromium.
+        (ExtractBuiltProduct): Dito, stay consistent for this script.
+        (RunUnitTests): Pass --chromium-android as well as --chromium. Since we
+            now read the full platform name, stay on the safe side with 'win'
+            even though there (as far as I know) is no win-* platform.
+        (RunChromiumWebKitUnitTests): Dito. The platform wasn't being passed
+            at all, but we'll be needing different handling here.
+        (unitTestsSupported): Next to refactoring work required, as we'll be
+            running this test on a device, there is no reason to disable this
+            in the master's configuration.
+        * BuildSlaveSupport/built-product-archive:
+        (main): Determine the generic platform.
+        (archiveBuiltProduct): Use an identical set of ignorePatterns, but
+            extend the list with .so, .pak and -unaligned.apk for Android.
+
 2012-08-08  Adam Barth  <aba...@webkit.org>
 
         Unreviewed. Stop running tests on the mac-ews while we wait for more
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to