Package buildbot :: Package process :: Module process_twisted
[frames] | no frames]

Source Code for Module buildbot.process.process_twisted

  1   
  2  # Build classes specific to the Twisted codebase 
  3   
  4  from buildbot.process.base import Build 
  5  from buildbot.process.factory import BuildFactory 
  6  from buildbot.steps import shell 
  7  from buildbot.steps.python_twisted import HLint, ProcessDocs, BuildDebs, \ 
  8       Trial, RemovePYCs 
  9   
10 -class TwistedBuild(Build):
11 workdir = "Twisted" # twisted's bin/trial expects to live in here
12 - def isFileImportant(self, filename):
13 if filename.startswith("doc/fun/"): 14 return 0 15 if filename.startswith("sandbox/"): 16 return 0 17 return 1
18
19 -class TwistedTrial(Trial):
20 tests = "twisted" 21 # the Trial in Twisted >=2.1.0 has --recurse on by default, and -to 22 # turned into --reporter=bwverbose . 23 recurse = False 24 trialMode = ["--reporter=bwverbose"] 25 testpath = None 26 trial = "./bin/trial"
27
28 -class TwistedBaseFactory(BuildFactory):
29 buildClass = TwistedBuild 30 # bin/trial expects its parent directory to be named "Twisted": it uses 31 # this to add the local tree to PYTHONPATH during tests 32 workdir = "Twisted" 33
34 - def __init__(self, source):
36
37 -class QuickTwistedBuildFactory(TwistedBaseFactory):
38 treeStableTimer = 30 39 useProgress = 0 40
41 - def __init__(self, source, python="python"):
42 TwistedBaseFactory.__init__(self, source) 43 if type(python) is str: 44 python = [python] 45 self.addStep(HLint, python=python[0]) 46 self.addStep(RemovePYCs) 47 for p in python: 48 cmd = [p, "setup.py", "build_ext", "-i"] 49 self.addStep(shell.Compile, command=cmd, flunkOnFailure=True) 50 self.addStep(TwistedTrial, python=p, testChanges=True)
51
52 -class FullTwistedBuildFactory(TwistedBaseFactory):
53 treeStableTimer = 5*60 54
55 - def __init__(self, source, python="python", 56 processDocs=False, runTestsRandomly=False, 57 compileOpts=[], compileOpts2=[]):
58 TwistedBaseFactory.__init__(self, source) 59 if processDocs: 60 self.addStep(ProcessDocs) 61 62 if type(python) == str: 63 python = [python] 64 assert isinstance(compileOpts, list) 65 assert isinstance(compileOpts2, list) 66 cmd = (python + compileOpts + ["setup.py", "build_ext"] 67 + compileOpts2 + ["-i"]) 68 69 self.addStep(shell.Compile, command=cmd, flunkOnFailure=True) 70 self.addStep(RemovePYCs) 71 self.addStep(TwistedTrial, python=python, randomly=runTestsRandomly)
72
73 -class TwistedDebsBuildFactory(TwistedBaseFactory):
74 treeStableTimer = 10*60 75
76 - def __init__(self, source, python="python"):
77 TwistedBaseFactory.__init__(self, source) 78 self.addStep(ProcessDocs, haltOnFailure=True) 79 self.addStep(BuildDebs, warnOnWarnings=True)
80
81 -class TwistedReactorsBuildFactory(TwistedBaseFactory):
82 treeStableTimer = 5*60 83
84 - def __init__(self, source, 85 python="python", compileOpts=[], compileOpts2=[], 86 reactors=None):
87 TwistedBaseFactory.__init__(self, source) 88 89 if type(python) == str: 90 python = [python] 91 assert isinstance(compileOpts, list) 92 assert isinstance(compileOpts2, list) 93 cmd = (python + compileOpts + ["setup.py", "build_ext"] 94 + compileOpts2 + ["-i"]) 95 96 self.addStep(shell.Compile, command=cmd, warnOnFailure=True) 97 98 if reactors == None: 99 reactors = [ 100 'gtk2', 101 'gtk', 102 #'kqueue', 103 'poll', 104 'c', 105 'qt', 106 #'win32', 107 ] 108 for reactor in reactors: 109 flunkOnFailure = 1 110 warnOnFailure = 0 111 #if reactor in ['c', 'qt', 'win32']: 112 # # these are buggy, so tolerate failures for now 113 # flunkOnFailure = 0 114 # warnOnFailure = 1 115 self.addStep(RemovePYCs) # TODO: why? 116 self.addStep(TwistedTrial, name=reactor, python=python, 117 reactor=reactor, flunkOnFailure=flunkOnFailure, 118 warnOnFailure=warnOnFailure)
119