def buildSetFinished(self, bss): if not self.running: return ss = bss.getSourceStamp() for w in self.finishedWatchers: w(ss) Periodic.buildSetFinished(self,bss)
def __init__(self, name, project, builderNames, periodicBuildTimer, branch=None): Periodic.__init__(self, name, builderNames, periodicBuildTimer, branch) self.project = project self.finishedWatchers = []
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])
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])
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]
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])
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 ])
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)
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']))
def __init__(self, name, project, builderNames, periodicBuildTimer, branch=None): Periodic.__init__(self,name,builderNames,periodicBuildTimer,branch) self.project = project self.finishedWatchers = []