Show emoji to highlight failed jobs in build result in Github

When there is a long list of build results, it is difficult quickly
to see which jobs are failed.
This change add emoji of check mark and cross in front of each job
to solve this problem.

Change-Id: I38177824767d475b0c4881ef0ab24ca1164d3187
This commit is contained in:
Dong Zhang 2021-08-05 11:46:16 +02:00
parent 4f318047ba
commit 358830ba58
3 changed files with 37 additions and 4 deletions

View File

@ -101,12 +101,41 @@ class GithubReporter(BaseReporter):
except Exception as e:
self.addPullComment(item, str(e))
def _formatJobResult(self, job_fields):
# We select different emojis to represents build results:
# heavy_check_mark: SUCCESS
# warning: SKIPPED/ABORTED
# x: all types of FAILUREs
# In addition, failure results are in bold text
job_result = job_fields[2]
# Also need to handle user defined success_message.
# The job_fields[6]: the user defined seccess_message (if available)
success_message = job_fields[6]
emoji = 'x'
bold_result = True
if job_result in ('SUCCESS', success_message):
emoji = 'heavy_check_mark'
bold_result = False
elif job_result in ('SKIPPED', 'ABORTED'):
emoji = 'warning'
bold_result = False
if bold_result:
return ':%s: [%s](%s) **%s**%s%s%s\n' % (
(emoji,) + job_fields[:6])
else:
return ':%s: [%s](%s) %s%s%s%s\n' % (
(emoji,) + job_fields[:6])
def _formatItemReportJobs(self, item):
# Return the list of jobs portion of the report
ret = ''
jobs_fields = self._getItemReportJobsFields(item)
for job_fields in jobs_fields:
ret += '- [%s](%s) : %s%s%s%s\n' % job_fields
ret += self._formatJobResult(job_fields)
return ret
def addPullComment(self, item, comment=None):

View File

@ -68,7 +68,7 @@ class PagureReporter(BaseReporter):
ret = ''
jobs_fields = self._getItemReportJobsFields(item)
for job_fields in jobs_fields:
ret += '- [%s](%s) : %s%s%s%s\n' % job_fields
ret += '- [%s](%s) : %s%s%s%s\n' % job_fields[:6]
return ret
def addPullComment(self, item, comment=None):

View File

@ -268,7 +268,11 @@ class BaseReporter(object, metaclass=abc.ABCMeta):
# the url field to match old behavior until we can deal with
# the gerrit-side piece as well
url = url or job.name
jobs_fields.append((name, url, result, error, elapsed, voting))
# Pass user defined success_message deciding the build result
# during result formatting
success_message = job.success_message
jobs_fields.append(
(name, url, result, error, elapsed, voting, success_message))
return jobs_fields
def _formatItemReportJobs(self, item):
@ -276,5 +280,5 @@ class BaseReporter(object, metaclass=abc.ABCMeta):
ret = ''
jobs_fields = self._getItemReportJobsFields(item)
for job_fields in jobs_fields:
ret += '- %s%s : %s%s%s%s\n' % job_fields
ret += '- %s%s : %s%s%s%s\n' % job_fields[:6]
return ret