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 |