Index: master/skia_master_scripts/commands.py |
diff --git a/master/skia_master_scripts/commands.py b/master/skia_master_scripts/commands.py |
deleted file mode 100644 |
index 9728a42cebbcb4a34432912225e7ea02a829d42b..0000000000000000000000000000000000000000 |
--- a/master/skia_master_scripts/commands.py |
+++ /dev/null |
@@ -1,124 +0,0 @@ |
-# 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. |
- |
-"""Set of utilities to add commands to a buildbot factory. |
- |
-This is based on commands.py and adds skia-specific commands. |
- |
-TODO(borenet): Do we need this file at all? Can't we just do everything |
-in factory.py? (See https://codereview.chromium.org/248053003/ ) |
-""" |
- |
- |
-from buildbot.process.properties import WithProperties |
-from master.factory import commands |
-import skia_build_step |
- |
- |
-class SkiaCommands(commands.FactoryCommands): |
- |
- def __init__(self, factory, configuration, workdir, target_arch, |
- default_timeout, target_platform, environment_variables): |
- """Instantiates subclass of FactoryCommands appropriate for Skia. |
- |
- factory: a BaseFactory |
- configuration: 'Debug' or 'Release' |
- workdir: string indicating path within slave directory |
- target_arch: string such as 'x64' |
- default_timeout: default timeout for each command, in seconds |
- target_platform: a string such as skia_factory.TARGET_PLATFORM_LINUX, |
- to be passed into FactoryCommands.__init__() |
- environment_variables: dictionary of environment variables that should |
- be passed to all commands |
- """ |
- commands.FactoryCommands.__init__( |
- self, factory=factory, target=configuration, |
- build_dir='', target_platform=target_platform) |
- # Store some parameters that the subclass may want to use later. |
- self.default_timeout = default_timeout |
- self.environment_variables = environment_variables |
- self.factory = factory |
- self.target_arch = target_arch |
- self.workdir = workdir |
- # TODO(epoger): It would be better for this path to be specified by |
- # an environment variable or some such, so that it is not dependent on the |
- # path from CWD to slave/skia_slave_scripts... but for now, this will do. |
- self._local_slave_script_dir = self.PathJoin( |
- '..', '..', '..', '..', '..', '..', 'slave', 'skia_slave_scripts') |
- |
- # TODO(borenet): Can kwargs be used to simplify this function declaration? |
- def AddSlaveScript(self, script, args, description, timeout=None, |
- halt_on_failure=False, is_upload_step=False, |
- is_rebaseline_step=False, get_props_from_stdout=None, |
- workdir=None, do_step_if=None, |
- always_run=False, flunk_on_failure=True, |
- exception_on_failure=False): |
- """Run a slave-side Python script as its own build step.""" |
- if workdir: |
- path_to_script = script |
- use_workdir = workdir |
- else: |
- path_to_script = self.PathJoin(self._local_slave_script_dir, script) |
- use_workdir = self.workdir |
- self.AddRunCommand(command=['python', path_to_script] + args, |
- description=description, timeout=timeout, |
- halt_on_failure=halt_on_failure, |
- is_upload_step=is_upload_step, |
- is_rebaseline_step=is_rebaseline_step, |
- get_props_from_stdout=get_props_from_stdout, |
- workdir=use_workdir, |
- do_step_if=do_step_if, |
- always_run=always_run, |
- flunk_on_failure=flunk_on_failure, |
- exception_on_failure=exception_on_failure) |
- |
- # TODO(borenet): Can kwargs be used to simplify this function declaration? |
- def AddRunCommand(self, command, description='Run', timeout=None, |
- halt_on_failure=False, is_upload_step=False, |
- is_rebaseline_step=False, get_props_from_stdout=None, |
- workdir=None, do_step_if=None, always_run=False, |
- flunk_on_failure=True, exception_on_failure=False): |
- """Runs an arbitrary command, perhaps a binary we built.""" |
- if description not in self.factory.dontskipsteps: |
- if description in self.factory.skipsteps: |
- return |
- |
- # If a developer has marked the step as dontskip, make sure it will run. |
- if description in self.factory.dontskipsteps: |
- do_step_if = True |
- |
- if not timeout: |
- timeout = self.default_timeout |
- self.factory.addStep(skia_build_step.SkiaBuildStep, |
- is_upload_step=is_upload_step, |
- is_rebaseline_step=is_rebaseline_step, |
- get_props_from_stdout=get_props_from_stdout, |
- description=description, timeout=timeout, |
- command=command, workdir=workdir or self.workdir, |
- env=self.environment_variables, |
- haltOnFailure=halt_on_failure, |
- doStepIf=do_step_if or skia_build_step.ShouldDoStep, |
- alwaysRun=always_run, |
- flunkOnFailure=flunk_on_failure, |
- exception_on_failure=exception_on_failure, |
- hideStepIf=lambda s: s.isSkipped()) |
- |
- # TODO(borenet): Can kwargs be used to simplify this function declaration? |
- def AddRunCommandList(self, command_list, description='Run', timeout=None, |
- halt_on_failure=False, is_upload_step=False, |
- is_rebaseline_step=False): |
- """Runs a list of arbitrary commands.""" |
- # TODO(epoger): Change this so that build-step output shows each command |
- # in the list separately--that will be a lot easier to follow. |
- # |
- # TODO(epoger): For now, this wraps the total command with WithProperties() |
- # because *some* callers need it, and we can't use the string.join() command |
- # to concatenate strings that have already been wrapped with |
- # WithProperties(). Once I figure out how to make the build-step output |
- # show each command separately, maybe I can remove this wrapper. |
- self.AddRunCommand(command=WithProperties(' && '.join(command_list)), |
- description=description, timeout=timeout, |
- halt_on_failure=halt_on_failure, |
- is_upload_step=is_upload_step, |
- is_rebaseline_step=is_rebaseline_step) |