From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 5AE5E1382C5 for ; Sun, 2 May 2021 15:24:46 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id A0356E0884; Sun, 2 May 2021 15:24:45 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 797FFE0884 for ; Sun, 2 May 2021 15:24:45 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id E8B7733BEBC for ; Sun, 2 May 2021 15:24:43 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 7F21D71B for ; Sun, 2 May 2021 15:24:42 +0000 (UTC) From: "Magnus Granberg" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Magnus Granberg" Message-ID: <1619969045.c5da0d10e98b62390d47b5b13d66a135706177ed.zorry@gentoo> Subject: [gentoo-commits] proj/tinderbox-cluster:master commit in: buildbot_gentoo_ci/steps/, buildbot_gentoo_ci/config/ X-VCS-Repository: proj/tinderbox-cluster X-VCS-Files: buildbot_gentoo_ci/config/buildfactorys.py buildbot_gentoo_ci/steps/builders.py buildbot_gentoo_ci/steps/logs.py X-VCS-Directories: buildbot_gentoo_ci/steps/ buildbot_gentoo_ci/config/ X-VCS-Committer: zorry X-VCS-Committer-Name: Magnus Granberg X-VCS-Revision: c5da0d10e98b62390d47b5b13d66a135706177ed X-VCS-Branch: master Date: Sun, 2 May 2021 15:24:42 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 7e7210a6-5a86-429d-b907-123cff489cc5 X-Archives-Hash: 89e9f498b279138f1db8bb50245bdf77 commit: c5da0d10e98b62390d47b5b13d66a135706177ed Author: Magnus Granberg gentoo org> AuthorDate: Sun May 2 15:24:05 2021 +0000 Commit: Magnus Granberg gentoo org> CommitDate: Sun May 2 15:24:05 2021 +0000 URL: https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=c5da0d10 Add support for emerge --info Signed-off-by: Magnus Granberg gentoo.org> buildbot_gentoo_ci/config/buildfactorys.py | 2 ++ buildbot_gentoo_ci/steps/builders.py | 44 +++++++++++++++++++++++++++++- 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):