| OLD | NEW |
| (Empty) |
| 1 # Copyright (c) 2014 The Chromium Authors. All rights reserved. | |
| 2 # Use of this source code is governed by a BSD-style license that can be | |
| 3 # found in the LICENSE file. | |
| 4 | |
| 5 """BuildFactory for a builder which recaptures the buildbot SKP repo.""" | |
| 6 | |
| 7 | |
| 8 from buildbot.process.properties import WithProperties | |
| 9 from skia_master_scripts import canary_factory | |
| 10 | |
| 11 import builder_name_schema | |
| 12 | |
| 13 | |
| 14 class RecreateSKPsFactory(canary_factory.CanaryFactory): | |
| 15 """Subclass of CanaryFactory which builds Chrome with LKGR Skia, builds Skia | |
| 16 tools and then runs the webpages_playback.py scripts to recreate all buildbot | |
| 17 SKPs.""" | |
| 18 | |
| 19 def __init__(self, **kwargs): | |
| 20 """Initialize the RecreateSKPsFactory.""" | |
| 21 canary_factory.CanaryFactory.__init__(self, | |
| 22 path_to_skia=['third_party', 'skia'], | |
| 23 flavor='chrome', | |
| 24 build_subdir='src', | |
| 25 build_targets=['chrome'], | |
| 26 **kwargs) | |
| 27 | |
| 28 def Build(self, role=builder_name_schema.BUILDER_ROLE_HOUSEKEEPER, | |
| 29 clobber=None): | |
| 30 """Build and return the complete BuildFactory. | |
| 31 | |
| 32 role: string; type of builder | |
| 33 clobber: boolean; indicating whether we should clean before building | |
| 34 """ | |
| 35 if role != builder_name_schema.BUILDER_ROLE_HOUSEKEEPER: | |
| 36 raise Exception('Canary builders must have role "%s"' % | |
| 37 builder_name_schema.BUILDER_ROLE_HOUSEKEEPER) | |
| 38 | |
| 39 # Build Chromium LKGR + Skia ToT. | |
| 40 self.UpdateSteps() | |
| 41 self.Compile(retry_without_werr_on_failure=True) | |
| 42 | |
| 43 # Invoke the do_skps_capture buildstep. | |
| 44 skia_slave_scripts_path = self.TargetPath.join( | |
| 45 '..', '..', '..', '..', '..', '..', 'slave', | |
| 46 'skia_slave_scripts') | |
| 47 self.AddSlaveScript( | |
| 48 script=self.TargetPath.join(skia_slave_scripts_path, | |
| 49 'do_skps_capture.py'), | |
| 50 description='RecreateSKPs', | |
| 51 args=['--page_sets', 'all', | |
| 52 '--browser_executable', self.TargetPath.join( | |
| 53 'out', 'Debug', 'chrome')], | |
| 54 timeout=None, | |
| 55 halt_on_failure=True, | |
| 56 workdir=self._workdir, | |
| 57 get_props_from_stdout={'skp_version': r'SKP_VERSION=(\d+)'}) | |
| 58 | |
| 59 self.AddSlaveScript( | |
| 60 script=self.TargetPath.join(skia_slave_scripts_path, | |
| 61 'update_skp_version.py'), | |
| 62 description='UpdateSkpVersion', | |
| 63 workdir=self._workdir, | |
| 64 args=['--skp_version', WithProperties('%(skp_version)s')] | |
| 65 ) | |
| 66 | |
| 67 self.Validate() # Run the factory configuration test. | |
| 68 return self | |
| OLD | NEW |