diff options
author | Magnus Granberg <zorry@gentoo.org> | 2021-05-02 17:24:05 +0200 |
---|---|---|
committer | Magnus Granberg <zorry@gentoo.org> | 2021-05-02 17:24:05 +0200 |
commit | c5da0d10e98b62390d47b5b13d66a135706177ed (patch) | |
tree | af90b84e9c1a3bf4fddb6d05ff45e79b2cc2452c | |
parent | Add color to the output of IRC reporter (diff) | |
download | tinderbox-cluster-c5da0d10e98b62390d47b5b13d66a135706177ed.tar.gz tinderbox-cluster-c5da0d10e98b62390d47b5b13d66a135706177ed.tar.bz2 tinderbox-cluster-c5da0d10e98b62390d47b5b13d66a135706177ed.zip |
Add support for emerge --info
Signed-off-by: Magnus Granberg <zorry@gentoo.org>
-rw-r--r-- | buildbot_gentoo_ci/config/buildfactorys.py | 2 | ||||
-rw-r--r-- | buildbot_gentoo_ci/steps/builders.py | 44 | ||||
-rw-r--r-- | buildbot_gentoo_ci/steps/logs.py | 24 |
3 files changed, 68 insertions, 2 deletions
diff --git a/buildbot_gentoo_ci/config/buildfactorys.py b/buildbot_gentoo_ci/config/buildfactorys.py index e08127b..417e385 100644 --- a/buildbot_gentoo_ci/config/buildfactorys.py +++ b/buildbot_gentoo_ci/config/buildfactorys.py @@ -177,6 +177,8 @@ def parse_build_log(): f.addStep(logs.MakeIssue()) # add sum log to buildbot log f.addStep(logs.setBuildbotLog()) + # add emerge info to log and db + f.addStep(logs.setEmergeInfoLog()) # set BuildStatus f.addStep(logs.setBuildStatus()) # setup things for the irc bot diff --git a/buildbot_gentoo_ci/steps/builders.py b/buildbot_gentoo_ci/steps/builders.py index 50f924d..3a5de47 100644 --- a/buildbot_gentoo_ci/steps/builders.py +++ b/buildbot_gentoo_ci/steps/builders.py @@ -164,6 +164,17 @@ def PersOutputOfDepclean(rc, stdout, stderr): 'depclean_output' : depclean_output } +def PersOutputOfEmergeInfo(rc, stdout, stderr): + emerge_info_output = {} + emerge_info_output['rc'] = rc + emerge_info_list = [] + for line in stdout.split('\n'): + emerge_info_list.append(line) + emerge_info_output['emerge_info'] = emerge_info_list + return { + 'emerge_info_output' : emerge_info_output + } + class TriggerRunBuildRequest(BuildStep): name = 'TriggerRunBuildRequest' @@ -650,7 +661,8 @@ class CheckEmergeLogs(BuildStep): 'pkg_check_log_data' : self.getProperty("pkg_check_log_data"), 'repository_data' : self.getProperty('repository_data'), 'faild_cpv' : faild_cpv, - 'step' : self.step + 'step' : self.step, + 'emerge_info' : self.getProperty('emerge_info_output')['emerge_info'] } )) if not self.step is None and self.aftersteps_list != []: @@ -761,6 +773,35 @@ class CheckPkgCheckLogs(BuildStep): self.setProperty('pkg_check_log_data', None, 'pkg_check_log_data') return SUCCESS +class RunEmergeInfo(BuildStep): + + name = 'RunEmergeInfo' + description = 'Running' + descriptionDone = 'Ran' + haltOnFailure = True + flunkOnFailure = True + + def __init__(self, **kwargs): + super().__init__(**kwargs) + + @defer.inlineCallbacks + def run(self): + aftersteps_list = [] + shell_commad_list = [ + 'emerge', + ] + shell_commad_list.append('--info') + aftersteps_list.append( + steps.SetPropertyFromCommandNewStyle( + command=shell_commad_list, + strip=True, + extract_fn=PersOutputOfEmergeInfo, + workdir='/', + timeout=None + )) + yield self.build.addStepsAfterCurrentStep(aftersteps_list) + return SUCCESS + class RunBuild(BuildStep): name = 'RunBuild' @@ -780,6 +821,7 @@ class RunBuild(BuildStep): # trigger pars_build_log if we have any logs to check return SUCCESS aftersteps_list = [] + aftersteps_list.append(RunEmergeInfo()) aftersteps_list.append(RunEmerge(step='pre-build')) aftersteps_list.append(RunEmerge(step='build')) self.setProperty('depclean', False, 'depclean') diff --git a/buildbot_gentoo_ci/steps/logs.py b/buildbot_gentoo_ci/steps/logs.py index 0960b9b..3c0ef8d 100644 --- a/buildbot_gentoo_ci/steps/logs.py +++ b/buildbot_gentoo_ci/steps/logs.py @@ -252,7 +252,29 @@ class setBuildbotLog(BuildStep): # add line for line for line in self.getProperty('summary_log_list'): yield log.addStdout(line + '\n') - # add emerge info log + return SUCCESS + +class setEmergeInfoLog(BuildStep): + + name = 'setEmergeInfoLog' + description = 'Running' + descriptionDone = 'Ran' + descriptionSuffix = None + haltOnFailure = False + flunkOnFailure = True + warnOnWarnings = True + + def __init__(self, **kwargs): + super().__init__(**kwargs) + + @defer.inlineCallbacks + def run(self): + #setup the log + log = yield self.addLog('emerge_info') + #FIXME: add emerge info to db + # add line for line + for line in self.getProperty('emerge_info'): + yield log.addStdout(line + '\n') return SUCCESS class setBuildStatus(BuildStep): |