commit: 0e344fe1aa9e845d8bdaa704ee3d15064771ec49
Author: Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 6 01:36:22 2021 +0000
Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Wed Oct 6 01:36:22 2021 +0000
URL:
https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=0e344fe1
Use JsonReporter instead of XmlReporter for pkgcheck
Signed-off-by: Magnus Granberg <zorry <AT> gentoo.org>
buildbot_gentoo_ci/steps/builders.py | 39 ++++++++++++++++++++----------------
1 file changed, 22 insertions(+), 17 deletions(-)
diff --git a/buildbot_gentoo_ci/steps/builders.py
b/buildbot_gentoo_ci/steps/builders.py
index 8f0aadb..80fe52f 100644
--- a/buildbot_gentoo_ci/steps/builders.py
+++ b/buildbot_gentoo_ci/steps/builders.py
@@ -3,6 +3,7 @@
import os
import re
+import json
from portage.versions import catpkgsplit, cpv_getversion
from portage.dep import dep_getcpv, dep_getslot, dep_getrepo
@@ -131,18 +132,13 @@ def PersOutputOfEmerge(rc, stdout, stderr):
def PersOutputOfPkgCheck(rc, stdout, stderr):
pkgcheck_output = {}
pkgcheck_output['rc'] = rc
- #FIXME: Handling of stdout output
- pkgcheck_xml_list = []
+ print(stdout)
+ pkgcheck_json_list = []
# split the lines
for line in stdout.split('\n'):
- # pkgcheck output list
- if line.startswith('<checks'):
- pkgcheck_xml_list.append(line)
- if line.startswith('<result'):
- pkgcheck_xml_list.append(line)
- if line.startswith('</checks'):
- pkgcheck_xml_list.append(line)
- pkgcheck_output['pkgcheck_xml'] = pkgcheck_xml_list
+ if line.startswith('{"'):
+ pkgcheck_json_list.append(json.loads(line))
+ pkgcheck_output['pkgcheck_json'] = pkgcheck_json_list
#FIXME: Handling of stderr output
return {
'pkgcheck_output' : pkgcheck_output
@@ -827,7 +823,7 @@ class RunPkgCheck(BuildStep):
'-v'
]
shell_commad_list.append('-R')
- shell_commad_list.append('XmlReporter')
+ shell_commad_list.append('JsonReporter')
aftersteps_list = []
if projectrepository_data['pkgcheck'] == 'full':
pkgcheck_workdir = yield os.path.join(repository_path, '')
@@ -856,15 +852,24 @@ class CheckPkgCheckLogs(BuildStep):
def __init__(self, **kwargs):
super().__init__(**kwargs)
- #@defer.inlineCallbacks
+ @defer.inlineCallbacks
def run(self):
- self.gentooci =
self.master.namedServices['services'].namedServices['gentooci']
- project_data = self.getProperty('project_data')
+ #self.gentooci =
self.master.namedServices['services'].namedServices['gentooci']
+ #project_data = self.getProperty('project_data')
pkgcheck_output = self.getProperty('pkgcheck_output')
print(pkgcheck_output)
- #FIXME:
- # Perse the logs
- self.setProperty('pkg_check_log_data', None, 'pkg_check_log_data')
+ if pkgcheck_output['pkgcheck_json'] == []:
+ return SKIPPED
+ pkg_check_log_data = []
+ c = yield catpkgsplit(self.getProperty("cpv"))[0]
+ p = yield catpkgsplit(self.getProperty("cpv"))[1]
+ v = yield cpv_getversion(self.getProperty("cpv"))
+ for json_dict in pkgcheck_output['pkgcheck_json']:
+ for k, i in json_dict[c][p].items():
+ if k == v or k == '_info' or k == '_style':
+ pkg_check_log_data.append(i)
+ if pkg_check_log_data != []:
+ self.setProperty('pkg_check_log_data', pkg_check_log_data,
'pkg_check_log_data')
return SUCCESS
class RunEmergeInfo(BuildStep):