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