Merge "Show emoji to highlight failed jobs in build result in Github"

This commit is contained in:
Zuul 2021-09-29 21:12:29 +00:00 committed by Gerrit Code Review
commit 0bc4a9b481
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

@ -270,7 +270,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):
@ -278,5 +282,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