Title: [222121] trunk/Tools
Revision
222121
Author
[email protected]
Date
2017-09-15 17:04:16 -0700 (Fri, 15 Sep 2017)

Log Message

teach build.webkit.org to include run-webkit-archive in the root folder of uploaded macOS archives.
https://bugs.webkit.org/show_bug.cgi?id=176965

Reviewed by Alexey Proskuryakov.

* BuildSlaveSupport/built-product-archive:
(addLauncherToArchive): Helper function to add the launcher script
(createZip): teach function about addLauncherToArchive
* BuildSlaveSupport/run-webkit-archive: Added.
(check_for_valid_platform): Add logic to ensure platform is Darwin
(find_dyld_framework_path): Find the dyld framework path
(run_safari_for_webkit_development): launch SafariForWebKitDevelopment
(set_dyld_framework_path): export the environment for dydl framework path

Modified Paths

Added Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/built-product-archive (222120 => 222121)


--- trunk/Tools/BuildSlaveSupport/built-product-archive	2017-09-16 00:02:48 UTC (rev 222120)
+++ trunk/Tools/BuildSlaveSupport/built-product-archive	2017-09-16 00:04:16 UTC (rev 222121)
@@ -36,6 +36,7 @@
 _topLevelBuildDirectory = None
 _hostBuildDirectory = None
 
+PATH_TO_LAUNCHER = './Tools/BuildSlaveSupport/run-webkit-archive'
 
 def main():
     parser = optparse.OptionParser("usage: %prog [options] [action]")
@@ -136,6 +137,9 @@
 
     archiveZip.close()
 
+def addLauncherToArchive(archiveFile):
+    command = ['/usr/bin/zip', '-j', archiveFile, PATH_TO_LAUNCHER]
+    return subprocess.call(command)
 
 def createZip(directoryToZip, configuration, embedParentDirectoryNameOnDarwin=False, minify=False):
     archiveDir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "WebKitBuild"))
@@ -154,7 +158,7 @@
         if embedParentDirectoryNameOnDarwin:
             command += ['--keepParent']
         command += [directoryToZip, archiveFile]
-        return subprocess.call(command)
+        return subprocess.call(command) or addLauncherToArchive(archiveFile)
     elif sys.platform == 'cygwin':
         return subprocess.call(["zip", "-r", archiveFile, "bin32"], cwd=directoryToZip)
     elif sys.platform == 'win32':

Added: trunk/Tools/BuildSlaveSupport/run-webkit-archive (0 => 222121)


--- trunk/Tools/BuildSlaveSupport/run-webkit-archive	                        (rev 0)
+++ trunk/Tools/BuildSlaveSupport/run-webkit-archive	2017-09-16 00:04:16 UTC (rev 222121)
@@ -0,0 +1,69 @@
+#!/usr/bin/env python
+
+# Copyright (C) 2017 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1.  Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer. 
+# 2.  Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution. 
+# 3.  Neither the name of Apple Inc. ("Apple") nor the names of
+#     its contributors may be used to endorse or promote products derived
+#     from this software without specific prior written permission. 
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+import os, platform, subprocess
+
+SAFARI_FOR_WEBKIT_DEVELOPMENT='/Applications/Safari.app/Contents/MacOS/SafariForWebKitDevelopment'
+
+def check_for_valid_platform():
+    if 'Darwin' not in platform.system():
+        print('Unsupported OS, exiting.')
+        exit(1)
+
+def find_dyld_framework_path(script_path):
+    current_directory = os.path.dirname(script_path)
+    sub_directories = [name for name in os.listdir(current_directory) if os.path.isdir(name)]
+    if 'Debug' in sub_directories:
+        return current_directory + '/Debug'
+    elif 'Release' in sub_directories:
+        return current_directory + '/Release'
+    else:
+        print('No Release or Debug framework directories found in the current folder, exiting.')
+        exit(1)
+
+def run_safari_for_webkit_development():
+    subprocess.call(SAFARI_FOR_WEBKIT_DEVELOPMENT)
+
+def set_dyld_framework_path(script_path):
+    dyld_path = find_dyld_framework_path(script_path)
+    print('Setting DYLD FRAMEWORK and LIBRARY paths to {}'.format(dyld_path))
+    os.environ['DYLD_FRAMEWORK_PATH'] = dyld_path
+    os.environ['DYLD_LIBRARY_PATH'] = dyld_path
+    
+def main():
+    check_for_valid_platform()
+    script_path = os.path.abspath(__file__)
+    os.chdir(os.path.dirname(script_path))
+    set_dyld_framework_path(script_path)
+    run_safari_for_webkit_development()
+    
+if __name__ == '__main__':
+    try:
+        main()    
+    except KeyboardInterrupt:
+        exit("Aborting.")
\ No newline at end of file
Property changes on: trunk/Tools/BuildSlaveSupport/run-webkit-archive
___________________________________________________________________

Added: svn:executable

+* \ No newline at end of property

Modified: trunk/Tools/ChangeLog (222120 => 222121)


--- trunk/Tools/ChangeLog	2017-09-16 00:02:48 UTC (rev 222120)
+++ trunk/Tools/ChangeLog	2017-09-16 00:04:16 UTC (rev 222121)
@@ -1,3 +1,19 @@
+2017-09-15  Lucas Forschler  <[email protected]>
+
+        teach build.webkit.org to include run-webkit-archive in the root folder of uploaded macOS archives.
+        https://bugs.webkit.org/show_bug.cgi?id=176965
+
+        Reviewed by Alexey Proskuryakov.
+
+        * BuildSlaveSupport/built-product-archive:
+        (addLauncherToArchive): Helper function to add the launcher script
+        (createZip): teach function about addLauncherToArchive
+        * BuildSlaveSupport/run-webkit-archive: Added.
+        (check_for_valid_platform): Add logic to ensure platform is Darwin
+        (find_dyld_framework_path): Find the dyld framework path
+        (run_safari_for_webkit_development): launch SafariForWebKitDevelopment
+        (set_dyld_framework_path): export the environment for dydl framework path
+
 2017-09-15  Myles C. Maxfield  <[email protected]>
 
         [WSL] Small cleanup in Evaluator
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to