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

Unified Diff: master/skia_master_scripts/factory.py

Issue 175523003: Raise Exception instead of failure when some steps fail. (Closed) Base URL: https://skia.googlesource.com/buildbot.git@master
Patch Set: Include ALL the factory config files Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « master/skia_master_scripts/commands.py ('k') | master/skia_master_scripts/skia_build_step.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: master/skia_master_scripts/factory.py
diff --git a/master/skia_master_scripts/factory.py b/master/skia_master_scripts/factory.py
index a5c78d433721d0fc658647cb4bbbca9f7f6ca064..f4b8479067aef3c69421a5c3fffde4759ffe852d 100644
--- a/master/skia_master_scripts/factory.py
+++ b/master/skia_master_scripts/factory.py
@@ -241,7 +241,7 @@ class SkiaFactory(BuildFactory):
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):
+ flunk_on_failure=True, exception_on_failure=False):
""" Add a BuildStep consisting of a python script.
script: which slave-side python script to run.
@@ -267,6 +267,11 @@ class SkiaFactory(BuildFactory):
previous step which had halt_on_failure has failed.
flunk_on_failure: boolean indicating whether the whole build fails if this
step fails.
+ exception_on_failure: boolean indicating whether to raise an exception if
+ this step fails. This causes the step to go purple instead of red, and
+ causes the build to stop. Should be used if the build step's failure is
+ typically transient or results from an infrastructure failure rather
+ than a code change.
"""
arguments = list(self._common_args)
if args:
@@ -283,7 +288,8 @@ class SkiaFactory(BuildFactory):
workdir=workdir,
do_step_if=do_step_if,
always_run=always_run,
- flunk_on_failure=flunk_on_failure)
+ flunk_on_failure=flunk_on_failure,
+ exception_on_failure=exception_on_failure)
def AddFlavoredSlaveScript(self, script, args=None, **kwargs):
""" Add a flavor-specific BuildStep.
@@ -433,23 +439,24 @@ class SkiaFactory(BuildFactory):
def Install(self):
""" Install the compiled executables. """
self.AddFlavoredSlaveScript(script='install.py', description='Install',
- halt_on_failure=True)
+ halt_on_failure=True, exception_on_failure=True)
def DownloadSKPs(self):
""" Download the SKPs. """
self.AddSlaveScript(script='download_skps.py', description='DownloadSKPs',
- halt_on_failure=True)
+ halt_on_failure=True, exception_on_failure=True)
def DownloadSKImageFiles(self):
""" Download image files for running skimage. """
self.AddSlaveScript(script='download_skimage_files.py',
description='DownloadSKImageFiles',
- halt_on_failure=True)
+ halt_on_failure=True, exception_on_failure=True)
def DownloadBaselines(self):
""" Download the GM baselines. """
self.AddSlaveScript(script='download_baselines.py',
- description='DownloadBaselines', halt_on_failure=True)
+ description='DownloadBaselines', halt_on_failure=True,
+ exception_on_failure=True)
def RunTests(self):
""" Run the unit tests. """
@@ -467,7 +474,8 @@ class SkiaFactory(BuildFactory):
def PreRender(self):
""" Step to run before the render steps. """
- self.AddFlavoredSlaveScript(script='prerender.py', description='PreRender')
+ self.AddFlavoredSlaveScript(script='prerender.py', description='PreRender',
+ exception_on_failure=True)
def RenderPictures(self):
""" Run the "render_pictures" tool to generate images from .skp's. """
@@ -482,19 +490,25 @@ class SkiaFactory(BuildFactory):
def PostRender(self):
""" Step to run after the render steps. """
self.AddFlavoredSlaveScript(script='postrender.py',
- description='PostRender')
+ description='PostRender',
+ exception_on_failure=True)
def PreBench(self):
""" Step to run before the benchmarking steps. """
- self.AddFlavoredSlaveScript(script='prebench.py', description='PreBench')
+ self.AddFlavoredSlaveScript(script='prebench.py',
+ description='PreBench',
+ exception_on_failure=True)
def PostBench(self):
""" Step to run after the benchmarking steps. """
- self.AddFlavoredSlaveScript(script='postbench.py', description='PostBench')
+ self.AddFlavoredSlaveScript(script='postbench.py',
+ description='PostBench',
+ exception_on_failure=True)
def CompareGMs(self):
"""Compare the actually-generated GM images to the checked-in baselines."""
- self.AddSlaveScript(script='compare_gms.py', description='CompareGMs',
+ self.AddSlaveScript(script='compare_gms.py',
+ description='CompareGMs',
is_rebaseline_step=True)
def CompareAndUploadWebpageGMs(self):
@@ -530,7 +544,8 @@ class SkiaFactory(BuildFactory):
halt_on_failure=True,
get_props_from_stdout={'buildbot_revision':
'Skiabot scripts updated to (\w+)'},
- workdir='build')
+ workdir='build',
+ exception_on_failure=True)
def Update(self):
""" Update the Skia code on the build slave. """
@@ -545,7 +560,8 @@ class SkiaFactory(BuildFactory):
is_upload_step=False,
is_rebaseline_step=True,
get_props_from_stdout={'got_revision':'Skia updated to (\w+)'},
- workdir='build')
+ workdir='build',
+ exception_on_failure=True)
def ApplyPatch(self, alternate_workdir=None, alternate_script=None):
""" Apply a patch to the Skia code on the build slave. """
@@ -586,12 +602,18 @@ class SkiaFactory(BuildFactory):
' together.')
args = ['--patch', WithProperties('%(patch)s', patch=_GetPatch)]
if alternate_script:
- self.AddSlaveScript(script=alternate_script, description='ApplyPatch',
- args=args, halt_on_failure=True,
- workdir=alternate_workdir)
+ self.AddSlaveScript(script=alternate_script,
+ description='ApplyPatch',
+ args=args,
+ halt_on_failure=True,
+ workdir=alternate_workdir,
+ exception_on_failure=True)
else:
- self.AddSlaveScript(script='apply_patch.py', description='ApplyPatch',
- args=args, halt_on_failure=True)
+ self.AddSlaveScript(script='apply_patch.py',
+ description='ApplyPatch',
+ args=args,
+ halt_on_failure=True,
+ exception_on_failure=True)
def UpdateSteps(self):
""" Update the Skia sources. """
@@ -603,17 +625,20 @@ class SkiaFactory(BuildFactory):
def UploadBenchResults(self):
""" Upload bench results (performance data). """
self.AddSlaveScript(script='upload_bench_results.py',
- description='UploadBenchResults')
+ description='UploadBenchResults',
+ exception_on_failure=True)
def UploadBenchResultsToAppEngine(self):
""" Upload bench results (performance data) to AppEngine. """
self.AddSlaveScript(script='upload_bench_results_appengine.py',
- description='UploadBenchResultsToAppengine')
+ description='UploadBenchResultsToAppengine',
+ exception_on_failure=True)
def UploadWebpagePictureBenchResults(self):
""" Upload webpage picture bench results (performance data). """
self.AddSlaveScript(script='upload_webpage_picture_bench_results.py',
- description='UploadWebpagePictureBenchResults')
+ description='UploadWebpagePictureBenchResults',
+ exception_on_failure=True)
def UploadGMResults(self):
@@ -622,11 +647,13 @@ class SkiaFactory(BuildFactory):
'--autogen_svn_password_file', self._autogen_svn_password_file]
self.AddSlaveScript(script='upload_gm_results.py', args=args,
description='UploadGMResults', timeout=5400,
- is_rebaseline_step=True)
+ is_rebaseline_step=True,
+ exception_on_failure=True)
def UploadSKImageResults(self):
self.AddSlaveScript(script='upload_skimage_results.py',
- description="UploadSKImageResults")
+ description='UploadSKImageResults',
+ exception_on_failure=True)
def CommonSteps(self, clobber=None):
""" Steps which are run at the beginning of all builds. """
« no previous file with comments | « master/skia_master_scripts/commands.py ('k') | master/skia_master_scripts/skia_build_step.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698