summaryrefslogtreecommitdiff
path: root/lkft
diff options
context:
space:
mode:
authorYongqin Liu <yongqin.liu@linaro.org>2019-09-05 08:04:59 +0800
committerYongqin Liu <yongqin.liu@linaro.org>2019-09-05 08:04:59 +0800
commitd0a87ab0eae91f9a4dc35fb2ade26327eb409e43 (patch)
tree9683858d6593c04a6e95b4988f443dcfb9d238b1 /lkft
parent5ef80f1662f12b41ef1ee09abf3d054ef164f71e (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.py114
-rw-r--r--lkft/templates/lkft-projects.html17
-rw-r--r--lkft/views.py41
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>&nbsp;&nbsp; <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>&nbsp;&nbsp; <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>&nbsp;&nbsp; <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>&nbsp;&nbsp; <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()