| OLD | NEW |
| 1 # -*- python -*- | 1 # -*- python -*- |
| 2 # ex: set syntax=python: | 2 # ex: set syntax=python: |
| 3 | 3 |
| 4 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 4 # Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 5 # Use of this source code is governed by a BSD-style license that can be | 5 # Use of this source code is governed by a BSD-style license that can be |
| 6 # found in the LICENSE file. | 6 # found in the LICENSE file. |
| 7 | 7 |
| 8 # This is the buildmaster config file for the 'chromeos' bot. It must | 8 # This is the buildmaster config file for the 'chromeos' bot. It must |
| 9 # be installed as 'master.cfg' in your buildmaster's base directory | 9 # be installed as 'master.cfg' in your buildmaster's base directory |
| 10 # (although the filename can be changed with the --basedir option to | 10 # (although the filename can be changed with the --basedir option to |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 TREE_GATE_KEEPER = ActiveMaster.is_production_host | 35 TREE_GATE_KEEPER = ActiveMaster.is_production_host |
| 36 | 36 |
| 37 # This is the dictionary that the buildmaster pays attention to. We also use | 37 # This is the dictionary that the buildmaster pays attention to. We also use |
| 38 # a shorter alias to save typing. | 38 # a shorter alias to save typing. |
| 39 c = BuildmasterConfig = {} | 39 c = BuildmasterConfig = {} |
| 40 | 40 |
| 41 # This is a dictionary that maps waterfall dashboard names to cbuildbot_configs. | 41 # This is a dictionary that maps waterfall dashboard names to cbuildbot_configs. |
| 42 # In order to add a new dict, you must edit this first. | 42 # In order to add a new dict, you must edit this first. |
| 43 _NAME_CONFIG_DICT = { | 43 _NAME_CONFIG_DICT = { |
| 44 'x86 generic PFQ': 'x86-generic-pre-flight-queue', | 44 'x86 generic PFQ': 'x86-generic-pre-flight-queue', |
| 45 'x86 generic commit queue': 'x86-generic-commit-queue', | |
| 46 'arm generic PFQ': 'arm-generic-bin', | 45 'arm generic PFQ': 'arm-generic-bin', |
| 47 'tegra2 PFQ': 'arm-tegra2-bin', | 46 'tegra2 PFQ': 'arm-tegra2-bin', |
| 47 'x86 generic commit queue': 'x86-generic-commit-queue', |
| 48 'arm generic commit queue': 'arm-generic-commit-queue', |
| 49 'tegra2 commit queue': 'arm-tegra2-commit-queue', |
| 48 'x86 generic full': 'x86-generic-full', | 50 'x86 generic full': 'x86-generic-full', |
| 49 'arm generic full': 'arm-generic-full', | 51 'arm generic full': 'arm-generic-full', |
| 50 'tegra2 full': 'arm-tegra2-full', | 52 'tegra2 full': 'arm-tegra2-full', |
| 51 'tegra2 seaboard full': 'arm-tegra2-seaboard-full', | 53 'tegra2 seaboard full': 'arm-tegra2-seaboard-full', |
| 52 'x86 pineview full': 'x86-pineview-full', | 54 'x86 pineview full': 'x86-pineview-full', |
| 53 'amd64 corei7 full': 'amd64-corei7-full', | 55 'amd64 corei7 full': 'amd64-corei7-full', |
| 54 'amd64 generic full': 'amd64-generic-full', | 56 'amd64 generic full': 'amd64-generic-full', |
| 55 'x86 generic chrome PFQ': 'x86-generic-chrome-pre-flight-queue', | 57 'x86 generic chrome PFQ': 'x86-generic-chrome-pre-flight-queue', |
| 56 'arm generic chrome PFQ': 'arm-generic-chrome-pre-flight-queue', | 58 'arm generic chrome PFQ': 'arm-generic-chrome-pre-flight-queue', |
| 57 'tegra2 chrome PFQ': 'arm-tegra2-chrome-pre-flight-queue', | 59 'tegra2 chrome PFQ': 'arm-tegra2-chrome-pre-flight-queue', |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 # Renamed 'src' to 'master' for git_buildbot.py | 100 # Renamed 'src' to 'master' for git_buildbot.py |
| 99 branch='master', | 101 branch='master', |
| 100 treeStableTimer=0, | 102 treeStableTimer=0, |
| 101 builderNames=[ | 103 builderNames=[ |
| 102 'chromiumos sdk', | 104 'chromiumos sdk', |
| 103 ]) | 105 ]) |
| 104 | 106 |
| 105 s_refresh_packages = Periodic( | 107 s_refresh_packages = Periodic( |
| 106 name='refresh_pkgs_scheduler', | 108 name='refresh_pkgs_scheduler', |
| 107 branch='master', | 109 branch='master', |
| 108 periodicBuildTimer=24*60*60, # 1 day | 110 periodicBuildTimer=24 * 60 * 60, # 1 day |
| 109 builderNames=[ | 111 builderNames=[ |
| 110 'refresh packages', | 112 'refresh packages', |
| 111 ]) | 113 ]) |
| 112 | 114 |
| 113 s_cq = Periodic( | 115 s_cq = Periodic( |
| 114 name='commit_queue_scheduler', | 116 name='commit_queue_scheduler', |
| 115 branch='master', | 117 branch='master', |
| 116 periodicBuildTimer=5*60, # 5 minutes | 118 periodicBuildTimer=5 * 60, # 5 minutes |
| 117 builderNames=[ | 119 builderNames=[ |
| 118 'x86 generic commit queue', | 120 'x86 generic commit queue', |
| 119 ]) | 121 ]) |
| 120 | 122 |
| 121 s_asan = Scheduler( | 123 s_asan = Scheduler( |
| 122 name='x86_generic_asan_scheduler', | 124 name='x86_generic_asan_scheduler', |
| 123 branch='master', | 125 branch='master', |
| 124 treeStableTimer=0, | 126 treeStableTimer=0, |
| 125 builderNames=[ | 127 builderNames=[ |
| 126 'x86 generic ASAN', | 128 'x86 generic ASAN', |
| (...skipping 28 matching lines...) Expand all Loading... |
| 155 | 157 |
| 156 # Triggerable for other pre-flight-queue slaves. We use triggers so that | 158 # Triggerable for other pre-flight-queue slaves. We use triggers so that |
| 157 # the other slaves are guaranteed to use the same sourcestamp as the main. | 159 # the other slaves are guaranteed to use the same sourcestamp as the main. |
| 158 s_pre_flight_queue_slaves = Triggerable( | 160 s_pre_flight_queue_slaves = Triggerable( |
| 159 name='pre_flight_queue_slaves', | 161 name='pre_flight_queue_slaves', |
| 160 builderNames=[ | 162 builderNames=[ |
| 161 'arm generic PFQ', | 163 'arm generic PFQ', |
| 162 'tegra2 PFQ', | 164 'tegra2 PFQ', |
| 163 ]) | 165 ]) |
| 164 | 166 |
| 167 # Triggerable for other commit-queue slaves. We use triggers so that |
| 168 # the other slaves are guaranteed to use the same sourcestamp as the main. |
| 169 s_cq_slaves = Triggerable( |
| 170 name='commit_queue_slaves', |
| 171 builderNames=[ |
| 172 'arm generic commit queue', |
| 173 'tegra2 commit queue', |
| 174 ]) |
| 175 |
| 165 # Only trigger fulls when we have a newly revved build. | 176 # Only trigger fulls when we have a newly revved build. |
| 166 s_chromeos_full = Dependent( | 177 s_chromeos_full = Dependent( |
| 167 name='chromeos', | 178 name='chromeos', |
| 168 upstream=s_pre_flight_queue, | 179 upstream=s_pre_flight_queue, |
| 169 builderNames=[ | 180 builderNames=[ |
| 170 'arm generic full', | 181 'arm generic full', |
| 171 'tegra2 full', | 182 'tegra2 full', |
| 172 'tegra2 seaboard full', | 183 'tegra2 seaboard full', |
| 173 'x86 generic full', | 184 'x86 generic full', |
| 174 'x86 pineview full', | 185 'x86 pineview full', |
| 175 'amd64 generic full', | 186 'amd64 generic full', |
| 176 'amd64 corei7 full', | 187 'amd64 corei7 full', |
| 177 ]) | 188 ]) |
| 178 | 189 |
| 179 c['schedulers'] = [ | 190 c['schedulers'] = [ |
| 180 s_pre_flight_queue, s_pre_flight_queue_slaves, | 191 s_pre_flight_queue, s_pre_flight_queue_slaves, |
| 181 s_chrome_pre_flight_queue, s_chrome_pre_flight_queue_slaves, | 192 s_chrome_pre_flight_queue, s_chrome_pre_flight_queue_slaves, |
| 182 s_chromeos_full, s_chromiumos_sdk, | 193 s_chromeos_full, s_chromiumos_sdk, |
| 183 s_refresh_packages, s_cq, s_asan, | 194 s_refresh_packages, s_cq, s_cq_slaves, s_asan, |
| 184 ] | 195 ] |
| 185 | 196 |
| 186 BUILDERS = [] | 197 BUILDERS = [] |
| 187 | 198 |
| 188 # ---------------------------------------------------------------------------- | 199 # ---------------------------------------------------------------------------- |
| 189 # BUILDER DEFINITIONS | 200 # BUILDER DEFINITIONS |
| 190 | 201 |
| 191 # The 'builders' list defines the Builders. Each one is configured with a | 202 # The 'builders' list defines the Builders. Each one is configured with a |
| 192 # dictionary, using the following keys: | 203 # dictionary, using the following keys: |
| 193 # name (required): the name used to describe this bilder | 204 # name (required): the name used to describe this bilder |
| 194 # slavename (required): which slave to use, must appear in c['slaves'] | 205 # slavename (required): which slave to use, must appear in c['slaves'] |
| 195 # builddir (required): which subdirectory to run the builder in | 206 # builddir (required): which subdirectory to run the builder in |
| 196 # factory (required): a BuildFactory to define how the build is run | 207 # factory (required): a BuildFactory to define how the build is run |
| 197 # category (optional): it is not used in the normal 'buildbot' meaning. It is | 208 # category (optional): it is not used in the normal 'buildbot' meaning. It is |
| 198 # used by gatekeeper to determine which steps it should | 209 # used by gatekeeper to determine which steps it should |
| 199 # look for to close the tree. | 210 # look for to close the tree. |
| 200 # | 211 # |
| 201 | 212 |
| 202 # Cros helper functions to build builders and factories. | 213 # Cros helper functions to build builders and factories. |
| 203 | 214 |
| 204 def GetCBuildbotFactory(config, is_master=False): | 215 def GetCBuildbotFactory(config, trigger_name=None): |
| 205 """Returns cros buildbot factories.""" | 216 """Returns cros buildbot factories.""" |
| 206 return chromeos_factory.CbuildbotFactory( | 217 return chromeos_factory.CbuildbotFactory( |
| 207 params=config, dry_run=not ActiveMaster.is_production_host, | 218 params=config, dry_run=not ActiveMaster.is_production_host, |
| 208 crostools_repo=None, | 219 crostools_repo=None, |
| 209 is_master=is_master).get_factory() | 220 trigger_name=trigger_name).get_factory() |
| 210 | 221 |
| 211 def GetChromeCBuildbotFactory(config, is_master=False): | 222 def AddBuilderDefinition(display_name, closer=True, trigger_name=None): |
| 212 """Returns buildbot factories specifically for Chrome pfqs.""" | |
| 213 return chromeos_factory.ChromeCbuildbotFactory( | |
| 214 params=config, chrome_rev_stages=[], | |
| 215 dry_run=not ActiveMaster.is_production_host, | |
| 216 crostools_repo=None, | |
| 217 is_master=is_master).get_factory() | |
| 218 | |
| 219 def AddBuilderDefinition(display_name, closer=True, chrome_factory=False, | |
| 220 is_master=False): | |
| 221 """Adds a builder definition given by the args. | 223 """Adds a builder definition given by the args. |
| 222 | 224 |
| 223 Args: | 225 Args: |
| 224 display_name: Name displayed on buildbot waterfall. | 226 display_name: Name displayed on buildbot waterfall. |
| 225 closer: Do we close the tree based on this build's failure. | 227 closer: Do we close the tree based on this build's failure. |
| 226 chrome_factory: Use the chrome factory rather than normal factory. | 228 trigger_name: Name of the triggerable scheduler to fire for pfqs/commitq's. |
| 227 is_master: One set per pfq type. | |
| 228 """ | 229 """ |
| 229 def GetConfig(): | 230 def GetConfig(): |
| 230 return _NAME_CONFIG_DICT.get(display_name, display_name) | 231 return _NAME_CONFIG_DICT.get(display_name, display_name) |
| 231 | 232 |
| 232 category = '1release full|info' | 233 category = '1release full|info' |
| 233 if closer: category = '1release full|closer' | 234 if closer: category = '1release full|closer' |
| 234 build_dir = display_name.replace(' ', '-') | 235 build_dir = display_name.replace(' ', '-') |
| 235 if chrome_factory: | 236 factory = GetCBuildbotFactory(GetConfig(), trigger_name) |
| 236 factory = GetChromeCBuildbotFactory(GetConfig(), is_master) | |
| 237 else: | |
| 238 factory = GetCBuildbotFactory(GetConfig(), is_master) | |
| 239 | 237 |
| 240 BUILDERS.append({ | 238 BUILDERS.append({ |
| 241 'name': display_name, | 239 'name': display_name, |
| 242 'builddir': build_dir, | 240 'builddir': build_dir, |
| 243 'factory': factory, | 241 'factory': factory, |
| 244 'category': category, | 242 'category': category, |
| 245 }) | 243 }) |
| 246 | 244 |
| 247 # Pre Flight Queues | 245 # Pre Flight Queues |
| 248 AddBuilderDefinition('x86 generic PFQ', is_master=True) | 246 AddBuilderDefinition('x86 generic PFQ', trigger_name='pre_flight_queue_slaves') |
| 249 AddBuilderDefinition('arm generic PFQ') | 247 AddBuilderDefinition('arm generic PFQ') |
| 250 AddBuilderDefinition('tegra2 PFQ') | 248 AddBuilderDefinition('tegra2 PFQ') |
| 251 | 249 |
| 252 # Full Builders | 250 # Full Builders |
| 253 AddBuilderDefinition('x86 generic full') | 251 AddBuilderDefinition('x86 generic full') |
| 254 AddBuilderDefinition('arm generic full') | 252 AddBuilderDefinition('arm generic full') |
| 255 AddBuilderDefinition('tegra2 full') | 253 AddBuilderDefinition('tegra2 full') |
| 256 AddBuilderDefinition('tegra2 seaboard full') | 254 AddBuilderDefinition('tegra2 seaboard full') |
| 257 AddBuilderDefinition('x86 pineview full') | 255 AddBuilderDefinition('x86 pineview full') |
| 258 AddBuilderDefinition('amd64 corei7 full') | 256 AddBuilderDefinition('amd64 corei7 full') |
| 259 | 257 |
| 260 # Chrome pre-flight builds. | 258 # Chrome pre-flight builds. |
| 261 AddBuilderDefinition('x86 generic chrome PFQ', chrome_factory=True, | 259 AddBuilderDefinition('x86 generic chrome PFQ', |
| 262 is_master=True) | 260 trigger_name='chrome_pre_flight_queue_slaves') |
| 263 AddBuilderDefinition('arm generic chrome PFQ', chrome_factory=True,) | 261 AddBuilderDefinition('arm generic chrome PFQ') |
| 264 AddBuilderDefinition('tegra2 chrome PFQ', chrome_factory=True,) | 262 AddBuilderDefinition('tegra2 chrome PFQ') |
| 265 | 263 |
| 266 AddBuilderDefinition('chromiumos sdk',) | 264 AddBuilderDefinition('chromiumos sdk',) |
| 267 | 265 |
| 268 ####### Non Closer build defs. | 266 ####### Non Closer build defs. |
| 269 | 267 |
| 270 AddBuilderDefinition('x86 generic commit queue', closer=False) | 268 AddBuilderDefinition('x86 generic commit queue', |
| 269 trigger_name='commit_queue_slaves', closer=False) |
| 270 AddBuilderDefinition('arm generic commit queue', closer=False) |
| 271 AddBuilderDefinition('tegra2 commit queue', closer=False) |
| 271 AddBuilderDefinition('refresh packages', closer=False) | 272 AddBuilderDefinition('refresh packages', closer=False) |
| 272 AddBuilderDefinition('x86 generic ASAN', closer=False) | 273 AddBuilderDefinition('x86 generic ASAN', closer=False) |
| 273 AddBuilderDefinition('amd64 generic full', closer=False) | 274 AddBuilderDefinition('amd64 generic full', closer=False) |
| 274 | 275 |
| 275 c['builders'] = BUILDERS | 276 c['builders'] = BUILDERS |
| 276 | 277 |
| 277 | 278 |
| 278 ####### BUILDSLAVES | 279 ####### BUILDSLAVES |
| 279 | 280 |
| 280 # the 'slaves' list defines the set of allowable buildslaves. Each element is a | 281 # the 'slaves' list defines the set of allowable buildslaves. Each element is a |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 365 extraRecipients=['troopers@chromium.org'], | 366 extraRecipients=['troopers@chromium.org'], |
| 366 sheriffs=['sheriff'], | 367 sheriffs=['sheriff'], |
| 367 lookup=master_utils.FilterDomain(), | 368 lookup=master_utils.FilterDomain(), |
| 368 use_getname=True)) | 369 use_getname=True)) |
| 369 | 370 |
| 370 | 371 |
| 371 ####### PROJECT IDENTITY | 372 ####### PROJECT IDENTITY |
| 372 | 373 |
| 373 # Buildbot master url: | 374 # Buildbot master url: |
| 374 c['buildbotURL'] = 'http://build.chromium.org/buildbot/chromiumos/' | 375 c['buildbotURL'] = 'http://build.chromium.org/buildbot/chromiumos/' |
| OLD | NEW |