@@ -105,11 +105,16 @@ variables:
105105 tags : ["${AMD64_TAG}"]
106106 stage : build and unit tests
107107 variables :
108+ # Setup
109+ UHD_VERSION : " " # Default for OS
110+ DPDK_VERSION : " " # None
111+ # Build
108112 BUILD_TYPE : " " # Empty for cmake default
109113 ASSERT_LEVEL : " " # Empty for cmake default
110114 ENABLE_EXPORT : " " # Empty for cmake default
111115 ENABLE_FFTW : " " # Empty for cmake default
112116 ENABLE_UHD : " " # Empty for cmake default
117+ ENABLE_DPDK : " " # Empty for cmake default
113118 ENABLE_ZEROMQ : " True" # Empty for cmake default
114119 ENABLE_ASAN : " " # Empty for cmake default
115120 ENABLE_TSAN : " " # Empty for cmake default
@@ -140,59 +145,73 @@ variables:
140145 ram_reporter_pid=$!
141146 fi
142147
143- if [ -n "${UHD_VERSION}" ]; then
144- BUILD_ARGS="${BUILD_ARGS} -u ${UHD_VERSION}"
145- fi
148+ BUILD_CMD=""
146149 if [ -n "${BUILD_TYPE}" ]; then
147- BUILD_ARGS ="${BUILD_ARGS } -DCMAKE_BUILD_TYPE=${BUILD_TYPE}"
150+ BUILD_CMD ="${BUILD_CMD } -DCMAKE_BUILD_TYPE=${BUILD_TYPE}"
148151 fi
149152 if [ -n "${ASSERT_LEVEL}" ]; then
150- BUILD_ARGS ="${BUILD_ARGS } -DASSERT_LEVEL=${ASSERT_LEVEL}"
153+ BUILD_CMD ="${BUILD_CMD } -DASSERT_LEVEL=${ASSERT_LEVEL}"
151154 fi
152155 if [ -n "${AUTO_DETECT_ISA}" ]; then
153- BUILD_ARGS ="${BUILD_ARGS } -DAUTO_DETECT_ISA=${AUTO_DETECT_ISA}"
156+ BUILD_CMD ="${BUILD_CMD } -DAUTO_DETECT_ISA=${AUTO_DETECT_ISA}"
154157 fi
155158 if [ -n "${ENABLE_EXPORT}" ]; then
156- BUILD_ARGS ="${BUILD_ARGS } -DENABLE_EXPORT=${ENABLE_EXPORT}"
159+ BUILD_CMD ="${BUILD_CMD } -DENABLE_EXPORT=${ENABLE_EXPORT}"
157160 fi
158161 if [ -n "${ENABLE_FFTW}" ]; then
159- BUILD_ARGS ="${BUILD_ARGS } -DENABLE_FFTW=${ENABLE_FFTW}"
162+ BUILD_CMD ="${BUILD_CMD } -DENABLE_FFTW=${ENABLE_FFTW}"
160163 fi
161164 if [ -n "${ENABLE_UHD}" ]; then
162- BUILD_ARGS="${BUILD_ARGS} -DENABLE_UHD=${ENABLE_UHD}"
165+ BUILD_CMD="${BUILD_CMD} -DENABLE_UHD=${ENABLE_UHD}"
166+ fi
167+ if [ -n "${ENABLE_DPDK}" ]; then
168+ BUILD_CMD="${BUILD_CMD} -DENABLE_DPDK=${ENABLE_DPDK}"
163169 fi
164170 if [ -n "${ENABLE_ZEROMQ}" ]; then
165- BUILD_ARGS ="${BUILD_ARGS } -DENABLE_ZEROMQ=${ENABLE_ZEROMQ}"
171+ BUILD_CMD ="${BUILD_CMD } -DENABLE_ZEROMQ=${ENABLE_ZEROMQ}"
166172 fi
167173 if [ -n "${ENABLE_ASAN}" ]; then
168- BUILD_ARGS ="${BUILD_ARGS } -DENABLE_ASAN=${ENABLE_ASAN}"
174+ BUILD_CMD ="${BUILD_CMD } -DENABLE_ASAN=${ENABLE_ASAN}"
169175 fi
170176 if [ -n "${ENABLE_TSAN}" ]; then
171- BUILD_ARGS ="${BUILD_ARGS } -DENABLE_TSAN=${ENABLE_TSAN}"
177+ BUILD_CMD ="${BUILD_CMD } -DENABLE_TSAN=${ENABLE_TSAN}"
172178 fi
173179 if [ -n "${ENABLE_GCOV}" ]; then
174- BUILD_ARGS ="${BUILD_ARGS } -DENABLE_GCOV=${ENABLE_GCOV}"
180+ BUILD_CMD ="${BUILD_CMD } -DENABLE_GCOV=${ENABLE_GCOV}"
175181 fi
176182 if [ -n "${ENABLE_AVX2}" ]; then
177- BUILD_ARGS ="${BUILD_ARGS } -DENABLE_AVX2=${ENABLE_AVX2}"
183+ BUILD_CMD ="${BUILD_CMD } -DENABLE_AVX2=${ENABLE_AVX2}"
178184 fi
179185 if [ -n "${ENABLE_AVX512}" ]; then
180- BUILD_ARGS ="${BUILD_ARGS } -DENABLE_AVX512=${ENABLE_AVX512}"
186+ BUILD_CMD ="${BUILD_CMD } -DENABLE_AVX512=${ENABLE_AVX512}"
181187 fi
182188 if [ -n "${ENABLE_WERROR}" ]; then
183- BUILD_ARGS ="${BUILD_ARGS } -DENABLE_WERROR=${ENABLE_WERROR}"
189+ BUILD_CMD ="${BUILD_CMD } -DENABLE_WERROR=${ENABLE_WERROR}"
184190 fi
185191 if [[ $TEST_MODE = "none" ]]; then
186- BUILD_ARGS ="${BUILD_ARGS } -DBUILD_TESTS=False"
192+ BUILD_CMD ="${BUILD_CMD } -DBUILD_TESTS=False"
187193 fi
188- if [ -n "${MAKE_ARGS}" ]; then
189- BUILD_ARGS="-m ${MAKE_ARGS} ${BUILD_ARGS}"
194+ if [ -n "${BUILD_ARGS}" ]; then
195+ BUILD_CMD="${BUILD_CMD} ${BUILD_ARGS}"
196+ fi
197+
198+ if [ -n "${DPDK_VERSION}" ]; then
199+ BUILD_CMD="-d ${DPDK_VERSION} ${BUILD_CMD}"
200+ fi
201+ if [ -n "${UHD_VERSION}" ]; then
202+ BUILD_CMD="-u ${UHD_VERSION} ${BUILD_CMD}"
190203 fi
191204 if [ -n "${CLEAN_BUILD}" ]; then
192- BUILD_ARGS="-r ${CLEAN_BUILD} ${BUILD_ARGS}"
205+ BUILD_CMD="-r ${CLEAN_BUILD} ${BUILD_CMD}"
206+ fi
207+ if [ -n "${MAKE_ARGS}" ]; then
208+ BUILD_CMD="-m ${MAKE_ARGS} ${BUILD_CMD}"
209+ fi
210+ if [ -n "${COMPILER}" ]; then
211+ BUILD_CMD="-c ${COMPILER} ${BUILD_CMD}"
193212 fi
213+ BUILD_CMD="builder.sh ${BUILD_CMD} ."
194214
195- BUILD_CMD="builder.sh -c ${COMPILER} ${BUILD_ARGS} ."
196215 echo "${BUILD_CMD}"
197216 echo "============================================================================================="
198217 $BUILD_CMD
@@ -209,16 +228,15 @@ variables:
209228 echo "Build time is: $execution_time seconds"
210229
211230 export metric_prefix=""
212- if [[ $ON_MR == "true" ]]; then metric_prefix="_cached "; fi
231+ if [[ $ON_MR == "true" ]]; then metric_prefix="_pr "; fi
213232
214233 if [ -e "${CI_PROJECT_DIR}/ram_usage.txt" ]; then
215234 ram_usage=$(cat ${CI_PROJECT_DIR}/ram_usage.txt)
216235 echo "RAM usage is: $ram_usage GB"
217236 kill $ram_reporter_pid
218- echo '[{"name":"build","description":"Compilation","tests":[{"name":"'$OS'","description":"'$OS' build","metrics":[{"name":"build_time'$metric_prefix'","description":"Build time","value":['$execution_time'],"unit":"seconds","type":"time"}, {"name":"ram_usage'$metric_prefix'","description":"RAM usage","value":['$ram_usage'],"unit":"GB","type":"ram"}],"duts":[]}]}]' >> build_time_metrics.json
219- else
220- echo '[{"name":"build","description":"Compilation","tests":[{"name":"'$OS'","description":"'$OS' build","metrics":[{"name":"build_time'$metric_prefix'","description":"Build time","value":['$execution_time'],"unit":"seconds","type":"time"}],"duts":[]}]}]' >> build_time_metrics.json
237+ echo "ram_usage${metric_prefix},pipeline=${CI_PIPELINE_ID},os=${OS} value=${ram_usage}" >> build_time_metrics.txt
221238 fi
239+ echo "build_time${metric_prefix},pipeline=${CI_PIPELINE_ID},os=${OS} value=${execution_time}" >> build_time_metrics.txt
222240 }
223241 - |
224242 launch_tests() {
@@ -290,7 +308,7 @@ variables:
290308 - |
291309 if [ -z "${SAVE_ARTIFACTS}" ]; then
292310 rm -Rf ${CI_PROJECT_DIR}/build
293- rm -Rf build_time_metrics.json
311+ rm -Rf build_time_metrics.txt
294312 fi
295313 timeout : 4h
296314 artifacts : &build_artifacts
@@ -303,7 +321,7 @@ variables:
303321 - ${CI_JOB_ID}_coverage.xml
304322 - build/apps/gnb/gnb
305323 - build/Testing/Temporary/MemoryChecker.*.log
306- - build_time_metrics.json
324+ - build_time_metrics.txt
307325 expire_in : 10 minutes
308326 cache :
309327 - !reference [.fetch_src_cache, cache]
@@ -858,6 +876,33 @@ ubuntu-22.04 arm neon release:
858876 matrix :
859877 - COMPILER : [gcc, clang]
860878
879+ # Basic DPDK
880+
881+ smoke dpdk :
882+ extends : .build_and_unit
883+ rules :
884+ - if : $CI_DESCRIPTION =~ /Nightly/
885+ when : delayed
886+ start_in : 180 minutes
887+ interruptible : false
888+ variables :
889+ COMPILER : clang
890+ ENABLE_UHD : " False"
891+ ENABLE_ZEROMQ : " False"
892+ ENABLE_DPDK : " True"
893+ ASSERT_LEVEL : PARANOID
894+ AUTO_DETECT_ISA : " True"
895+ ENABLE_AVX512 : " False"
896+ tags : ["${AMD64_TAG}"]
897+ parallel :
898+ matrix :
899+ - OS : ubuntu-23.04
900+ DPDK_VERSION : ["22.11.2", "23.07"]
901+ - OS : ubuntu-22.04
902+ DPDK_VERSION : ["22.11.2", "23.07"]
903+ - OS : ubuntu-20.04
904+ DPDK_VERSION : ["22.11.2", "23.07"]
905+
861906# ##################
862907# Alternative OSs #
863908# ##################
@@ -1335,6 +1380,106 @@ rhel-8 arm neon:
13351380 << : *basic_combinations
13361381 AUTO_DETECT_ISA : " True"
13371382
1383+ # DPDK
1384+
1385+ .dpdk_combinations : &basic_combinations_dpdk
1386+ << : *basic_combinations
1387+ COMPILER : clang
1388+ ENABLE_UHD : " False"
1389+ ENABLE_ZEROMQ : " False"
1390+ ENABLE_DPDK : " True"
1391+ DPDK_VERSION : ["22.11.2", "23.07"]
1392+
1393+ ubuntu-20.04 amd64 avx2 dpdk :
1394+ extends : .build_and_unit
1395+ rules :
1396+ - if : $CI_DESCRIPTION =~ /Weekly/
1397+ when : delayed
1398+ start_in : 180 minutes
1399+ interruptible : false
1400+ tags : ["${AMD64_AVX2_TAG}"]
1401+ parallel :
1402+ matrix :
1403+ - OS : ubuntu-20.04
1404+ << : *basic_combinations_dpdk
1405+ AUTO_DETECT_ISA : " True"
1406+ ENABLE_AVX512 : " False"
1407+
1408+ ubuntu-20.04 amd64 avx512 dpdk :
1409+ extends : .build_and_unit
1410+ rules :
1411+ - if : $CI_DESCRIPTION =~ /Weekly/
1412+ when : delayed
1413+ start_in : 210 minutes
1414+ interruptible : false
1415+ tags : ["${AMD64_AVX512_TAG}"]
1416+ parallel :
1417+ matrix :
1418+ - OS : ubuntu-20.04
1419+ << : *basic_combinations_dpdk
1420+ AUTO_DETECT_ISA : " True"
1421+ ENABLE_AVX512 : " True"
1422+
1423+ ubuntu-22.04 amd64 avx2 dpdk :
1424+ extends : .build_and_unit
1425+ rules :
1426+ - if : $CI_DESCRIPTION =~ /Weekly/
1427+ when : delayed
1428+ start_in : 240 minutes
1429+ interruptible : false
1430+ tags : ["${AMD64_AVX2_TAG}"]
1431+ parallel :
1432+ matrix :
1433+ - OS : ubuntu-22.04
1434+ << : *basic_combinations_dpdk
1435+ AUTO_DETECT_ISA : " True"
1436+ ENABLE_AVX512 : " False"
1437+
1438+ ubuntu-22.04 amd64 avx512 dpdk :
1439+ extends : .build_and_unit
1440+ rules :
1441+ - if : $CI_DESCRIPTION =~ /Weekly/
1442+ when : delayed
1443+ start_in : 270 minutes
1444+ interruptible : false
1445+ tags : ["${AMD64_AVX512_TAG}"]
1446+ parallel :
1447+ matrix :
1448+ - OS : ubuntu-22.04
1449+ << : *basic_combinations_dpdk
1450+ AUTO_DETECT_ISA : " True"
1451+ ENABLE_AVX512 : " True"
1452+
1453+ ubuntu-23.04 amd64 avx2 dpdk :
1454+ extends : .build_and_unit
1455+ rules :
1456+ - if : $CI_DESCRIPTION =~ /Weekly/
1457+ when : delayed
1458+ start_in : 300 minutes
1459+ interruptible : false
1460+ tags : ["${AMD64_AVX2_TAG}"]
1461+ parallel :
1462+ matrix :
1463+ - OS : ubuntu-23.04
1464+ << : *basic_combinations_dpdk
1465+ AUTO_DETECT_ISA : " True"
1466+ ENABLE_AVX512 : " False"
1467+
1468+ ubuntu-23.04 amd64 avx512 dpdk :
1469+ extends : .build_and_unit
1470+ rules :
1471+ - if : $CI_DESCRIPTION =~ /Weekly/
1472+ when : delayed
1473+ start_in : 330 minutes
1474+ interruptible : false
1475+ tags : ["${AMD64_AVX512_TAG}"]
1476+ parallel :
1477+ matrix :
1478+ - OS : ubuntu-23.04
1479+ << : *basic_combinations_dpdk
1480+ AUTO_DETECT_ISA : " True"
1481+ ENABLE_AVX512 : " True"
1482+
13381483# ############
13391484# Run check #
13401485# ############
0 commit comments