⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 249100 in webkit


Ignore:
Timestamp:
Aug 26, 2019, 10:08:21 AM (7 years ago)
Author:
aakash_jain@apple.com
Message:

[ews] Add EWS queue for applying watchlist
https://bugs.webkit.org/show_bug.cgi?id=201072

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ApplyWatchList): Build step to apply watchlist.
(ApplyWatchList.init): Set logEnviron to False.
(ApplyWatchList.getResultSummary): Updated the description in case of failure.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
  • BuildSlaveSupport/ews-build/factories.py:

(WatchListFactory): Build factory for WatchList.

  • BuildSlaveSupport/ews-build/loadConfig.py:
  • BuildSlaveSupport/ews-build/config.json:
Location:
trunk/Tools
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/BuildSlaveSupport/ews-build/config.json

    r249046 r249100  
    286286      "platform": "*",
    287287      "workernames": ["ews151"]
     288    },
     289    {
     290      "name": "Apply-WatchList-EWS",
     291      "shortname": "watchlist",
     292      "factory": "WatchListFactory",
     293      "platform": "*",
     294      "workernames": ["webkit-misc"]
    288295    },
    289296    {
     
    454461      "name": "try",
    455462      "port": 5555,
    456       "builderNames": ["Bindings-Tests-EWS", "GTK-Webkit2-EWS", "iOS-12-Build-EWS", "iOS-12-Simulator-Build-EWS",
     463      "builderNames": ["Apply-WatchList-EWS", "Bindings-Tests-EWS", "GTK-Webkit2-EWS", "iOS-12-Build-EWS", "iOS-12-Simulator-Build-EWS",
    457464                       "macOS-High-Sierra-Debug-Build-EWS", "macOS-High-Sierra-Release-Build-EWS",
    458465                       "Services-EWS", "Style-EWS", "WebKitPerl-Tests-EWS", "WebKitPy-Tests-EWS", "WPE-EWS", "WinCairo-EWS"]
  • trunk/Tools/BuildSlaveSupport/ews-build/factories.py

    r248770 r249100  
    2525from buildbot.steps import trigger
    2626
    27 from steps import (ApplyPatch, CheckOutSource, CheckOutSpecificRevision, CheckPatchRelevance,
     27from steps import (ApplyPatch, ApplyWatchList, CheckOutSource, CheckOutSpecificRevision, CheckPatchRelevance,
    2828                   CheckStyle, CompileJSCOnly, CompileJSCOnlyToT, CompileWebKit, ConfigureBuild,
    2929                   DownloadBuiltProduct, ExtractBuiltProduct, InstallGtkDependencies, InstallWpeDependencies, KillOldProcesses,
     
    176176        self.addStep(RunEWSUnitTests())
    177177        self.addStep(RunEWSBuildbotCheckConfig())
     178
     179
     180class WatchListFactory(Factory):
     181    def __init__(self, platform, configuration=None, architectures=None, triggers=None, additionalArguments=None, **kwargs):
     182        Factory.__init__(self, platform, configuration, architectures, False, triggers, additionalArguments)
     183        self.addStep(ApplyWatchList())
  • trunk/Tools/BuildSlaveSupport/ews-build/loadConfig.py

    r247694 r249100  
    3434                       JSCTestsFactory, StyleFactory, TestFactory, WPEFactory, WebKitPerlFactory,
    3535                       WebKitPyFactory, WinCairoFactory, WindowsFactory, iOSBuildFactory, iOSTestsFactory,
    36                        macOSBuildFactory, macOSWK1Factory, macOSWK2Factory, ServicesFactory)
     36                       macOSBuildFactory, macOSWK1Factory, macOSWK2Factory, ServicesFactory, WatchListFactory)
    3737
    3838BUILDER_NAME_LENGTH_LIMIT = 70
  • trunk/Tools/BuildSlaveSupport/ews-build/steps.py

    r248976 r249100  
    15811581            configuration += u', Xcode: {}'.format(xcode_version)
    15821582        return {u'step': configuration}
     1583
     1584
     1585class ApplyWatchList(shell.ShellCommand):
     1586    name = 'apply-watch-list'
     1587    description = ['applying watchilist']
     1588    descriptionDone = ['Applied WatchList']
     1589    bug_id = WithProperties('%(bug_id)s')
     1590    command = ['python', 'Tools/Scripts/webkit-patch', 'apply-watchlist-local', bug_id]
     1591    haltOnFailure = True
     1592    flunkOnFailure = True
     1593
     1594    def __init__(self, **kwargs):
     1595        shell.ShellCommand.__init__(self, timeout=2 * 60, logEnviron=False, **kwargs)
     1596
     1597    def getResultSummary(self):
     1598        if self.results != SUCCESS:
     1599            return {u'step': u'Failed to apply watchlist'}
     1600        return super(ApplyWatchList, self).getResultSummary()
  • trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py

    r248975 r249100  
    3535from twisted.trial import unittest
    3636
    37 from steps import (AnalyzeAPITestsResults, AnalyzeCompileWebKitResults, AnalyzeLayoutTestsResults, ApplyPatch, ArchiveBuiltProduct, ArchiveTestResults,
     37from steps import (AnalyzeAPITestsResults, AnalyzeCompileWebKitResults, AnalyzeLayoutTestsResults, ApplyPatch, ApplyWatchList, ArchiveBuiltProduct, ArchiveTestResults,
    3838                   CheckOutSource, CheckOutSpecificRevision, CheckPatchRelevance, CheckStyle, CleanBuild, CleanUpGitIndexLock, CleanWorkingDirectory,
    3939                   CompileJSCOnly, CompileJSCOnlyToT, CompileWebKit, CompileWebKitToT, ConfigureBuild,
     
    294294        )
    295295        self.expectOutcome(result=FAILURE, state_string='check-webkit-style (failure)')
     296        return self.runStep()
     297
     298
     299class TestApplyWatchList(BuildStepMixinAdditions, unittest.TestCase):
     300    def setUp(self):
     301        self.longMessage = True
     302        return self.setUpBuildStep()
     303
     304    def tearDown(self):
     305        return self.tearDownBuildStep()
     306
     307    def test_success(self):
     308        self.setupStep(ApplyWatchList())
     309        self.setProperty('bug_id', '1234')
     310        self.expectRemoteCommands(
     311            ExpectShell(workdir='wkdir',
     312                        timeout=120,
     313                        logEnviron=False,
     314                        command=['python', 'Tools/Scripts/webkit-patch', 'apply-watchlist-local', '1234'])
     315            + ExpectShell.log('stdio', stdout='Result of watchlist: cc "" messages ""')
     316            + 0,
     317        )
     318        self.expectOutcome(result=SUCCESS, state_string='Applied WatchList')
     319        return self.runStep()
     320
     321    def test_failure(self):
     322        self.setupStep(ApplyWatchList())
     323        self.setProperty('bug_id', '1234')
     324        self.expectRemoteCommands(
     325            ExpectShell(workdir='wkdir',
     326                        timeout=120,
     327                        logEnviron=False,
     328                        command=['python', 'Tools/Scripts/webkit-patch', 'apply-watchlist-local', '1234'])
     329            + ExpectShell.log('stdio', stdout='Unexpected failure')
     330            + 2,
     331        )
     332        self.expectOutcome(result=FAILURE, state_string='Failed to apply watchlist')
    296333        return self.runStep()
    297334
  • trunk/Tools/ChangeLog

    r249096 r249100  
     12019-08-26  Aakash Jain  <aakash_jain@apple.com>
     2
     3        [ews] Add EWS queue for applying watchlist
     4        https://bugs.webkit.org/show_bug.cgi?id=201072
     5
     6        Reviewed by Jonathan Bedard.
     7
     8        * BuildSlaveSupport/ews-build/steps.py:
     9        (ApplyWatchList): Build step to apply watchlist.
     10        (ApplyWatchList.__init__): Set logEnviron to False.
     11        (ApplyWatchList.getResultSummary): Updated the description in case of failure.
     12        * BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
     13        * BuildSlaveSupport/ews-build/factories.py:
     14        (WatchListFactory): Build factory for WatchList.
     15        * BuildSlaveSupport/ews-build/loadConfig.py:
     16        * BuildSlaveSupport/ews-build/config.json:
     17
    1182019-08-26  Youenn Fablet  <youenn@apple.com>
    219
Note: See TracChangeset for help on using the changeset viewer.