Title: [266208] trunk/Tools
Revision
266208
Author
clo...@igalia.com
Date
2020-08-26 17:10:05 -0700 (Wed, 26 Aug 2020)

Log Message

[GTK][WPE] Add bots for generating nightly bundle packages
https://bugs.webkit.org/show_bug.cgi?id=215623

Reviewed by Aakash Jain.

This adds a new type of bots for GTK and WPE that runs nightly (once per day).
The goal of this bots its to build WebKit for a specific distribution (Ubuntu LTS and LTS-1)
and generate a bundle with the result of the build. The bundles are then uploaded to a
server for consumption on other CIs like WPT.

The MiniBrowser bundle targets a specific distribution, so each one of this new bots has to
run the generate-minibrowser-bundle step. However, the JSC bundle is distro-agnostic because
for JSC is possible to bundle all the system libraries (similar to a static build).
That means that we only need to run the step generate-jsc-bundle in one of the bots.
This step for generating the JSC bundle was previously executed in the bot
'GTK Linux 64-bit Release (Build)'. This patch moves it to one of this new added bots.

* BuildSlaveSupport/build.webkit.org-config/config.json:
* BuildSlaveSupport/build.webkit.org-config/factories.py:
(BuildFactory):
(BuildFactory.__init__):
(TestFactory):
(TestFactory.__init__):
(BuildAndGenerateMiniBrowserBundleFactory):
(BuildAndGenerateMiniBrowserJSCBundleFactory):
* BuildSlaveSupport/build.webkit.org-config/loadConfig.py:
* BuildSlaveSupport/build.webkit.org-config/steps.py:
(GenerateJSCBundle):
(GenerateMiniBrowserBundle):
* BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:

Modified Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/config.json (266207 => 266208)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/config.json	2020-08-27 00:08:22 UTC (rev 266207)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/config.json	2020-08-27 00:10:05 UTC (rev 266208)
@@ -88,6 +88,8 @@
                     { "name": "gtk-linux-bot-13", "platform": "gtk" },
                     { "name": "gtk-linux-bot-14", "platform": "gtk" },
                     { "name": "gtk-linux-bot-15", "platform": "gtk" },
+                    { "name": "gtk-linux-bot-16", "platform": "gtk" },
+                    { "name": "gtk-linux-bot-17", "platform": "gtk" },
 
                     { "name": "jsconly-linux-igalia-bot-1", "platform": "jsc-only" },
                     { "name": "jsconly-linux-igalia-bot-2", "platform": "jsc-only" },
@@ -100,7 +102,9 @@
                     { "name": "wpe-linux-bot-3", "platform": "wpe" },
                     { "name": "wpe-linux-bot-4", "platform": "wpe" },
                     { "name": "wpe-linux-bot-5", "platform": "wpe" },
-                    { "name": "wpe-linux-bot-6", "platform": "wpe" }
+                    { "name": "wpe-linux-bot-6", "platform": "wpe" },
+                    { "name": "wpe-linux-bot-7", "platform": "wpe" },
+                    { "name": "wpe-linux-bot-8", "platform": "wpe" }
                   ],
 
     "builders":   [
@@ -288,7 +292,7 @@
                       "slavenames": ["bot545"]
                     },
                     {
-                      "name": "GTK Linux 64-bit Release (Build)", "type": "BuildAndGenerateJSCBundle", "builddir": "gtk-linux-64-release",
+                      "name": "GTK Linux 64-bit Release (Build)", "type": "Build", "builddir": "gtk-linux-64-release",
                       "platform": "gtk", "configuration": "release", "architectures": ["x86_64"],
                       "triggers": ["gtk-linux-64-release-tests", "gtk-linux-64-release-tests-js", "gtk-linux-64-release-tests-webdriver",
                                    "gtk-linux-64-release-wayland-tests", "gtk-linux-64-release-perf-tests"],
@@ -355,6 +359,18 @@
                       "slavenames": ["gtk-linux-slave-11"]
                     },
                     {
+                      "name": "GTK-Linux-64bit-Release-Packaging-Nightly-Ubuntu1804", "type": "BuildAndGenerateMiniBrowserBundle", "builddir": "gtk-linux-64-packaging-nigthly-ubuntu1804",
+                      "platform": "gtk", "configuration": "release", "architectures": ["x86_64"],
+                      "additionalArguments": ["--no-bubblewrap-sandbox"],
+                      "slavenames": ["gtk-linux-bot-16"]
+                    },
+                    {
+                      "name": "GTK-Linux-64bit-Release-Packaging-Nightly-Ubuntu2004", "type": "BuildAndGenerateMiniBrowserJSCBundle", "builddir": "gtk-linux-64-packaging-nigthly-ubuntu2004",
+                      "platform": "gtk", "configuration": "release", "architectures": ["x86_64"],
+                      "additionalArguments": ["--no-bubblewrap-sandbox"],
+                      "slavenames": ["gtk-linux-bot-17"]
+                    },
+                    {
                       "name": "WinCairo 64-bit WKL Release (Build)", "type": "Build", "builddir": "wincairo-wkl-release",
                       "platform": "wincairo", "configuration": "release", "architectures": ["x86_64"],
                       "triggers": ["wincairo-wkl-release-tests", "wincairo-jsc-release-tests"],
@@ -447,6 +463,18 @@
                       "name": "WPE Linux 64-bit Debug (Tests JS)", "type": "TestJS", "builddir": "wpe-linux-64-debug-tests-js",
                       "platform": "wpe", "configuration": "debug", "architectures": ["x86_64"],
                       "slavenames": ["wpe-linux-bot-6"]
+                    },
+                    {
+                      "name": "WPE-Linux-64bit-Release-Packaging-Nightly-Ubuntu1804", "type": "BuildAndGenerateMiniBrowserBundle", "builddir": "wpe-linux-64-packaging-nigthly-ubuntu1804",
+                      "platform": "wpe", "configuration": "release", "architectures": ["x86_64"],
+                      "additionalArguments": ["--no-bubblewrap-sandbox", "--cmakeargs=-DENABLE_WPE_QT_API=OFF"],
+                      "slavenames": ["wpe-linux-bot-7"]
+                    },
+                    {
+                      "name": "WPE-Linux-64bit-Release-Packaging-Nightly-Ubuntu2004", "type": "BuildAndGenerateMiniBrowserBundle", "builddir": "wpe-linux-64-packaging-nigthly-ubuntu2004",
+                      "platform": "wpe", "configuration": "release", "architectures": ["x86_64"],
+                      "additionalArguments": ["--no-bubblewrap-sandbox", "--cmakeargs=-DENABLE_WPE_QT_API=OFF"],
+                      "slavenames": ["wpe-linux-bot-8"]
                     }
                   ],
 
@@ -599,6 +627,11 @@
                     },
                     { "type": "Triggerable", "name": "wpe-linux-64-debug-tests-js",
                       "builderNames": ["WPE Linux 64-bit Debug (Tests JS)"]
+                    },
+                    { "type": "Nightly", "name": "NightlyScheduler", "change_filter": "trunk_filter",
+                      "branch": "trunk", "hour": 22, "minute": 0,
+                      "builderNames": ["GTK-Linux-64bit-Release-Packaging-Nightly-Ubuntu1804", "GTK-Linux-64bit-Release-Packaging-Nightly-Ubuntu2004",
+                                       "WPE-Linux-64bit-Release-Packaging-Nightly-Ubuntu1804", "WPE-Linux-64bit-Release-Packaging-Nightly-Ubuntu2004"]
                     }
                   ]
 }

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/factories.py (266207 => 266208)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/factories.py	2020-08-27 00:08:22 UTC (rev 266207)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/factories.py	2020-08-27 00:10:05 UTC (rev 266208)
@@ -47,6 +47,7 @@
 
 class BuildFactory(Factory):
     ShouldRunJSCBundleStep = False
+    ShouldRunMiniBrowserBundleStep = False
 
     def __init__(self, platform, configuration, architectures, triggers=None, additionalArguments=None, SVNMirror=None, device_model=None):
         Factory.__init__(self, platform, configuration, architectures, True, additionalArguments, SVNMirror, device_model)
@@ -56,6 +57,11 @@
         else:
             self.addStep(CompileWebKit())
 
+        if self.ShouldRunJSCBundleStep:
+            self.addStep(GenerateJSCBundle())
+        if self.ShouldRunMiniBrowserBundleStep:
+            self.addStep(GenerateMiniBrowserBundle())
+
         if triggers:
             self.addStep(ArchiveBuiltProduct())
             self.addStep(UploadBuiltProduct())
@@ -62,8 +68,6 @@
             if platform.startswith('mac') or platform.startswith('ios-simulator') or platform.startswith('tvos-simulator') or platform.startswith('watchos-simulator'):
                 self.addStep(ArchiveMinifiedBuiltProduct())
                 self.addStep(UploadMinifiedBuiltProduct())
-            if self.ShouldRunJSCBundleStep:
-                self.addStep(GenerateJSCBundle())
             self.addStep(TransferToS3())
             self.addStep(trigger.Trigger(schedulerNames=triggers))
 
@@ -71,7 +75,6 @@
 class TestFactory(Factory):
     JSCTestClass = RunJavaScriptCoreTests
     LayoutTestClass = RunWebKitTests
-    ShouldRunJSCBundleStep = False
 
     def getProduct(self):
         self.addStep(DownloadBuiltProduct())
@@ -112,8 +115,6 @@
             self.addStep(ArchiveTestResults())
             self.addStep(UploadTestResults())
             self.addStep(ExtractTestResults())
-        if self.ShouldRunJSCBundleStep:
-            self.addStep(GenerateJSCBundle())
         if platform == "gtk":
             self.addStep(RunGtkAPITests())
             if additionalArguments and "--display-server=wayland" in additionalArguments:
@@ -179,8 +180,13 @@
     ShouldRunJSCBundleStep = True
 
 
-class BuildAndNonLayoutTestAndGenerateJSCBundleFactory(BuildAndNonLayoutTestFactory):
+class BuildAndGenerateMiniBrowserBundleFactory(BuildFactory):
+    ShouldRunMiniBrowserBundleStep = True
+
+
+class BuildAndGenerateMiniBrowserJSCBundleFactory(BuildFactory):
     ShouldRunJSCBundleStep = True
+    ShouldRunMiniBrowserBundleStep = True
 
 
 class TestJSCFactory(Factory):

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/loadConfig.py (266207 => 266208)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/loadConfig.py	2020-08-27 00:08:22 UTC (rev 266207)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/loadConfig.py	2020-08-27 00:10:05 UTC (rev 266208)
@@ -21,7 +21,7 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 from buildbot.buildslave import BuildSlave
-from buildbot.scheduler import AnyBranchScheduler, Triggerable
+from buildbot.scheduler import AnyBranchScheduler, Triggerable, Nightly
 from buildbot.schedulers.forcesched import FixedParameter, ForceScheduler, StringParameter, BooleanParameter
 from buildbot.schedulers.filter import ChangeFilter
 from buildbot.process import buildstep, factory, properties

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/steps.py (266207 => 266208)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/steps.py	2020-08-27 00:08:22 UTC (rev 266207)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/steps.py	2020-08-27 00:10:05 UTC (rev 266208)
@@ -310,6 +310,18 @@
     descriptionDone = ["generated jsc bundle"]
     haltOnFailure = False
 
+
+class GenerateMiniBrowserBundle(shell.ShellCommand):
+    command = ["./Tools/Scripts/generate-bundle", "--builder-name", WithProperties("%(buildername)s"),
+               "--bundle=MiniBrowser", WithProperties("--platform=%(fullPlatform)s"),
+               WithProperties("--%(configuration)s"), WithProperties("--revision=%(got_revision)s"),
+               "--remote-config-file", "../../remote-minibrowser-bundle-upload-config.json"]
+    name = "generate-minibrowser-bundle"
+    description = ["generating minibrowser bundle"]
+    descriptionDone = ["generated minibrowser bundle"]
+    haltOnFailure = False
+
+
 class ExtractBuiltProduct(shell.ShellCommand):
     command = ["python", "./Tools/BuildSlaveSupport/built-product-archive",
                WithProperties("--platform=%(fullPlatform)s"), WithProperties("--%(configuration)s"), "extract"]

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/steps_unittest.py (266207 => 266208)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/steps_unittest.py	2020-08-27 00:08:22 UTC (rev 266207)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/steps_unittest.py	2020-08-27 00:10:05 UTC (rev 266208)
@@ -575,7 +575,7 @@
     'GTK Linux 64-bit Debug (Tests)': ['configure build', 'svn', 'kill old processes', 'delete WebKitBuild directory', 'delete stale build files', 'jhbuild', 'download-built-product', 'extract-built-product', 'layout-test', 'webkitpy-test', 'webkitperl-test', 'bindings-generation-tests', 'builtins-generator-tests', 'dashboard-tests', 'archive-test-results', 'upload', 'MasterShellCommand', 'API tests'],
     'GTK Linux 64-bit Debug (Tests WebDriver)': ['configure build', 'svn', 'kill old processes', 'delete WebKitBuild directory', 'delete stale build files', 'jhbuild', 'download-built-product', 'extract-built-product', 'webdriver-test'],
     'GTK Linux 64-bit Debug (Tests JS)': ['configure build', 'svn', 'kill old processes', 'delete WebKitBuild directory', 'delete stale build files', 'jhbuild', 'download-built-product', 'extract-built-product', 'jscore-test', 'test262-test'],
-    'GTK Linux 64-bit Release (Build)': ['configure build', 'svn', 'kill old processes', 'delete WebKitBuild directory', 'delete stale build files', 'jhbuild', 'compile-webkit', 'archive-built-product', 'upload', 'generate-jsc-bundle', 'transfer-to-s3', 'trigger'],
+    'GTK Linux 64-bit Release (Build)': ['configure build', 'svn', 'kill old processes', 'delete WebKitBuild directory', 'delete stale build files', 'jhbuild', 'compile-webkit', 'archive-built-product', 'upload', 'transfer-to-s3', 'trigger'],
     'GTK Linux 64-bit Release (Perf)': ['configure build', 'svn', 'kill old processes', 'delete WebKitBuild directory', 'delete stale build files', 'jhbuild', 'download-built-product', 'extract-built-product', 'perf-test', 'benchmark-test'],
     'GTK Linux 64-bit Release (Tests)': ['configure build', 'svn', 'kill old processes', 'delete WebKitBuild directory', 'delete stale build files', 'jhbuild', 'download-built-product', 'extract-built-product', 'layout-test', 'webkitpy-test', 'webkitperl-test', 'bindings-generation-tests', 'builtins-generator-tests', 'dashboard-tests', 'archive-test-results', 'upload', 'MasterShellCommand', 'API tests'],
     'GTK Linux 64-bit Release (Tests WebDriver)': ['configure build', 'svn', 'kill old processes', 'delete WebKitBuild directory', 'delete stale build files', 'jhbuild', 'download-built-product', 'extract-built-product', 'webdriver-test'],
@@ -600,6 +600,10 @@
     'WPE Linux 64-bit Debug (Build)': ['configure build', 'svn', 'kill old processes', 'delete WebKitBuild directory', 'delete stale build files', 'jhbuild', 'compile-webkit', 'archive-built-product', 'upload', 'transfer-to-s3', 'trigger'],
     'WPE Linux 64-bit Debug (Tests)': ['configure build', 'svn', 'kill old processes', 'delete WebKitBuild directory', 'delete stale build files', 'jhbuild', 'download-built-product', 'extract-built-product', 'layout-test', 'webkitpy-test', 'webkitperl-test', 'bindings-generation-tests', 'builtins-generator-tests', 'dashboard-tests', 'archive-test-results', 'upload', 'MasterShellCommand', 'API tests', 'webdriver-test'],
     'WPE Linux 64-bit Debug (Tests JS)': ['configure build', 'svn', 'kill old processes', 'delete WebKitBuild directory', 'delete stale build files', 'jhbuild', 'download-built-product', 'extract-built-product', 'jscore-test', 'test262-test'],
+    'GTK-Linux-64bit-Release-Packaging-Nightly-Ubuntu1804': ['configure build', 'svn', 'kill old processes', 'delete WebKitBuild directory', 'delete stale build files', 'jhbuild', 'compile-webkit', 'generate-minibrowser-bundle'],
+    'GTK-Linux-64bit-Release-Packaging-Nightly-Ubuntu2004': ['configure build', 'svn', 'kill old processes', 'delete WebKitBuild directory', 'delete stale build files', 'jhbuild', 'compile-webkit', 'generate-jsc-bundle', 'generate-minibrowser-bundle'],
+    'WPE-Linux-64bit-Release-Packaging-Nightly-Ubuntu1804': ['configure build', 'svn', 'kill old processes', 'delete WebKitBuild directory', 'delete stale build files', 'jhbuild', 'compile-webkit', 'generate-minibrowser-bundle'],
+    'WPE-Linux-64bit-Release-Packaging-Nightly-Ubuntu2004': ['configure build', 'svn', 'kill old processes', 'delete WebKitBuild directory', 'delete stale build files', 'jhbuild', 'compile-webkit', 'generate-minibrowser-bundle'],
 }
 
 

Modified: trunk/Tools/ChangeLog (266207 => 266208)


--- trunk/Tools/ChangeLog	2020-08-27 00:08:22 UTC (rev 266207)
+++ trunk/Tools/ChangeLog	2020-08-27 00:10:05 UTC (rev 266208)
@@ -1,3 +1,36 @@
+2020-08-26  Carlos Alberto Lopez Perez  <clo...@igalia.com>
+
+        [GTK][WPE] Add bots for generating nightly bundle packages
+        https://bugs.webkit.org/show_bug.cgi?id=215623
+
+        Reviewed by Aakash Jain.
+
+        This adds a new type of bots for GTK and WPE that runs nightly (once per day).
+        The goal of this bots its to build WebKit for a specific distribution (Ubuntu LTS and LTS-1)
+        and generate a bundle with the result of the build. The bundles are then uploaded to a
+        server for consumption on other CIs like WPT.
+
+        The MiniBrowser bundle targets a specific distribution, so each one of this new bots has to
+        run the generate-minibrowser-bundle step. However, the JSC bundle is distro-agnostic because
+        for JSC is possible to bundle all the system libraries (similar to a static build).
+        That means that we only need to run the step generate-jsc-bundle in one of the bots.
+        This step for generating the JSC bundle was previously executed in the bot
+        'GTK Linux 64-bit Release (Build)'. This patch moves it to one of this new added bots.
+
+        * BuildSlaveSupport/build.webkit.org-config/config.json:
+        * BuildSlaveSupport/build.webkit.org-config/factories.py:
+        (BuildFactory):
+        (BuildFactory.__init__):
+        (TestFactory):
+        (TestFactory.__init__):
+        (BuildAndGenerateMiniBrowserBundleFactory):
+        (BuildAndGenerateMiniBrowserJSCBundleFactory):
+        * BuildSlaveSupport/build.webkit.org-config/loadConfig.py:
+        * BuildSlaveSupport/build.webkit.org-config/steps.py:
+        (GenerateJSCBundle):
+        (GenerateMiniBrowserBundle):
+        * BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
+
 2020-08-26  Jonathan Bedard  <jbed...@apple.com>
 
        [webkitcorepy] Standard Popen mocking API
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to