From ea0cf9e227760d29c611e5e28d49e736a59b21a6 Mon Sep 17 00:00:00 2001 From: hardy Date: Thu, 13 Jan 2022 18:08:00 +0100 Subject: [PATCH 1/5] workout a more readable and compact test results note --- ci-scripts/ran_dashboard/Hdashboard.py | 53 +++++++++++++++++++++----- 1 file changed, 44 insertions(+), 9 deletions(-) diff --git a/ci-scripts/ran_dashboard/Hdashboard.py b/ci-scripts/ran_dashboard/Hdashboard.py index 0cfae97c76..3fae068dc7 100644 --- a/ci-scripts/ran_dashboard/Hdashboard.py +++ b/ci-scripts/ran_dashboard/Hdashboard.py @@ -509,18 +509,52 @@ class Dashboard: s3.meta.client.copy(copy_source, 'oaitestdashboard', path+'/'+ 'test_styles.css') - def PostGitNote(self,mr,jobname,buildurl,buildid,status): + def PostGitNote(self,mr,commit, jobname,buildurl,buildid,status): + #current date and time to be posted with test reulst + now = datetime.now() + dt_string = now.strftime("%d/%m/%Y %H:%M") + gl = gitlab.Gitlab.from_config('OAI') project_id = 223 project = gl.projects.get(project_id) + + #retrieve all the notes from the MR editable_mr = project.mergerequests.get(int(mr)) - mr_notes = editable_mr.notes.list() - mr_note = editable_mr.notes.create({ - 'body': 'Completed Test : '+jobname+', status: '+status+', '+\ - '('+buildid+')
'+\ - 'Consolidated Test Results' - }) - editable_mr.save() + mr_notes = editable_mr.notes.list(all=True) + + #find key word in notes to find out if such a note has already been posted + n=0 + found=False + while found==False and nConsolidated Test Results
'+\ + dt_string + ' ' + commit + ': '+jobname+', status is '+status+', '+\ + '('+buildid+')
' + }) + editable_mr.save() + else: + #retrieve current note : due to post incr in the parsing loop, need to check note n-1 + cur_body = mr_notes[n-1].body + append_body = dt_string + ' ' + commit + ': '+jobname+', status is '+status+', '+\ + '('+buildid+')
' + new_body = cur_body + append_body + #create a new note at the bottom + mr_note = editable_mr.notes.create({ + 'body': new_body + }) + editable_mr.save() + #delete current note + mr_notes[n-1].delete() + editable_mr.save() + + def main(): @@ -535,13 +569,14 @@ def main(): buildurl=sys.argv[4] buildid=sys.argv[5] status=sys.argv[6] + commit=sys.argv[7] htmlDash=Dashboard() if mr in htmlDash.mr_list: htmlDash.Build('singleMR',mr,'/tmp/MR'+mr+'_index.html') htmlDash.CopyToS3('/tmp/MR'+mr+'_index.html','oaitestdashboard','MR'+mr+'/index.html') htmlDash.Build('Tests','0000','/tmp/Tests_index.html') htmlDash.CopyToS3('/tmp/Tests_index.html','oaitestdashboard','index.html') - htmlDash.PostGitNote(mr,jobname,buildurl,buildid,status) + htmlDash.PostGitNote(mr,commit,jobname,buildurl,buildid,status) else: print("Not a Merge Request => this build is for testing/debug purpose, no report to git") #test and MR status dash boards, cron based From 39f5863280f8bf3ff8831c89294f49c92fbd8bf7 Mon Sep 17 00:00:00 2001 From: hardy Date: Thu, 13 Jan 2022 21:37:54 +0100 Subject: [PATCH 2/5] update jenkinsfile to provide git post with commit id --- ci-scripts/Jenkinsfile-tmp-multi-enb-nsa | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci-scripts/Jenkinsfile-tmp-multi-enb-nsa b/ci-scripts/Jenkinsfile-tmp-multi-enb-nsa index a3939d832d..7ac5942698 100644 --- a/ci-scripts/Jenkinsfile-tmp-multi-enb-nsa +++ b/ci-scripts/Jenkinsfile-tmp-multi-enb-nsa @@ -390,7 +390,7 @@ pipeline { steps { script { dir ('ci-scripts/ran_dashboard') { - sh "python3 Hdashboard.py testevent ${params.eNB_MR} ${JOB_NAME} ${env.BUILD_URL} ${env.BUILD_ID} ${StatusForDb} " + sh "python3 Hdashboard.py testevent ${params.eNB_MR} ${JOB_NAME} ${env.BUILD_URL} ${env.BUILD_ID} ${StatusForDb} ${params.eNB_CommitID}" } } } From e62844bfefd34142d94d3c16d7ff540ba4139954 Mon Sep 17 00:00:00 2001 From: hardy Date: Mon, 17 Jan 2022 12:47:15 +0100 Subject: [PATCH 3/5] debug : change gitpost method --- ci-scripts/Jenkinsfile-trig-nsa | 68 +++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/ci-scripts/Jenkinsfile-trig-nsa b/ci-scripts/Jenkinsfile-trig-nsa index 7b4238d678..ef45227111 100644 --- a/ci-scripts/Jenkinsfile-trig-nsa +++ b/ci-scripts/Jenkinsfile-trig-nsa @@ -47,38 +47,48 @@ pipeline { COMMIT_ID=sh returnStdout: true, script: """curl --silent "https://gitlab.eurecom.fr/api/v4/projects/oai%2Fopenairinterface5g/merge_requests/${MR}" | jq ".sha" || true """ COMMIT_ID=COMMIT_ID.trim() echo "Testing NSA on : ${MR} ${SRC_BRANCH} ${COMMIT_ID}" + def GitPostArgs = MR + ' ' + COMMIT_ID + ' ' + //calling NSA B200 - build job: "RAN-NSA-B200-Module-LTEBOX", wait : true, propagate : false, parameters: [ + jobName = "RAN-NSA-B200-Module-LTEBOX" + def jobStatus = build job: jobName, wait : true, propagate : false, parameters: [ string(name: 'eNB_MR', value: String.valueOf(MR)), string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) ] + jobResult = jobStatus.getResult() + def build_url = jobStatus.getBuildVariables()["BUILD_URL"]; + def build_id = jobStatus.getBuildVariables()["BUILD_ID"]; + GitPostArgs += jobName + ' ' + build_url + ' ' + build_id + ' ' + jobResult + echo GitPostArgs + + //calling NSA 2x2 - build job: "RAN-NSA-2x2-Module-OAIEPC", wait : true, propagate : false, parameters: [ - string(name: 'eNB_MR', value: String.valueOf(MR)), - string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), - string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), - string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), - booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) - ] + //build job: "RAN-NSA-2x2-Module-OAIEPC", wait : true, propagate : false, parameters: [ + // string(name: 'eNB_MR', value: String.valueOf(MR)), + // string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), + // string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), + // string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), + // booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) + //] //calling LTE 2x2 - build job: "RAN-LTE-2x2-Module-OAIEPC", wait : true, propagate : false, parameters: [ - string(name: 'eNB_MR', value: String.valueOf(MR)), - string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), - string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), - string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), - booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) - ] + //build job: "RAN-LTE-2x2-Module-OAIEPC", wait : true, propagate : false, parameters: [ + // string(name: 'eNB_MR', value: String.valueOf(MR)), + // string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), + // string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), + // string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), + // booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) + //] //calling SA - build job: "RAN-SA-Module-CN5G", wait : true, propagate : false, parameters: [ - string(name: 'eNB_MR', value: String.valueOf(MR)), - string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), - string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), - string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), - booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) - ] + //build job: "RAN-SA-Module-CN5G", wait : true, propagate : false, parameters: [ + // string(name: 'eNB_MR', value: String.valueOf(MR)), + // string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), + // string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), + // string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), + // booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) + //] //calling OAIUE B200 //build job: "RAN-SA-OAIUE-B200-CN5G", wait : true, propagate : false, parameters: [ // string(name: 'eNB_MR', value: String.valueOf(MR)), @@ -96,13 +106,13 @@ pipeline { // booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) //] //calling OAIUE N310-X300 - build job: "RAN-SA-OAIUE-N310-X300-CN5G", wait : true, propagate : false, parameters: [ - string(name: 'eNB_MR', value: String.valueOf(MR)), - string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), - string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), - string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), - booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) - ] + //build job: "RAN-SA-OAIUE-N310-X300-CN5G", wait : true, propagate : false, parameters: [ + // string(name: 'eNB_MR', value: String.valueOf(MR)), + // string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), + // string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), + // string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), + // booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) + //] } } From 064ed744b3ab3f4a929b73b2116e38f4b9d68ba3 Mon Sep 17 00:00:00 2001 From: hardy Date: Mon, 17 Jan 2022 13:55:30 +0100 Subject: [PATCH 4/5] testing variable names --- ci-scripts/Jenkinsfile-trig-nsa | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci-scripts/Jenkinsfile-trig-nsa b/ci-scripts/Jenkinsfile-trig-nsa index ef45227111..031f38f989 100644 --- a/ci-scripts/Jenkinsfile-trig-nsa +++ b/ci-scripts/Jenkinsfile-trig-nsa @@ -59,8 +59,8 @@ pipeline { booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) ] jobResult = jobStatus.getResult() - def build_url = jobStatus.getBuildVariables()["BUILD_URL"]; - def build_id = jobStatus.getBuildVariables()["BUILD_ID"]; + build_url = jobStatus.getAbsoluteUrl() + build_id = jobStatus.getNumber().toString() GitPostArgs += jobName + ' ' + build_url + ' ' + build_id + ' ' + jobResult echo GitPostArgs From 1f0c2f890c877fae534559761b8cec45f2bcf984 Mon Sep 17 00:00:00 2001 From: hardy Date: Mon, 17 Jan 2022 22:47:41 +0100 Subject: [PATCH 5/5] new git post finalized, to be tested --- ci-scripts/Jenkinsfile-tmp-multi-enb-nsa | 2 +- ci-scripts/Jenkinsfile-trig-nsa | 119 ++++++++++++++++------- ci-scripts/ran_dashboard/Hdashboard.py | 96 +++++++++--------- 3 files changed, 134 insertions(+), 83 deletions(-) diff --git a/ci-scripts/Jenkinsfile-tmp-multi-enb-nsa b/ci-scripts/Jenkinsfile-tmp-multi-enb-nsa index 7ac5942698..6e987a5e38 100644 --- a/ci-scripts/Jenkinsfile-tmp-multi-enb-nsa +++ b/ci-scripts/Jenkinsfile-tmp-multi-enb-nsa @@ -390,7 +390,7 @@ pipeline { steps { script { dir ('ci-scripts/ran_dashboard') { - sh "python3 Hdashboard.py testevent ${params.eNB_MR} ${JOB_NAME} ${env.BUILD_URL} ${env.BUILD_ID} ${StatusForDb} ${params.eNB_CommitID}" + sh "python3 Hdashboard.py testevent ${params.eNB_MR} " } } } diff --git a/ci-scripts/Jenkinsfile-trig-nsa b/ci-scripts/Jenkinsfile-trig-nsa index 031f38f989..a9670bd12b 100644 --- a/ci-scripts/Jenkinsfile-trig-nsa +++ b/ci-scripts/Jenkinsfile-trig-nsa @@ -27,6 +27,9 @@ def pythonExecutor = params.pythonExecutor def TARGET_BRANCH = "develop" def ALLOW_MERGE = true +def GitPostArgs = '' +def DataBaseHost = params.DataBaseHost +def jobStatus pipeline { agent { @@ -47,11 +50,28 @@ pipeline { COMMIT_ID=sh returnStdout: true, script: """curl --silent "https://gitlab.eurecom.fr/api/v4/projects/oai%2Fopenairinterface5g/merge_requests/${MR}" | jq ".sha" || true """ COMMIT_ID=COMMIT_ID.trim() echo "Testing NSA on : ${MR} ${SRC_BRANCH} ${COMMIT_ID}" - def GitPostArgs = MR + ' ' + COMMIT_ID + ' ' + commit = COMMIT_ID.replace("\"","") + GitPostArgs += MR + ' ' + commit + ' ' + echo GitPostArgs + + //calling LTE 2x2 + jobName = "RAN-LTE-2x2-Module-OAIEPC" + jobStatus = build job: jobName, wait : true, propagate : false, parameters: [ + string(name: 'eNB_MR', value: String.valueOf(MR)), + string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), + string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), + string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), + booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) + ] + jobResult = jobStatus.getResult() + build_url = jobStatus.getAbsoluteUrl() + build_id = jobStatus.getNumber().toString() + GitPostArgs += jobName + ' ' + build_url + ' ' + build_id + ' ' + jobResult + ' ' + echo GitPostArgs //calling NSA B200 jobName = "RAN-NSA-B200-Module-LTEBOX" - def jobStatus = build job: jobName, wait : true, propagate : false, parameters: [ + jobStatus = build job: jobName, wait : true, propagate : false, parameters: [ string(name: 'eNB_MR', value: String.valueOf(MR)), string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), @@ -59,36 +79,42 @@ pipeline { booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) ] jobResult = jobStatus.getResult() - build_url = jobStatus.getAbsoluteUrl() - build_id = jobStatus.getNumber().toString() - GitPostArgs += jobName + ' ' + build_url + ' ' + build_id + ' ' + jobResult + build_url = jobStatus.getAbsoluteUrl() + build_id = jobStatus.getNumber().toString() + GitPostArgs += jobName + ' ' + build_url + ' ' + build_id + ' ' + jobResult + ' ' + echo GitPostArgs + + //calling NSA 2x2 + jobName = "RAN-NSA-2x2-Module-OAIEPC" + jobStatus = build job: jobName, wait : true, propagate : false, parameters: [ + string(name: 'eNB_MR', value: String.valueOf(MR)), + string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), + string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), + string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), + booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) + ] + jobResult = jobStatus.getResult() + build_url = jobStatus.getAbsoluteUrl() + build_id = jobStatus.getNumber().toString() + GitPostArgs += jobName + ' ' + build_url + ' ' + build_id + ' ' + jobResult + ' ' + echo GitPostArgs + + //calling SA + jobName = "RAN-SA-Module-CN5G" + jobStatus = build job: jobName, wait : true, propagate : false, parameters: [ + string(name: 'eNB_MR', value: String.valueOf(MR)), + string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), + string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), + string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), + booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) + ] + jobResult = jobStatus.getResult() + build_url = jobStatus.getAbsoluteUrl() + build_id = jobStatus.getNumber().toString() + GitPostArgs += jobName + ' ' + build_url + ' ' + build_id + ' ' + jobResult + ' ' echo GitPostArgs - //calling NSA 2x2 - //build job: "RAN-NSA-2x2-Module-OAIEPC", wait : true, propagate : false, parameters: [ - // string(name: 'eNB_MR', value: String.valueOf(MR)), - // string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), - // string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), - // string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), - // booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) - //] - //calling LTE 2x2 - //build job: "RAN-LTE-2x2-Module-OAIEPC", wait : true, propagate : false, parameters: [ - // string(name: 'eNB_MR', value: String.valueOf(MR)), - // string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), - // string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), - // string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), - // booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) - //] - //calling SA - //build job: "RAN-SA-Module-CN5G", wait : true, propagate : false, parameters: [ - // string(name: 'eNB_MR', value: String.valueOf(MR)), - // string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), - // string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), - // string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), - // booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) - //] //calling OAIUE B200 //build job: "RAN-SA-OAIUE-B200-CN5G", wait : true, propagate : false, parameters: [ // string(name: 'eNB_MR', value: String.valueOf(MR)), @@ -105,19 +131,38 @@ pipeline { // string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), // booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) //] - //calling OAIUE N310-X300 - //build job: "RAN-SA-OAIUE-N310-X300-CN5G", wait : true, propagate : false, parameters: [ - // string(name: 'eNB_MR', value: String.valueOf(MR)), - // string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), - // string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), - // string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), - // booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) - //] + //calling OAIUE N310-X300 + jobName = "RAN-SA-OAIUE-N310-X300-CN5G" + jobStatus = build job: jobName, wait : true, propagate : false, parameters: [ + string(name: 'eNB_MR', value: String.valueOf(MR)), + string(name: 'eNB_Branch', value: String.valueOf(SRC_BRANCH)), + string(name: 'eNB_CommitID', value: String.valueOf(COMMIT_ID)), + string(name: 'eNB_TargetBranch', value: String.valueOf(TARGET_BRANCH)), + booleanParam(name: 'eNB_mergeRequest', value: Boolean.valueOf(ALLOW_MERGE)) + ] + jobResult = jobStatus.getResult() + build_url = jobStatus.getAbsoluteUrl() + build_id = jobStatus.getNumber().toString() + GitPostArgs += jobName + ' ' + build_url + ' ' + build_id + ' ' + jobResult + ' ' + echo GitPostArgs } } } } + stage ('Git Post') { + when { + expression { params.DataBaseHost != "none" } + } + agent {label DataBaseHost} + steps { + script { + dir ('ci-scripts/ran_dashboard') { + sh "python3 Hdashboard.py gitpost ${GitPostArgs}" + } + } + } + } } } diff --git a/ci-scripts/ran_dashboard/Hdashboard.py b/ci-scripts/ran_dashboard/Hdashboard.py index 3fae068dc7..864e31fc1f 100644 --- a/ci-scripts/ran_dashboard/Hdashboard.py +++ b/ci-scripts/ran_dashboard/Hdashboard.py @@ -509,81 +509,87 @@ class Dashboard: s3.meta.client.copy(copy_source, 'oaitestdashboard', path+'/'+ 'test_styles.css') - def PostGitNote(self,mr,commit, jobname,buildurl,buildid,status): - #current date and time to be posted with test reulst - now = datetime.now() - dt_string = now.strftime("%d/%m/%Y %H:%M") + def PostGitNote(self,mr,commit,args): + #current date and time to be posted with test results + #now = datetime.now() + #dt_string = now.strftime("%d/%m/%Y %H:%M") - gl = gitlab.Gitlab.from_config('OAI') - project_id = 223 - project = gl.projects.get(project_id) + if len(args)%4 != 0: + print("Wrong Number of Arguments") + return + else : + n_tests=len(args)//4 - #retrieve all the notes from the MR - editable_mr = project.mergerequests.get(int(mr)) - mr_notes = editable_mr.notes.list(all=True) + gl = gitlab.Gitlab.from_config('OAI') + project_id = 223 + project = gl.projects.get(project_id) - #find key word in notes to find out if such a note has already been posted - n=0 - found=False - while found==False and nConsolidated Test Results
'+\ + 'Tested CommitID: ' + commit + '
' + + for i in range(0,n_tests): + jobname = args[4*i] + buildurl = args[4*i+1] + buildid = args[4*i+2] + status = args[4*i+3] + body += jobname+', status is '+status+', ('+buildid+')
' - if found==False: #create new note mr_note = editable_mr.notes.create({ - 'body': 'Consolidated Test Results
'+\ - dt_string + ' ' + commit + ': '+jobname+', status is '+status+', '+\ - '('+buildid+')
' + 'body': body }) editable_mr.save() - else: - #retrieve current note : due to post incr in the parsing loop, need to check note n-1 - cur_body = mr_notes[n-1].body - append_body = dt_string + ' ' + commit + ': '+jobname+', status is '+status+', '+\ - '('+buildid+')
' - new_body = cur_body + append_body - #create a new note at the bottom - mr_note = editable_mr.notes.create({ - 'body': new_body - }) - editable_mr.save() - #delete current note - mr_notes[n-1].delete() - editable_mr.save() def main(): - #call from Jenkinsfile : sh "python3 Hdashboard.py testevent ${params.eNB_MR} ${JOB_NAME} ${env.BUILD_URL} ${env.BUILD_ID} ${StatusForDb} " + #call from slave Jenkinsfile : sh "python3 Hdashboard.py testevent ${params.eNB_MR} " + #call from master Jenkinsfile : sh "python3 Hdashboard.py gitpost ${GitPostArgs}" + - #individual MR test results + test dashboard, event based (end of jenkins pipeline) if len(sys.argv)>1: + + #individual MR test results + test dashboard, event based (end of slave jenkins pipeline) if sys.argv[1]=="testevent" : mr=sys.argv[2] - jobname=sys.argv[3] - buildurl=sys.argv[4] - buildid=sys.argv[5] - status=sys.argv[6] - commit=sys.argv[7] htmlDash=Dashboard() if mr in htmlDash.mr_list: + #single MR test results htmlDash.Build('singleMR',mr,'/tmp/MR'+mr+'_index.html') htmlDash.CopyToS3('/tmp/MR'+mr+'_index.html','oaitestdashboard','MR'+mr+'/index.html') + #all MR test results htmlDash.Build('Tests','0000','/tmp/Tests_index.html') htmlDash.CopyToS3('/tmp/Tests_index.html','oaitestdashboard','index.html') - htmlDash.PostGitNote(mr,commit,jobname,buildurl,buildid,status) + + #git post with MR test results, event based (end of master jenkins pipeline) + elif sys.argv[1]=="gitpost": + mr=sys.argv[2] + commit=sys.argv[3] + args=[] + for i in range (4, len(sys.argv)): #jobname, url, id , result + args.append(sys.argv[i]) + htmlDash=Dashboard() + if mr in htmlDash.mr_list: + htmlDash.PostGitNote(mr,commit, args) else: print("Not a Merge Request => this build is for testing/debug purpose, no report to git") - #test and MR status dash boards, cron based + else: + print("Wrong argument at position 1") + + + #test and MR status dashboards, cron based else: htmlDash=Dashboard() + #all MR status dashboard htmlDash.Build('MR','0000','/tmp/MR_index.html') htmlDash.CopyToS3('/tmp/MR_index.html','oairandashboard','index.html') + #all MR test results htmlDash.Build('Tests','0000','/tmp/Tests_index.html') htmlDash.CopyToS3('/tmp/Tests_index.html','oaitestdashboard','index.html')