From dbb0bca5804f6675eaa96c6413f59e7db61d1669 Mon Sep 17 00:00:00 2001 From: hardy Date: Fri, 9 Apr 2021 16:17:19 +0200 Subject: [PATCH] new ci files to build gir MR dashboard --- ci-scripts/Jenkinsfile-git-dashboard | 45 +++++++++++++++++++++ ci-scripts/data_extraction_from_gitlab.py | 49 +++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 ci-scripts/Jenkinsfile-git-dashboard create mode 100644 ci-scripts/data_extraction_from_gitlab.py diff --git a/ci-scripts/Jenkinsfile-git-dashboard b/ci-scripts/Jenkinsfile-git-dashboard new file mode 100644 index 0000000000..12533646c0 --- /dev/null +++ b/ci-scripts/Jenkinsfile-git-dashboard @@ -0,0 +1,45 @@ +#!/bin/groovy +/* + * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The OpenAirInterface Software Alliance licenses this file to You under + * the OAI Public License, Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.openairinterface.org/?page_id=698 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *------------------------------------------------------------------------------- + * For more information about the OpenAirInterface (OAI) Software Alliance: + * contact@openairinterface.org + */ + +// Template Jenkins Declarative Pipeline script to run Test w/ RF HW + +// Location of the python executor node shall be in the same subnet as the others servers +def pythonExecutor = params.pythonExecutor + + +pipeline { + agent { + label pythonExecutor + } + stages { + stage ("Fetch Data") { + steps { + script { + //retrieve MR data from gitlab + sh returnStdout: true, script: 'python3 ci-scripts/data_extraction_from_gitlab.py' + } + } + } + } +} + + diff --git a/ci-scripts/data_extraction_from_gitlab.py b/ci-scripts/data_extraction_from_gitlab.py new file mode 100644 index 0000000000..8ed1cca79c --- /dev/null +++ b/ci-scripts/data_extraction_from_gitlab.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Wed Mar 31 21:57:37 2021 + +@author: hardy +""" + +import subprocess +import shlex +import json +import datetime + + +cmd="""curl --silent "https://gitlab.eurecom.fr/api/v4/projects/oai%2Fopenairinterface5g/merge_requests?state=opened&per_page=100" """ +process = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE) +output = process.stdout.readline() +tmp=output.decode("utf-8") + + +d = json.loads(tmp) +f = open("/tmp/gitlab_dashboard.txt", "w") +f.write("MR;Created_at;Author;Title;CAN START;IN PROGRESS;COMPLETED;OK MERGE;Merge conflicts\n") +for x in range(len(d)): + date_time_str = d[x]['created_at'] + date_time_obj = datetime.datetime.strptime(date_time_str, '%Y-%m-%dT%H:%M:%S.%fZ') + + milestone1=milestone2=milestone3=milestone4="" + if d[x]['milestone']=="REVIEW_CAN_START": + milestone1="X" + elif d[x]['milestone']=="REVIEW_IN_PROGRESS": + milestone2="X" + elif d[x]['milestone']=="REVIEW_COMPLETED_AND_APPROVED": + milestone3="X" + elif d[x]['milestone']=="OK_TO_BE_MERGED": + milestone4="X" + else: + pass + + + if d[x]['has_conflicts']==True: + conflicts = "YES" + else: + conflicts = "" + + f.write(str(d[x]['iid'])+';'+ str(date_time_obj.date())+';'+ str(d[x]['author']['name'])+';'+str(d[x]['title'])+";" \ + + milestone1 +";"+ milestone2 +";"+ milestone3 +";"+ milestone4 + ";" + conflicts +"\n") +f.close() +