/
run_viavi_pipeline.py
125 lines (112 loc) · 3.63 KB
/
run_viavi_pipeline.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import argparse
try:
import gitlab
except ImportError:
print("Install Gitlab Python library: https://pypi.org/project/python-gitlab/")
exit(1)
def main():
"""
Entrypoint runner.
"""
parser = argparse.ArgumentParser(description="Viavi CI runner.")
parser.add_argument("--token", required=True, help="Gitlab private token: https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#create-a-personal-access-token")
parser.add_argument("--branch", required=True, help="srsgnb git branch.")
parser.add_argument("--campaign-path", required=True, help="Campaign path. E.g: C:\\ci\\CI 4x4 ORAN-FH.xml")
parser.add_argument("--testname", required=True, help='Testname in the campaign. E.g: "32UE static DL + UL UDP - Dell"')
parser.add_argument("--timeout", required=True, help="Timeout in seconds for the test")
parser.add_argument("--loglevel", default="warning", required=False, choices=["info", "warning", "error"], help="srsgnb loglevel")
args = parser.parse_args()
private_token = args.token
branch = args.branch
campaign_name = args.campaign_path
test_name = args.testname
timeout = args.timeout
loglevel = args.loglevel
INFRASTRUCTURE_TAG = "on-prem-amd64-avx2-avx512"
OS_NAME = "ubuntu-24.04"
COMPILER = "gcc"
TESTMODE = "none"
MAKE_ARGS = "-j7"
BUILD_ARGS = "-DCMAKE_BUILD_TYPE=Release -DAUTO_DETECT_ISA=True -DENABLE_UHD=False -DENABLE_DPDK=True -DENABLE_ZEROMQ=False -DENABLE_AVX512=True"
DPDK_VERSION = "23.11"
TESTBED = "viavi"
MARKERS = "viavi_manual"
PYARGS = f"--viavi-manual-campaign-filename \"{campaign_name}\" --viavi-manual-test-name \"{test_name}\" --viavi-manual-test-timeout {timeout}"
RETINA_ARGS = "gnb.all.pcap=False gnb.all.enable_metrics=False"
variables = [
{
'key': 'INFRASTRUCTURE_TAG',
'value': INFRASTRUCTURE_TAG
},
{
'key': 'OS',
'value': OS_NAME
},
{
'key': 'COMPILER',
'value': COMPILER
},
{
'key': 'TEST_MODE',
'value': TESTMODE
},
{
'key': 'BUILD_ARGS',
'value': BUILD_ARGS
},
{
'key': 'MAKE_ARGS',
'value': MAKE_ARGS
},
{
'key': 'UHD_VERSION',
'value': ''
},
{
'key': 'DPDK_VERSION',
'value': DPDK_VERSION
},
{
'key': 'TESTBED',
'value': TESTBED
},
{
'key': 'MARKERS',
'value': MARKERS
},
{
'key': 'KEYWORDS',
'value': ''
},
{
'key': 'PYTEST_ARGS',
'value': PYARGS
},
{
'key': 'RETINA_ARGS',
'value': RETINA_ARGS
},
{
'key': 'E2E_LOG_LEVEL',
'value': loglevel
},
{
'key': 'GROUP',
'value': 'viavi',
},
{
'key': "PIPELINE_DESCRIPTION",
'value': "Viavi manual test"
}
]
print(f"Creating Viavi pipeline for branch {branch}...")
print(f" - BUILD_ARGS {BUILD_ARGS}")
print(f" - DPDK_VERSION {DPDK_VERSION}")
print(f" - OS {OS_NAME}")
gl = gitlab.Gitlab('https://gitlab.com', private_token=private_token)
project = gl.projects.get('softwareradiosystems/srsgnb')
pipeline = project.pipelines.create({'ref': branch, 'variables': variables})
pipeline_url = pipeline.web_url
print(f"Pipeline created: {pipeline_url}")
if __name__ == "__main__":
main()