| # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Utility class to build the Skia master BuildFactory's for HouseKeeping bots. |
| |
| Overrides SkiaFactory with Per-commit HouseKeeping steps.""" |
| |
| |
| import builder_name_schema |
| |
| from skia_master_scripts import factory as skia_factory |
| |
| |
| # TODO: The HouseKeepingPerCommitFactory uses shell scripts, so it would break |
| # on Windows. For now, we reply on the fact that the housekeeping bot always |
| # runs on a Linux machine. |
| class HouseKeepingPerCommitFactory(skia_factory.SkiaFactory): |
| """Overrides for HouseKeeping per-commit builds.""" |
| def __init__(self, **kwargs): |
| skia_factory.SkiaFactory.__init__(self, build_targets=['tools', 'gm', 'dm'], |
| **kwargs) |
| |
| def Build(self, role=builder_name_schema.BUILDER_ROLE_HOUSEKEEPER, |
| clobber=None): |
| """Build and return the complete BuildFactory. |
| |
| role: string; type of builder. |
| clobber: boolean indicating whether we should clean before building |
| """ |
| if role != builder_name_schema.BUILDER_ROLE_HOUSEKEEPER: |
| raise Exception('Housekeeping builders must have role "%s"' % |
| builder_name_schema.BUILDER_ROLE_HOUSEKEEPER) |
| |
| self.UpdateSteps() |
| self.Compile(clobber) |
| |
| # TODO(borenet): Move these to a self-tests bot (http://skbug.com/2144) |
| self.AddSlaveScript(script='run_tool_self_tests.py', |
| description='RunToolSelfTests') |
| self.AddSlaveScript(script='run_gm_self_tests.py', |
| description='RunGmSelfTests') |
| |
| # Run unittests for Anroid platform_tools |
| self.AddSlaveScript(script='run_android_platform_self_tests.py', |
| description='RunAndroidPlatformSelfTests') |
| |
| # Check for static initializers. |
| self.AddSlaveScript(script='detect_static_initializers.py', |
| description='DetectStaticInitializers') |
| |
| if not self._do_patch_step: # Do not run Doxygen steps if try job. |
| self.AddSlaveScript(script='generate_doxygen.py', |
| description='GenerateDoxygen') |
| self.AddSlaveScript(script='upload_doxygen.py', |
| description='UploadDoxygen', |
| is_upload_render_step=True) |
| |
| self.AddSlaveScript(script='run_buildbot_self_tests.py', |
| description='BuildbotSelfTests') |
| self.AddSlaveScript(script='check_compile_times.py', |
| description='CheckCompileTimes') |
| self.Validate() |
| return self |