Changeset 244532 in webkit


Ignore:
Timestamp:
Apr 22, 2019 5:16:48 PM (5 years ago)
Author:
aakash_jain@apple.com
Message:

[ews-build] Trigger queues only after uploading the archive
https://bugs.webkit.org/show_bug.cgi?id=197180

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/factories.py:

(Factory.init):
(BuildFactory.init): Remove trigger step from factories.
(BuildFactory.propertiesToPassToTriggers): Deleted.

  • BuildSlaveSupport/ews-build/steps.py:

(ConfigureBuild.init): Confiure triggers property.
(Trigger): Step to trigger other queues.
(Trigger.propertiesToPassToTriggers): Method to construct properties to pass to triggerred builds.
(UploadBuiltProduct.finished): Trigger builds after upload is successful.

Location:
trunk/Tools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/BuildSlaveSupport/ews-build/factories.py

    r244021 r244532  
    2222
    2323
    24 from buildbot.process import factory, properties
     24from buildbot.process import factory
    2525from buildbot.steps import trigger
    2626
    2727from steps import *
    2828
    29 Property = properties.Property
    30 
    3129
    3230class Factory(factory.BuildFactory):
    33     def __init__(self, platform, configuration=None, architectures=None, buildOnly=True, additionalArguments=None, checkRelevance=False, **kwargs):
     31    def __init__(self, platform, configuration=None, architectures=None, buildOnly=True, triggers=None, additionalArguments=None, checkRelevance=False, **kwargs):
    3432        factory.BuildFactory.__init__(self)
    35         self.addStep(ConfigureBuild(platform, configuration, architectures, buildOnly, additionalArguments))
     33        self.addStep(ConfigureBuild(platform, configuration, architectures, buildOnly, triggers, additionalArguments))
    3634        if checkRelevance:
    3735            self.addStep(CheckPatchRelevance())
     
    6765
    6866class BuildFactory(Factory):
    69     def __init__(self, platform, configuration=None, architectures=None, additionalArguments=None, triggers=None, **kwargs):
    70         Factory.__init__(self, platform, configuration, architectures, False, additionalArguments)
     67    def __init__(self, platform, configuration=None, architectures=None, triggers=None, additionalArguments=None, **kwargs):
     68        Factory.__init__(self, platform, configuration, architectures, False, triggers, additionalArguments)
    7169        self.addStep(KillOldProcesses())
    7270        self.addStep(CompileWebKit())
    73         if triggers:
    74             self.addStep(trigger.Trigger(schedulerNames=triggers, set_properties=self.propertiesToPassToTriggers() or {}))
    75 
    76     def propertiesToPassToTriggers(self):
    77         return {
    78             "patch_id": Property("patch_id"),
    79             "bug_id": Property("bug_id"),
    80             "configuration": Property("configuration"),
    81             "platform": Property("platform"),
    82             "fullPlatform": Property("fullPlatform"),
    83             "architecture": Property("architecture"),
    84             "owner": Property("owner"),
    85         }
    8671
    8772
  • trunk/Tools/BuildSlaveSupport/ews-build/steps.py

    r244504 r244532  
    2424from buildbot.process import buildstep, logobserver, properties
    2525from buildbot.process.results import Results, SUCCESS, FAILURE, WARNINGS, SKIPPED, EXCEPTION, RETRY
    26 from buildbot.steps import master, shell, transfer
     26from buildbot.steps import master, shell, transfer, trigger
    2727from buildbot.steps.source import git
    2828from buildbot.steps.worker import CompositeStepMixin
     
    4444    descriptionDone = ["Configured build"]
    4545
    46     def __init__(self, platform, configuration, architectures, buildOnly, additionalArguments):
     46    def __init__(self, platform, configuration, architectures, buildOnly, triggers, additionalArguments):
    4747        super(ConfigureBuild, self).__init__()
    4848        self.platform = platform
     
    5353        self.architecture = " ".join(architectures) if architectures else None
    5454        self.buildOnly = buildOnly
     55        self.triggers = triggers
    5556        self.additionalArguments = additionalArguments
    5657
     
    6667        if self.buildOnly:
    6768            self.setProperty("buildOnly", self.buildOnly, 'config.json')
     69        if self.triggers:
     70            self.setProperty('triggers', self.triggers, 'config.json')
    6871        if self.additionalArguments:
    6972            self.setProperty("additionalArguments", self.additionalArguments, 'config.json')
     
    384387
    385388
     389class Trigger(trigger.Trigger):
     390    def __init__(self, schedulerNames, **kwargs):
     391        set_properties = self.propertiesToPassToTriggers() or {}
     392        super(Trigger, self).__init__(schedulerNames=schedulerNames, set_properties=set_properties, **kwargs)
     393
     394    def propertiesToPassToTriggers(self):
     395        return {
     396            'patch_id': properties.Property('patch_id'),
     397            'bug_id': properties.Property('bug_id'),
     398            'configuration': properties.Property('configuration'),
     399            'platform': properties.Property('platform'),
     400            'fullPlatform': properties.Property('fullPlatform'),
     401            'architecture': properties.Property('architecture'),
     402            'owner': properties.Property('owner'),
     403        }
     404
     405
    386406class TestWithFailureCount(shell.Test):
    387407    failedTestsFormatString = "%d test%s failed"
     
    674694        kwargs['blocksize'] = 1024 * 256
    675695        transfer.FileUpload.__init__(self, **kwargs)
     696
     697    def finished(self, results):
     698        if results == SUCCESS:
     699            triggers = self.getProperty('triggers', None)
     700            if triggers:
     701                self.build.addStepsAfterCurrentStep([Trigger(schedulerNames=triggers)])
     702
     703        return super(UploadBuiltProduct, self).finished(results)
    676704
    677705
  • trunk/Tools/ChangeLog

    r244529 r244532  
     12019-04-22  Aakash Jain  <aakash_jain@apple.com>
     2
     3        [ews-build] Trigger queues only after uploading the archive
     4        https://bugs.webkit.org/show_bug.cgi?id=197180
     5
     6        Reviewed by Lucas Forschler.
     7
     8        * BuildSlaveSupport/ews-build/factories.py:
     9        (Factory.__init__):
     10        (BuildFactory.__init__): Remove trigger step from factories.
     11        (BuildFactory.propertiesToPassToTriggers): Deleted.
     12        * BuildSlaveSupport/ews-build/steps.py:
     13        (ConfigureBuild.__init__): Confiure triggers property.
     14        (Trigger): Step to trigger other queues.
     15        (Trigger.propertiesToPassToTriggers): Method to construct properties to pass to triggerred builds.
     16        (UploadBuiltProduct.finished): Trigger builds after upload is successful.
     17
    1182019-04-22  Alex Christensen  <achristensen@webkit.org>
    219
Note: See TracChangeset for help on using the changeset viewer.