예제 #1
0
 def buildSetFinished(self, bss):
     if not self.running:
         return
     ss = bss.getSourceStamp()
     for w in self.finishedWatchers:
         w(ss)
     Periodic.buildSetFinished(self,bss)
예제 #2
0
 def buildSetFinished(self, bss):
     if not self.running:
         return
     ss = bss.getSourceStamp()
     for w in self.finishedWatchers:
         w(ss)
     Periodic.buildSetFinished(self,bss)
예제 #3
0
 def __init__(self,
              name,
              project,
              builderNames,
              periodicBuildTimer,
              branch=None):
     Periodic.__init__(self, name, builderNames, periodicBuildTimer, branch)
     self.project = project
     self.finishedWatchers = []
예제 #4
0
def Update(c):
  buildernames_list = ['Win Builder']
  c['schedulers'].extend([
      SingleBranchScheduler(name='win_webrtc_scheduler',
                            branch='trunk',
                            treeStableTimer=0,
                            builderNames=buildernames_list),
      Periodic(name='win_periodic_scheduler',
               periodicBuildTimer=4*60*60,
               builderNames=buildernames_list),
      Triggerable(name='win_rel_trigger', builderNames=[
          'WinXP Tester',
          'Win7 Tester',
      ]),
  ])
  specs = [
    {
      'name': 'Win Builder',
      'triggers': ['win_rel_trigger'],
    },
    {'name': 'WinXP Tester'},
    {'name': 'Win7 Tester'},
  ]

  c['builders'].extend([
      {
        'name': spec['name'],
        'factory': m_annotator.BaseFactory(
            'webrtc/chromium',
            triggers=spec.get('triggers')),
        'category': 'win',
        'notify_on_missing': True,
      } for spec in specs
  ])
def Update(c):
    buildernames_list = [
        'Android Builder (dbg)',
        'Android GN',
        'Android GN (dbg)',
    ]
    c['schedulers'].extend([
        SingleBranchScheduler(name='android_webrtc_scheduler',
                              branch='trunk',
                              treeStableTimer=0,
                              builderNames=buildernames_list),
        Periodic(name='android_periodic_scheduler',
                 periodicBuildTimer=30 * 60,
                 builderNames=buildernames_list),
        Triggerable(name='android_trigger_dbg',
                    builderNames=[
                        'Android Tests (dbg) (KK Nexus5)',
                        'Android Tests (dbg) (JB Nexus7.2)',
                    ]),
    ])

    specs = [
        {
            'name': 'Android Builder (dbg)',
            'triggers': ['android_trigger_dbg'],
        },
        {
            'name': 'Android Tests (dbg) (KK Nexus5)'
        },
        {
            'name': 'Android Tests (dbg) (JB Nexus7.2)'
        },
        {
            'name': 'Android GN',
            'slavebuilddir': 'android_gn',
        },
        {
            'name': 'Android GN (dbg)',
            'slavebuilddir': 'android_gn',
        },
    ]

    c['builders'].extend([{
        'name':
        spec['name'],
        'factory':
        m_annotator.BaseFactory('webrtc/chromium',
                                triggers=spec.get('triggers')),
        'category':
        'android',
        'notify_on_missing':
        True,
        'slavebuilddir':
        spec.get('slavebuilddir', 'android'),
    } for spec in specs])
예제 #6
0
def Update(c):
    c['schedulers'].extend([
        SingleBranchScheduler(name='webrtc_linux_scheduler',
                              branch='master',
                              treeStableTimer=0,
                              builderNames=[
                                  'Linux (swarming)',
                                  'Linux32 Debug (ARM)',
                                  'Linux64 GCC',
                              ]),
        # Run WebRTC DEPS roller every 3 hours.
        Periodic(
            name='webrtc_deps',
            periodicBuildTimer=3 * 60 * 60,
            branch=None,
            builderNames=['Auto-roll - WebRTC DEPS'],
        ),
    ])

    specs = [
        {
            'name': 'Linux (swarming)',
            'slavebuilddir': 'linux_swarming'
        },
        {
            'name': 'Linux32 Debug (ARM)',
            'slavebuilddir': 'linux_arm'
        },
        {
            'name': 'Linux64 GCC',
            'slavebuilddir': 'linux_gcc'
        },
        {
            'name': 'Auto-roll - WebRTC DEPS',
            'recipe': 'webrtc/auto_roll_webrtc_deps',
            'slavebuilddir': 'linux_autoroll',
        },
    ]

    c['builders'].extend([{
        'name':
        spec['name'],
        'factory':
        m_annotator.BaseFactory(spec['recipe'])
        if 'recipe' in spec else m_remote_run('webrtc/standalone'),
        'notify_on_missing':
        True,
        'category':
        'linux',
        'slavebuilddir':
        spec['slavebuilddir'],
        'auto_reboot':
        False,
    } for spec in specs])
예제 #7
0
def getSchedulers(builders):
    post_commit_builders = [
        b['name'] for b in builders if b['name'].startswith('post-commit-')
    ] + ['page-layout-test-mac-os-x']
    post_commit_builders.sort()

    periodic_builders = [
        b['name'] for b in builders if b['name'].startswith('periodic-')
    ]
    periodic_builders.sort()

    post_commit = Scheduler(name="post-commit",
                            branch=None,
                            treeStableTimer=90,
                            builderNames=post_commit_builders)
    periodic = Periodic("periodic", periodic_builders, 6 * 60 * 60)

    return [post_commit, periodic]
예제 #8
0
def Update(c):
    buildernames_list = ['Mac']
    c['schedulers'].extend([
        SingleBranchScheduler(name='mac_webrtc_scheduler',
                              branch='trunk',
                              treeStableTimer=0,
                              builderNames=buildernames_list),
        Periodic(name='mac_periodic_scheduler',
                 periodicBuildTimer=60 * 60,
                 builderNames=buildernames_list),
    ])
    specs = [
        {
            'name': 'Mac'
        },
    ]

    c['builders'].extend([{
        'name': spec['name'],
        'factory': m_annotator.BaseFactory('webrtc/chromium'),
        'category': 'mac',
        'notify_on_missing': True,
    } for spec in specs])
예제 #9
0
def Update(c):
  buildernames_list = [
      'Linux',
      'Linux GN',
      'Linux GN (dbg)',
  ]
  c['schedulers'].extend([
      SingleBranchScheduler(name='linux_webrtc_scheduler',
                            branch='trunk',
                            treeStableTimer=0,
                            builderNames=buildernames_list),
      Periodic(name='linux_periodic_scheduler',
               periodicBuildTimer=60*60,
               builderNames=buildernames_list),
  ])
  specs = [
    {'name': 'Linux'},
    {
       'name': 'Linux GN',
       'slavebuilddir': 'linux_gn',
    },
    {
      'name': 'Linux GN (dbg)',
      'slavebuilddir': 'linux_gn',
    },
  ]

  c['builders'].extend([
      {
        'name': spec['name'],
        'factory': m_annotator.BaseFactory('webrtc/chromium'),
        'category': 'linux',
        'notify_on_missing': True,
        'slavebuilddir': spec.get('slavebuilddir', 'linux'),
      } for spec in specs
  ])
예제 #10
0
def getSchedulers(builders):
    builders = map(lambda builder: (builder['name'], builder['periodic']),
                   builders)
    trunkBuilders = [
        name for name, periodic in builders
        if name.startswith('trunk-') and not periodic
    ]
    trunkBuilders.sort()
    stableBuilders = [
        name for name, periodic in builders
        if name.startswith('stable-') and not periodic
    ]
    stableBuilders.sort()
    periodicBuilders = [name for name, periodic in builders if periodic]
    periodicBuilders.sort()

    trunk = AnyBranchScheduler(name="trunk",
                               branches=['trunk'],
                               treeStableTimer=90,
                               builderNames=trunkBuilders)
    #    stable = AnyBranchScheduler(name="stable", branches=['branches/Safari-3-1-branch'], treeStableTimer=90, builderNames=stableBuilders)
    periodic = Periodic("periodic", periodicBuilders, 6 * 60 * 60)

    return [trunk, periodic]
def Update(c):
    hourly_builders = [
        'Android Builder',
        'Android Builder (dbg)',
        'Android Builder ARM64 (dbg)',
        'Linux Builder',
        'Mac Builder',
    ]
    win_builders = [
        'Win Builder',
    ]
    all_builders = hourly_builders + win_builders

    c['schedulers'].extend([
        SingleBranchScheduler(name='webrtc_scheduler',
                              change_filter=ChangeFilter(project='webrtc',
                                                         branch='master'),
                              treeStableTimer=0,
                              builderNames=all_builders),
        Periodic(name='hourly_periodic_scheduler',
                 periodicBuildTimer=60 * 60,
                 builderNames=hourly_builders),
        Periodic(name='4hours_periodic_scheduler',
                 periodicBuildTimer=4 * 60 * 60,
                 builderNames=win_builders),
    ])

    specs = [
        {
            'name': 'Win Builder',
            'category': 'win'
        },
        {
            'name': 'Win7 Tester',
            'category': 'win'
        },
        {
            'name': 'Win8 Tester',
            'category': 'win'
        },
        {
            'name': 'Win10 Tester',
            'category': 'win'
        },
        {
            'name': 'Mac Builder',
            'category': 'mac'
        },
        {
            'name': 'Mac Tester',
            'category': 'mac'
        },
        {
            'name': 'Linux Builder',
            'category': 'linux'
        },
        {
            'name': 'Linux Tester',
            'category': 'linux'
        },
        {
            'name': 'Android Builder',
            'category': 'android'
        },
        {
            'name': 'Android Builder (dbg)',
            'category': 'android'
        },
        {
            'name': 'Android Builder ARM64 (dbg)',
            'category': 'android',
            'slavebuilddir': 'android_arm64',
        },
        {
            'name': 'Android Tests (dbg) (K Nexus5)',
            'category': 'android'
        },
        {
            'name': 'Android Tests (dbg) (L Nexus5)',
            'category': 'android'
        },
        {
            'name': 'Android Tests (dbg) (L Nexus6)',
            'category': 'android'
        },
        {
            'name': 'Android Tests (dbg) (L Nexus7.2)',
            'category': 'android'
        },
        {
            'name': 'Android Tests (dbg) (L Nexus9)',
            'category': 'android'
        },
    ]

    for spec in specs:
        builder_dict = {
            'name': spec['name'],
            'factory': m_remote_run('chromium'),
            'category': spec['category'],
            'notify_on_missing': True,
        }
        if 'slavebuilddir' in spec:
            builder_dict['slavebuilddir'] = spec['slavebuilddir']

        c['builders'].append(builder_dict)
예제 #12
0
  def Update(self, c):
    global_schedulers = dict((s.name, s) for s in c['schedulers']
                             if s.name.startswith('global_'))
    assert not (set(global_schedulers) & set(self._schedulers))

    for builder in self._builders:
      # Update the schedulers with the builder.
      schedulers = builder['schedulers']
      if schedulers:
        for scheduler in schedulers:
          if scheduler in global_schedulers:
            global_schedulers[scheduler].builderNames.append(builder['name'])
          else:
            self._schedulers[scheduler]['builders'].append(builder['name'])

      # Construct the category.
      categories = []
      if builder.get('category', None):
        categories.append(builder['category'])
      if builder.get('gatekeeper', None):
        categories.extend(builder['gatekeeper'].split('|'))
      category = '|'.join(categories)

      # Append the builder to the list.
      new_builder = {'name': builder['name'],
                     'factory': self._factories[builder['factory']],
                     'category': category,
                     'auto_reboot': builder['auto_reboot']}
      if builder['builddir']:
        new_builder['builddir'] = builder['builddir']
      if builder['slavebuilddir']:
        new_builder['slavebuilddir'] = builder['slavebuilddir']
      c['builders'].append(new_builder)

    # Process the main schedulers.
    for s_name in self._schedulers:
      scheduler = self._schedulers[s_name]
      if scheduler['type'] == 'Scheduler':
        instance = Scheduler(name=s_name,
                             branch=scheduler['branch'],
                             treeStableTimer=scheduler['treeStableTimer'],
                             builderNames=scheduler['builders'],
                             categories=scheduler['categories'])
        scheduler['instance'] = instance
        c['schedulers'].append(instance)
      elif scheduler['type'] == 'URLScheduler':
        ident = str(uuid.uuid4())
        c['change_source'].append(
          URLPoller(changeurl=scheduler['url'],
                    pollInterval=scheduler['pollInterval'],
                    category=ident,
                    include_revision=scheduler['include_revision']))
        instance = Scheduler(name=s_name,
                             change_filter=ChangeFilter(category=ident),
                             builderNames=scheduler['builders'])
        scheduler['instance'] = instance
        c['schedulers'].append(instance)

    # Process the dependent schedulers.
    for s_name in self._schedulers:
      scheduler = self._schedulers[s_name]
      if scheduler['type'] == 'Dependent':
        c['schedulers'].append(
            Dependent(s_name,
                      self._schedulers[scheduler['parent']]['instance'],
                      scheduler['builders']))

    # Process the triggerable schedulers.
    for s_name in self._schedulers:
      scheduler = self._schedulers[s_name]
      if scheduler['type'] == 'Triggerable':
        c['schedulers'].append(Triggerable(s_name,
                                           scheduler['builders']))

    # Process the periodic schedulers.
    for s_name in self._schedulers:
      scheduler = self._schedulers[s_name]
      if scheduler['type'] == 'Periodic':
        c['schedulers'].append(
            Periodic(s_name,
                     periodicBuildTimer=scheduler['periodicBuildTimer'],
                     builderNames=scheduler['builders']))

    # Process the nightly schedulers.
    for s_name in self._schedulers:
      scheduler = self._schedulers[s_name]
      if scheduler['type'] == 'Nightly':
        c['schedulers'].append(Nightly(s_name,
                                       branch=scheduler['branch'],
                                       hour=scheduler['hour'],
                                       builderNames=scheduler['builders']))
예제 #13
0
 def __init__(self, name, project, builderNames, periodicBuildTimer,
              branch=None):
     Periodic.__init__(self,name,builderNames,periodicBuildTimer,branch)
     self.project = project
     self.finishedWatchers = []