include fix to http://buildbot.net/trac/ticket/1043 BUILDBOT_0_8_2
authorDustin J. Mitchell <dustin@mozilla.com>
Mon, 08 Nov 2010 16:14:44 -0600
changeset 101 6101c032234b333badff555005bdac596443a74c
parent 100 ff16a0ec34176008e2576f1ffc99a075e6638c9c
child 103 e5b0d9774f2ac2bc8a55f74dd425a33a5365bbf9
push id41
push userdmitchell@mozilla.com
push dateWed, 17 Nov 2010 14:22:22 +0000
include fix to http://buildbot.net/trac/ticket/1043
master/buildbot/process/base.py
--- a/master/buildbot/process/base.py
+++ b/master/buildbot/process/base.py
@@ -4,17 +4,17 @@ import types
 
 from zope.interface import implements
 from twisted.python import log
 from twisted.python.failure import Failure
 from twisted.internet import reactor, defer, error
 
 from buildbot import interfaces, locks
 from buildbot.status.builder import SUCCESS, WARNINGS, FAILURE, EXCEPTION, \
-  RETRY, worst_status
+  RETRY, SKIPPED, worst_status
 from buildbot.status.builder import Results
 from buildbot.status.progress import BuildProgress
 
 
 class Build:
     """I represent a single build by a single slave. Specialized Builders can
     use subclasses of Build to hold status information unique to those build
     processes.
@@ -405,17 +405,20 @@ class Build:
                 possible_overall_result = SUCCESS
             else:
                 possible_overall_result = WARNINGS
             if step.flunkOnWarnings:
                 possible_overall_result = FAILURE
         elif result in (EXCEPTION, RETRY):
             terminate = True
 
-        self.result = worst_status(self.result, possible_overall_result)
+        # if we skipped this step, then don't adjust the build status
+        if result != SKIPPED:
+            self.result = worst_status(self.result, possible_overall_result)
+
         return terminate
 
     def lostRemote(self, remote=None):
         # the slave went away. There are several possible reasons for this,
         # and they aren't necessarily fatal. For now, kill the build, but
         # TODO: see if we can resume the build when it reconnects.
         log.msg("%s.lostRemote" % self)
         self.remote = None