blob: 3b138497a6d51b4761a43ce05af78ec88bab998a [file] [log] [blame]
# 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