Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Side by Side Diff: master/skia_master_scripts/commands.py

Issue 316333002: display "latest GM failures" link in its own line under build step Base URL: https://skia.googlesource.com/buildbot.git@master
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Set of utilities to add commands to a buildbot factory. 5 """Set of utilities to add commands to a buildbot factory.
6 6
7 This is based on commands.py and adds skia-specific commands. 7 This is based on commands.py and adds skia-specific commands.
8 8
9 TODO(borenet): Do we need this file at all? Can't we just do everything 9 TODO(borenet): Do we need this file at all? Can't we just do everything
10 in factory.py? (See https://codereview.chromium.org/248053003/ ) 10 in factory.py? (See https://codereview.chromium.org/248053003/ )
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 '--svn_username_file', svn_username_file, 63 '--svn_username_file', svn_username_file,
64 ] 64 ]
65 self.AddSlaveScript(script=self.PathJoin('utils', 'merge_into_svn.py'), 65 self.AddSlaveScript(script=self.PathJoin('utils', 'merge_into_svn.py'),
66 args=args, description=description, timeout=timeout, 66 args=args, description=description, timeout=timeout,
67 is_upload_step=True, 67 is_upload_step=True,
68 is_rebaseline_step=is_rebaseline_step) 68 is_rebaseline_step=is_rebaseline_step)
69 69
70 # TODO(borenet): Can kwargs be used to simplify this function declaration? 70 # TODO(borenet): Can kwargs be used to simplify this function declaration?
71 def AddSlaveScript(self, script, args, description, timeout=None, 71 def AddSlaveScript(self, script, args, description, timeout=None,
72 halt_on_failure=False, is_upload_step=False, 72 halt_on_failure=False, is_upload_step=False,
73 is_rebaseline_step=False, get_props_from_stdout=None, 73 is_rebaseline_step=False,
74 get_links_from_stdout=None, get_props_from_stdout=None,
74 workdir=None, do_step_if=None, 75 workdir=None, do_step_if=None,
75 always_run=False, flunk_on_failure=True, 76 always_run=False, flunk_on_failure=True,
76 exception_on_failure=False): 77 exception_on_failure=False):
77 """Run a slave-side Python script as its own build step.""" 78 """Run a slave-side Python script as its own build step."""
78 if workdir: 79 if workdir:
79 path_to_script = script 80 path_to_script = script
80 use_workdir = workdir 81 use_workdir = workdir
81 else: 82 else:
82 path_to_script = self.PathJoin(self._local_slave_script_dir, script) 83 path_to_script = self.PathJoin(self._local_slave_script_dir, script)
83 use_workdir = self.workdir 84 use_workdir = self.workdir
84 self.AddRunCommand(command=['python', path_to_script] + args, 85 self.AddRunCommand(command=['python', path_to_script] + args,
85 description=description, timeout=timeout, 86 description=description, timeout=timeout,
86 halt_on_failure=halt_on_failure, 87 halt_on_failure=halt_on_failure,
87 is_upload_step=is_upload_step, 88 is_upload_step=is_upload_step,
88 is_rebaseline_step=is_rebaseline_step, 89 is_rebaseline_step=is_rebaseline_step,
90 get_links_from_stdout=get_links_from_stdout,
89 get_props_from_stdout=get_props_from_stdout, 91 get_props_from_stdout=get_props_from_stdout,
90 workdir=use_workdir, 92 workdir=use_workdir,
91 do_step_if=do_step_if, 93 do_step_if=do_step_if,
92 always_run=always_run, 94 always_run=always_run,
93 flunk_on_failure=flunk_on_failure, 95 flunk_on_failure=flunk_on_failure,
94 exception_on_failure=exception_on_failure) 96 exception_on_failure=exception_on_failure)
95 97
96 # TODO(borenet): Can kwargs be used to simplify this function declaration? 98 # TODO(borenet): Can kwargs be used to simplify this function declaration?
97 def AddRunCommand(self, command, description='Run', timeout=None, 99 def AddRunCommand(self, command, description='Run', timeout=None,
98 halt_on_failure=False, is_upload_step=False, 100 halt_on_failure=False, is_upload_step=False,
99 is_rebaseline_step=False, get_props_from_stdout=None, 101 is_rebaseline_step=False,
102 get_links_from_stdout=None, get_props_from_stdout=None,
100 workdir=None, do_step_if=None, always_run=False, 103 workdir=None, do_step_if=None, always_run=False,
101 flunk_on_failure=True, exception_on_failure=False): 104 flunk_on_failure=True, exception_on_failure=False):
102 """Runs an arbitrary command, perhaps a binary we built.""" 105 """Runs an arbitrary command, perhaps a binary we built."""
103 if description not in self.factory.dontskipsteps: 106 if description not in self.factory.dontskipsteps:
104 if description in self.factory.skipsteps: 107 if description in self.factory.skipsteps:
105 return 108 return
106 109
107 # If a developer has marked the step as dontskip, make sure it will run. 110 # If a developer has marked the step as dontskip, make sure it will run.
108 if description in self.factory.dontskipsteps: 111 if description in self.factory.dontskipsteps:
109 do_step_if = True 112 do_step_if = True
110 113
111 if not timeout: 114 if not timeout:
112 timeout = self.default_timeout 115 timeout = self.default_timeout
113 self.factory.addStep(skia_build_step.SkiaBuildStep, 116 self.factory.addStep(skia_build_step.SkiaBuildStep,
114 is_upload_step=is_upload_step, 117 is_upload_step=is_upload_step,
115 is_rebaseline_step=is_rebaseline_step, 118 is_rebaseline_step=is_rebaseline_step,
119 get_links_from_stdout=get_links_from_stdout,
116 get_props_from_stdout=get_props_from_stdout, 120 get_props_from_stdout=get_props_from_stdout,
117 description=description, timeout=timeout, 121 description=description, timeout=timeout,
118 command=command, workdir=workdir or self.workdir, 122 command=command, workdir=workdir or self.workdir,
119 env=self.environment_variables, 123 env=self.environment_variables,
120 haltOnFailure=halt_on_failure, 124 haltOnFailure=halt_on_failure,
121 doStepIf=do_step_if or skia_build_step.ShouldDoStep, 125 doStepIf=do_step_if or skia_build_step.ShouldDoStep,
122 alwaysRun=always_run, 126 alwaysRun=always_run,
123 flunkOnFailure=flunk_on_failure, 127 flunkOnFailure=flunk_on_failure,
124 exception_on_failure=exception_on_failure, 128 exception_on_failure=exception_on_failure,
125 hideStepIf=lambda s: s.isSkipped()) 129 hideStepIf=lambda s: s.isSkipped())
126 130
127 # TODO(borenet): Can kwargs be used to simplify this function declaration? 131 # TODO(borenet): Can kwargs be used to simplify this function declaration?
128 def AddRunCommandList(self, command_list, description='Run', timeout=None, 132 def AddRunCommandList(self, command_list, description='Run', timeout=None,
129 halt_on_failure=False, is_upload_step=False, 133 halt_on_failure=False, is_upload_step=False,
130 is_rebaseline_step=False): 134 is_rebaseline_step=False):
131 """Runs a list of arbitrary commands.""" 135 """Runs a list of arbitrary commands."""
132 # TODO(epoger): Change this so that build-step output shows each command 136 # TODO(epoger): Change this so that build-step output shows each command
133 # in the list separately--that will be a lot easier to follow. 137 # in the list separately--that will be a lot easier to follow.
134 # 138 #
135 # TODO(epoger): For now, this wraps the total command with WithProperties() 139 # TODO(epoger): For now, this wraps the total command with WithProperties()
136 # because *some* callers need it, and we can't use the string.join() command 140 # because *some* callers need it, and we can't use the string.join() command
137 # to concatenate strings that have already been wrapped with 141 # to concatenate strings that have already been wrapped with
138 # WithProperties(). Once I figure out how to make the build-step output 142 # WithProperties(). Once I figure out how to make the build-step output
139 # show each command separately, maybe I can remove this wrapper. 143 # show each command separately, maybe I can remove this wrapper.
140 self.AddRunCommand(command=WithProperties(' && '.join(command_list)), 144 self.AddRunCommand(command=WithProperties(' && '.join(command_list)),
141 description=description, timeout=timeout, 145 description=description, timeout=timeout,
142 halt_on_failure=halt_on_failure, 146 halt_on_failure=halt_on_failure,
143 is_upload_step=is_upload_step, 147 is_upload_step=is_upload_step,
144 is_rebaseline_step=is_rebaseline_step) 148 is_rebaseline_step=is_rebaseline_step)
OLDNEW
« no previous file with comments | « no previous file | master/skia_master_scripts/factory.py » ('j') | master/skia_master_scripts/factory.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698