diff options
author | Yongqin Liu <yongqin.liu@linaro.org> | 2019-09-05 08:04:59 +0800 |
---|---|---|
committer | Yongqin Liu <yongqin.liu@linaro.org> | 2019-09-05 08:04:59 +0800 |
commit | d0a87ab0eae91f9a4dc35fb2ade26327eb409e43 (patch) | |
tree | 9683858d6593c04a6e95b4988f443dcfb9d238b1 /lkft | |
parent | 5ef80f1662f12b41ef1ee09abf3d054ef164f71e (diff) |
lkft: add the build project status
to show if the build is finished, in queue, or in progress
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
Diffstat (limited to 'lkft')
-rw-r--r-- | lkft/lkft_config.py | 114 | ||||
-rw-r--r-- | lkft/templates/lkft-projects.html | 17 | ||||
-rw-r--r-- | lkft/views.py | 41 |
3 files changed, 119 insertions, 53 deletions
diff --git a/lkft/lkft_config.py b/lkft/lkft_config.py index 1456f2c..28c245e 100644 --- a/lkft/lkft_config.py +++ b/lkft/lkft_config.py @@ -4,60 +4,76 @@ from __future__ import unicode_literals import re citrigger_lkft = { - 'trigger-lkft-aosp-mainline': [ - 'mainline-9.0-hikey', - 'mainline-9.0-hikey-auto', - 'mainline-9.0-hikey960', - 'mainline-9.0-hikey960-auto', - 'mainline-9.0-x15', - 'mainline-9.0-x15-auto', - ], - - 'trigger-lkft-ti-4.19': [ - '4.19-9.0-x15', - '4.19-9.0-x15-auto', - '4.19-9.0-am65x', - '4.19-9.0-am65x-auto', - ], - 'trigger-lkft-hikey-4.19': [ - '4.19-9.0-hikey', - '4.19-9.0-hikey-auto', - '4.19-9.0-hikey960', - '4.19-9.0-hikey960-auto', - ], - - 'trigger-lkft-x15-4.14': [ - '4.14-8.1-x15', - ], - 'trigger-lkft-hikey-4.14-premerge-ci': [ - '4.14-9.0-hikey', - '4.14-9.0-hikey960', - ], - 'trigger-lkft-hikey-4.14': [ - '4.14-8.1-hikey', - ], - - 'trigger-lkft-hikey-4.9-premerge-ci': [ - '4.9-9.0-hikey', - '4.9-9.0-hikey960', - ], - 'trigger-lkft-hikey-4.9': [ - '4.9-8.1-hikey', - ], - - 'trigger-lkft-hikey-4.4-premerge-ci': [ - '4.4-lts-9.0-hikey', - ], - 'trigger-lkft-hikey-4.4': [ - '4.4-8.1-hikey', - '4.4-9.0-hikey', - ], + 'trigger-lkft-aosp-mainline': { + 'mainline-9.0-hikey': 'lkft-android-9.0-mainline', + 'mainline-9.0-hikey-auto': 'lkft-android-9.0-mainline', + 'mainline-9.0-hikey960': 'lkft-android-9.0-mainline-hikey960', + 'mainline-9.0-hikey960-auto': 'lkft-android-9.0-mainline-hikey960', + 'mainline-9.0-x15': 'lkft-android-9.0-mainline-x15', + 'mainline-9.0-x15-auto': 'lkft-android-9.0-mainline-x15', + }, + + 'trigger-lkft-ti-4.19': { + '4.19-9.0-x15': 'lkft-x15-android-9.0-4.19', + '4.19-9.0-x15-auto': 'lkft-x15-android-9.0-4.19', + '4.19-9.0-am65x': 'lkft-am65x-android-9.0-4.19', + '4.19-9.0-am65x-auto': 'lkft-am65x-android-9.0-4.19', + }, + 'trigger-lkft-hikey-4.19': { + '4.19-9.0-hikey': 'lkft-hikey-android-9.0-4.19', + '4.19-9.0-hikey-auto': 'lkft-hikey-android-9.0-4.19', + '4.19-9.0-hikey960': 'lkft-hikey-android-9.0-4.19', + '4.19-9.0-hikey960-auto': 'lkft-hikey-android-9.0-4.19', + }, + + 'trigger-lkft-hikey-aosp-4.19-r': { + '4.19-master-hikey': 'lkft-hikey-aosp-master-4.19', + '4.19-master-hikey960': 'lkft-hikey-aosp-master-4.19', + }, + + 'trigger-lkft-x15-4.14': { + '4.14-8.1-x15': 'lkft-x15-android-8.1-4.14', + }, + 'trigger-lkft-hikey-4.14-premerge-ci': { + '4.14-9.0-hikey': 'lkft-hikey-aosp-4.14-premerge-ci', + '4.14-9.0-hikey960': 'lkft-hikey-aosp-4.14-premerge-ci', + }, + 'trigger-lkft-hikey-4.14': { + '4.14-8.1-hikey': 'lkft-hikey-android-8.1-4.14', + }, + + 'trigger-lkft-hikey-4.9-premerge-ci': { + '4.9-9.0-hikey': 'lkft-hikey-aosp-4.9-premerge-ci', + '4.9-9.0-hikey960': 'lkft-hikey-aosp-4.9-premerge-ci', + }, + 'trigger-lkft-hikey-4.9': { + '4.9-8.1-hikey': 'lkft-hikey-android-8.1-4.9', + }, + + 'trigger-lkft-hikey-4.4-premerge-ci': { + '4.4-lts-9.0-hikey': 'lkft-hikey-aosp-4.4-premerge-ci', + }, + 'trigger-lkft-hikey-4.4': { + '4.4-8.1-hikey': 'lkft-hikey-android-8.1-4.4', + '4.4-9.0-hikey': 'lkft-hikey-android-9.0-4.4', + }, } def find_citrigger(lkft_pname=""): if not lkft_pname: return None for trigger_name, lkft_pnames in citrigger_lkft.items(): - if lkft_pname in lkft_pnames: + if lkft_pname in lkft_pnames.keys(): return trigger_name return None + + +def find_cibuild(lkft_pname=""): + if not lkft_pname: + return None + if lkft_pname == 'aosp-master-tracking': + return 'lkft-aosp-master-tracking' + for trigger_name, lkft_pnames in citrigger_lkft.items(): + if lkft_pname in lkft_pnames.keys(): + return lkft_pnames.get(lkft_pname) + return None diff --git a/lkft/templates/lkft-projects.html b/lkft/templates/lkft-projects.html index f47e153..8a68bc4 100644 --- a/lkft/templates/lkft-projects.html +++ b/lkft/templates/lkft-projects.html @@ -30,9 +30,20 @@ {% endif %} </td> <td> - {% if project.last_build %} - {% with project.last_build as last_build %} - {{ last_build.version}} + {% if project.last_ci_build %} + {% with project.last_ci_build as last_ci_build %} + {% if last_ci_build.build_status == 'SUCCESS' %} + <a href="{{last_ci_build.ci_build_project_url}}">{{ last_ci_build.kernel_version}}</a> <p style="background-color: green">{{ last_ci_build.build_status}} </p> + {% endif %} + {% if last_ci_build.build_status == 'INQUEUE' %} + <a href="{{last_ci_build.ci_build_project_url}}">{{ last_ci_build.kernel_version}}</a> <p style="background-color: grey">{{ last_ci_build.build_status}}</p> + {% endif %} + {% if last_ci_build.build_status == 'INPROGRESS' %} + <a href="{{last_ci_build.ci_build_project_url}}">{{ last_ci_build.kernel_version}}</a> <p style="background-color: yellow">{{ last_ci_build.build_status}}</p> + {% endif %} + {% if last_ci_build.build_status == 'FAILURE' %} + <a href="{{last_ci_build.ci_build_project_url}}">{{ last_ci_build.kernel_version}}</a> <p style="background-color: red">{{ last_ci_build.build_status}}</p> + {% endif %} {% endwith %} {% else %} No Build Yet diff --git a/lkft/views.py b/lkft/views.py index 47e6897..d35ee91 100644 --- a/lkft/views.py +++ b/lkft/views.py @@ -26,7 +26,7 @@ from lcr.settings import QA_REPORT, QA_REPORT_DEFAULT from lcr import qa_report from lcr.qa_report import DotDict from lcr.utils import download_urllib -from lkft.lkft_config import find_citrigger +from lkft.lkft_config import find_citrigger, find_cibuild qa_report_def = QA_REPORT[QA_REPORT_DEFAULT] qa_report_api = qa_report.QAReportApi(qa_report_def.get('domain'), qa_report_def.get('token')) @@ -230,6 +230,45 @@ def list_projects(request): last_trigger_url = last_trigger_build.get('url') project['last_trigger_build'] = jenkins_api.get_build_details_with_full_url(build_url=last_trigger_url) + ci_build_project_name = find_cibuild(lkft_pname=project.get('name')) + ci_build_project = jenkins_api.get_build_details_with_job_url(ci_build_project_name) + + isInQueue = ci_build_project.get('inQueue') + + if isInQueue: + build_status = 'INQUEUE' + kernel_version = 'Unknown' + queueItem = ci_build_project.get('queueItem') + if queueItem: + # BUILD_DIR=lkft + # ANDROID_BUILD_CONFIG=lkft-hikey-android-9.0-mainline lkft-hikey-android-9.0-mainline-auto + # KERNEL_DESCRIBE=v5.3-rc7-223-g5da9f3fe49d4 + # SRCREV_kernel=5da9f3fe49d47e313e397694c195c3b9b9b24134 + # MAKE_KERNELVERSION=5.3.0-rc7 + params = queueItem.get('params').strip().split('\n') + for param in params: + if param.find('KERNEL_DESCRIBE') >= 0: + kernel_version = param.split('=')[1] + break + # case for aosp master tracking build + if kernel_version == 'dummy': + kernel_version = ci_build_project.get('nextBuildNumber') + else: + ci_build_last_url = ci_build_project.get('lastBuild').get('url') + ci_build_last = jenkins_api.get_build_details_with_full_url(build_url=ci_build_last_url) + kernel_version = ci_build_last.get('displayName') # #buildNo.-kernelInfo + if ci_build_last.get('building'): + build_status = 'INPROGRESS' + else: + build_status = ci_build_last.get('result') # null or SUCCESS, FAILURE + + last_ci_build= { + 'build_status': build_status, + 'kernel_version': kernel_version, + 'ci_build_project_url': ci_build_project.get('url'), + } + project['last_ci_build'] = last_ci_build + projects.append(project) bugs = get_lkft_bugs() |