diff options
author | Zuul <zuul@review.opendev.org> | 2021-09-29 21:12:29 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2021-09-29 21:12:29 +0000 |
commit | 0bc4a9b4818cfd2200342421e2b6ad26ce213a04 (patch) | |
tree | 1ba45c5c8574bc13476ea99ea86b7a5470eeae8d | |
parent | ca2704be7b8ba94d55826e1951851bd445dec28e (diff) | |
parent | 358830ba58a6a200f8443783db249f4374dbad67 (diff) | |
download | zuul-0bc4a9b4818cfd2200342421e2b6ad26ce213a04.tar.gz |
Merge "Show emoji to highlight failed jobs in build result in Github"
-rw-r--r-- | zuul/driver/github/githubreporter.py | 31 | ||||
-rw-r--r-- | zuul/driver/pagure/pagurereporter.py | 2 | ||||
-rw-r--r-- | zuul/reporter/__init__.py | 8 |
3 files changed, 37 insertions, 4 deletions
diff --git a/zuul/driver/github/githubreporter.py b/zuul/driver/github/githubreporter.py index 372911364..637968f8a 100644 --- a/zuul/driver/github/githubreporter.py +++ b/zuul/driver/github/githubreporter.py @@ -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): diff --git a/zuul/driver/pagure/pagurereporter.py b/zuul/driver/pagure/pagurereporter.py index 1feda9213..e6f33ef47 100644 --- a/zuul/driver/pagure/pagurereporter.py +++ b/zuul/driver/pagure/pagurereporter.py @@ -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): diff --git a/zuul/reporter/__init__.py b/zuul/reporter/__init__.py index 07a5960f7..05b15a882 100644 --- a/zuul/reporter/__init__.py +++ b/zuul/reporter/__init__.py @@ -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 |