Title: [234218] trunk/Tools
Revision
234218
Author
aakash_j...@apple.com
Date
2018-07-25 16:15:23 -0700 (Wed, 25 Jul 2018)

Log Message

[ews-build] Add build step UploadBuiltProduct
https://bugs.webkit.org/show_bug.cgi?id=188016

Reviewed by Lucas Forschler.

* BuildSlaveSupport/ews-build/steps.py:
(UploadBuiltProduct): Added build step UploadBuiltProduct.
* BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-test.

Modified Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/ews-build/steps.py (234217 => 234218)


--- trunk/Tools/BuildSlaveSupport/ews-build/steps.py	2018-07-25 23:03:21 UTC (rev 234217)
+++ trunk/Tools/BuildSlaveSupport/ews-build/steps.py	2018-07-25 23:15:23 UTC (rev 234218)
@@ -22,12 +22,13 @@
 
 from buildbot.process import buildstep, properties
 from buildbot.process.results import Results, SUCCESS, FAILURE, WARNINGS, SKIPPED, EXCEPTION, RETRY
-from buildbot.steps import shell
+from buildbot.steps import shell, transfer
 from buildbot.steps.source import svn
 from twisted.internet import defer
 
 WithProperties = properties.WithProperties
 
+
 class ConfigureBuild(buildstep.BuildStep):
     name = "configure-build"
     description = ["configuring build"]
@@ -293,3 +294,17 @@
     description = ['archiving built product']
     descriptionDone = ['archived built product']
     haltOnFailure = True
+
+
+class UploadBuiltProduct(transfer.FileUpload):
+    name = 'upload-built-product'
+    workersrc = WithProperties('WebKitBuild/%(configuration)s.zip')
+    masterdest = WithProperties('public_html/archives/%(fullPlatform)s-%(architecture)s-%(configuration)s/%(ewspatchid)s.zip')
+    haltOnFailure = True
+
+    def __init__(self, **kwargs):
+        kwargs['workersrc'] = self.workersrc
+        kwargs['masterdest'] = self.masterdest
+        kwargs['mode'] = 0644
+        kwargs['blocksize'] = 1024 * 256
+        transfer.FileUpload.__init__(self, **kwargs)

Modified: trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py (234217 => 234218)


--- trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py	2018-07-25 23:03:21 UTC (rev 234217)
+++ trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py	2018-07-25 23:15:23 UTC (rev 234218)
@@ -25,8 +25,9 @@
 import shutil
 import tempfile
 
+from buildbot.process import remotetransfer
 from buildbot.process.results import Results, SUCCESS, FAILURE, WARNINGS, SKIPPED, EXCEPTION, RETRY
-from buildbot.test.fake.remotecommand import ExpectShell
+from buildbot.test.fake.remotecommand import Expect, ExpectRemoteRef, ExpectShell
 from buildbot.test.util.steps import BuildStepMixin
 from twisted.internet import error, reactor
 from twisted.python import failure, log
@@ -135,6 +136,16 @@
         return deferred_result
 
 
+def uploadFileWithContentsOfString(string, timestamp=None):
+    def behavior(command):
+        writer = command.args['writer']
+        writer.remote_write(string + '\n')
+        writer.remote_close()
+        if timestamp:
+            writer.remote_utime(timestamp)
+    return behavior
+
+
 class TestCheckStyle(BuildStepMixinAdditions, unittest.TestCase):
     def setUp(self):
         self.longMessage = True
@@ -781,5 +792,35 @@
         return self.runStep()
 
 
+class TestUploadBuiltProduct(BuildStepMixinAdditions, unittest.TestCase):
+    def setUp(self):
+        self.longMessage = True
+        return self.setUpBuildStep()
+
+    def tearDown(self):
+        return self.tearDownBuildStep()
+
+    def test_success(self):
+        self.setupStep(UploadBuiltProduct())
+        self.setProperty('fullPlatform', 'mac-sierra')
+        self.setProperty('configuration', 'release')
+        self.setProperty('architecture', 'x86_64')
+        self.setProperty('ewspatchid', '1234')
+        self.expectHidden(False)
+        self.expectRemoteCommands(
+            Expect('uploadFile', dict(
+                                        workersrc='WebKitBuild/release.zip', workdir='wkdir',
+                                        blocksize=1024 * 256, maxsize=None, keepstamp=False,
+                                        writer=ExpectRemoteRef(remotetransfer.FileWriter),
+                                     ))
+            + Expect.behavior(uploadFileWithContentsOfString('Dummy zip file content.'))
+            + 0,
+        )
+        self.expectUploadedFile('public_html/archives/mac-sierra-x86_64-release/1234.zip')
+
+        self.expectOutcome(result=SUCCESS, state_string='uploading release.zip')
+        return self.runStep()
+
+
 if __name__ == '__main__':
     unittest.main()

Modified: trunk/Tools/ChangeLog (234217 => 234218)


--- trunk/Tools/ChangeLog	2018-07-25 23:03:21 UTC (rev 234217)
+++ trunk/Tools/ChangeLog	2018-07-25 23:15:23 UTC (rev 234218)
@@ -1,5 +1,16 @@
 2018-07-25  Aakash Jain  <aakash_j...@apple.com>
 
+        [ews-build] Add build step UploadBuiltProduct
+        https://bugs.webkit.org/show_bug.cgi?id=188016
+
+        Reviewed by Lucas Forschler.
+
+        * BuildSlaveSupport/ews-build/steps.py:
+        (UploadBuiltProduct): Added build step UploadBuiltProduct.
+        * BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-test.
+
+2018-07-25  Aakash Jain  <aakash_j...@apple.com>
+
         [ews-build] Add build step ArchiveBuiltProduct
         https://bugs.webkit.org/show_bug.cgi?id=188014
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to