[Buildbot-devel] is there a way to set haltOnFailure at build time?

robert dugal rmdugal at hotmail.com
Thu Oct 14 10:21:30 UTC 2010


Setting self.haltOnFailure looks like the way to go. Something like this:

class DummyShellCommand(ShellCommand):
    def __init__(self, **kwargs):
        ShellCommand.__init__(self, **kwargs)

    def start(self):
        properties = self.build.getProperties()
        if properties.has_key('IGNORE_UNIT_TEST_FAILURES'):
            self.haltOnFailure = False
            self.flunkOnFailure = False
        return ShellCommand.start(self)
 

----------------------------------------
> Date: Wed, 13 Oct 2010 12:39:07 -0700
> Subject: Re: [Buildbot-devel] is there a way to set haltOnFailure at build time?
> From: djl at douglatornell.ca
> To: buildbot-devel at lists.sourceforge.net
> CC: rmdugal at hotmail.com
>
> I do something similar in my builders. In my case I want to skip
> certain steps if a property has been set. I use a custom ShellCommand
> with code like this in the start() method:
>
> def start(self):
> ...
> if self.getProperty('make_refs'):
> return SKIPPED
> else:
> ShellCommand.start(self)
>
> I think you should be able to set self.haltOnFailure as you wish in
> the clauses of the if/else.
>
> Doug
>
> On Wed, Oct 13, 2010 at 9:39 AM, robert dugal  wrote:
> >
> > Is it possible to set haltOnFailure to the result of some function, such as one that checks if a property exists?
> > I have a builder that creates a package that is used by other builders. The builder has unit tests that are sometimes failing which causes the builder to not produce a build package.
> > This prevents the other builders from working. There's nothing wrong with this design and it is the proper way things should work.
> >
> > However, there are sometimes special instances where I want the unit tests failures to be ignored and produce a package anyways, so I can run the other builders.
> > I was hoping I could set haltOnFailure=False when some property like IGNORE_UNIT_TEST_FAILURES was defined in the force build web page.
> > However it doesn't seem to work.
> >
> > Any suggestions on how to accomplish this?
> >
> > def TryThis(step):
> >     """
> >
> >     """
> >
> >     result = True
> >     properties = step.build.getProperties()
> >     if properties.has_key('IGNORE_UNIT_TEST_FAILURES'):
> >             result = False
> >     return result
> >
> > class DummyFactory(BuildFactory):
> >     def __init__(self,
> >                 final_empty=False,
> >                 **kwargs):
> >         BuildFactory.__init__(self)
> >         self.addStep(ShellCommand(name='T1', command="ls foobar/", haltOnFailure=TryThis, flunkOnFailure=TryThis ))
> >         self.addStep(ShellCommand(name='T2', command="ls", haltOnFailure=True ))
> >
> >
> > ------------------------------------------------------------------------------
> > Beautiful is writing same markup. Internet Explorer 9 supports
> > standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
> > Spend less time writing and  rewriting code and more time creating great
> > experiences on the web. Be a part of the beta today.
> > http://p.sf.net/sfu/beautyoftheweb
> > _______________________________________________
> > Buildbot-devel mailing list
> > Buildbot-devel at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/buildbot-devel
> >
 		 	   		  



More information about the devel mailing list