Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - import os
 - from twisted.internet import defer
 - from buildbot.process.build import Build
 - LOGS_ROOT = '/var/log/buildbot/builds'
 - class LogSaverBuild(Build):
 - @defer.inlineCallbacks
 - def saveLogToFile(self):
 - logs_folder = '%s/%s' % (LOGS_ROOT, self.builder.name)
 - if not os.path.exists(logs_folder):
 - os.makedirs(logs_folder)
 - log_path = '%s/%d.log' % (logs_folder, self.buildid)
 - with open(log_path, 'w') as log_f:
 - for step in self.executedSteps:
 - log_data = yield self.master.data.get(('steps', step.stepid, 'logs', 'stdio', 'raw'))
 - if not log_data:
 - continue
 - log_f.write(log_data['raw'])
 - @defer.inlineCallbacks
 - def buildFinished(self, text, results):
 - res = yield Build.buildFinished(self, text, results)
 - self.saveLogToFile()
 - defer.returnValue(res)
 - # example usage in config file
 - from buildbot.config import BuilderConfig
 - from buildbot.process.factory import BuildFactory
 - build_factory = BuildFactory() # also add steps to factory as usual
 - build_factory.buildClass = LogSaverBuild # setting custom build type
 - # and setup builder as usual
 - builder = BuilderConfig(
 - name='builder_name',
 - workernames=['worker1', 'worker2'],
 - factory=build_factory
 - )
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment