@@ -78,6 +78,93 @@ builder version increased:
7878 fi
7979 echo "Version increased correctly."
8080
81+ # ###############################################################################
82+ # ROHC builder
83+ # ###############################################################################
84+ .ubuntu-rohc-builder :
85+ stage : dependencies
86+ image : ubuntu:${os_version}
87+ rules :
88+ - if : $ON_MR
89+ variables :
90+ os_version : " "
91+ arch_name : " "
92+ target_arch : " "
93+ GIT_STRATEGY : none
94+ KUBERNETES_CPU_REQUEST : ${SRS_CPU_LIMIT}
95+ KUBERNETES_CPU_LIMIT : ${SRS_CPU_LIMIT}
96+ KUBERNETES_MEMORY_REQUEST : ${SRS_MEMORY_LIMIT}
97+ KUBERNETES_MEMORY_LIMIT : ${SRS_MEMORY_LIMIT}
98+ before_script :
99+ - TZ=Europe/Madrid && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
100+
101+ # Download existing package in the registry, if exists
102+ - |
103+ download_from_registry() {
104+ DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y --no-install-recommends curl apt-transport-https ca-certificates xz-utils
105+
106+ cd ${CI_PROJECT_DIR}
107+ http_code=$(curl -w "%{http_code}" --header "PRIVATE-TOKEN: $CODEBOT_TOKEN" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/rohc/ubuntu-${os_version}-${arch_name}/rohc.tar.gz" -o output.tar.gz)
108+ if [[ $http_code == "200" ]]; then
109+ tar -xf output.tar.gz
110+ return 0
111+ else
112+ return 1
113+ fi
114+ }
115+
116+ # Install dependencies and compile
117+ - |
118+ build_rohc() {
119+ docker/scripts/install_rohc_dependencies.sh build
120+ docker/scripts/build_rohc.sh ${target_arch} ${KUBERNETES_CPU_REQUEST}
121+ mkdir -p ${CI_PROJECT_DIR}/.gitlab/ci/builders
122+ cp -r /opt/rohc ${CI_PROJECT_DIR}/.gitlab/ci/builders
123+ }
124+
125+ # Publish compiled version to the registry
126+ - |
127+ publish_to_registry() {
128+ cd ${CI_PROJECT_DIR}
129+ tar -czf rohc.tar.gz .gitlab/ci/builders/rohc
130+ curl --fail --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file rohc.tar.gz "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/rohc/ubuntu-${os_version}-${arch_name}/rohc.tar.gz"
131+ }
132+ script :
133+ - |
134+ if download_from_registry; then
135+ echo "Reusing existing package"
136+ else
137+ echo "Not found on the package registry. It will be compiled and published"
138+ build_rohc
139+ publish_to_registry
140+ fi
141+ artifacts :
142+ paths :
143+ - .gitlab/ci/builders/rohc
144+ expire_in : 8 hours
145+ parallel :
146+ matrix :
147+ - os_version : " 22.04"
148+ - os_version : " 24.04"
149+ - os_version : " 25.04"
150+ - os_version : " 25.10"
151+
152+ ubuntu-rohc-builder avx2 :
153+ extends : .ubuntu-rohc-builder
154+ tags :
155+ - amd64-avx2
156+ variables :
157+ arch_name : amd64
158+ target_arch : x86-64-v3
159+
160+ ubuntu-rohc-builder arm64 :
161+ extends : .ubuntu-rohc-builder
162+ tags :
163+ - arm64
164+ variables :
165+ arch_name : arm64
166+ target_arch : armv8.2-a+crypto+fp16+dotprod
167+
81168# ###############################################################################
82169# UHD builder
83170# ###############################################################################
@@ -338,8 +425,8 @@ ubuntu-dpdk-builder arm64:
338425 curl --header "PRIVATE-TOKEN: $CODEBOT_TOKEN" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/wls/25.03/libwls.so" -o ${CI_PROJECT_DIR}/${CONTEXT}/lib/libwls.so
339426 curl --header "PRIVATE-TOKEN: $CODEBOT_TOKEN" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/libshared/0.0.2/libshared.so" -o ${CI_PROJECT_DIR}/${CONTEXT}/lib/libshared.so
340427 - cp -r ${CI_PROJECT_DIR}/docker/scripts/. ${CI_PROJECT_DIR}/${CONTEXT}
341- - mkdir -p $CONTEXT/lib $CONTEXT/uhd $CONTEXT/dpdk
342- - ls -lah $CONTEXT $CONTEXT/lib $CONTEXT/uhd $CONTEXT/dpdk
428+ - mkdir -p $CONTEXT/lib $CONTEXT/rohc $CONTEXT/ uhd $CONTEXT/dpdk
429+ - ls -lah $CONTEXT $CONTEXT/lib $CONTEXT/rohc $CONTEXT/ uhd $CONTEXT/dpdk
343430 needs :
344431 - builder version increased
345432
@@ -416,6 +503,10 @@ image-build-publish [ubuntu, 22.04, amd64]:
416503 OS_VERSION : " 22.04"
417504 PLATFORM : amd64
418505 needs :
506+ - job : ubuntu-rohc-builder avx2
507+ parallel :
508+ matrix :
509+ - os_version : " 22.04"
419510 - job : ubuntu-uhd-builder avx2
420511 parallel :
421512 matrix :
@@ -456,6 +547,10 @@ image-build-publish [ubuntu, 22.04, arm64]:
456547 OS_VERSION : " 22.04"
457548 PLATFORM : arm64
458549 needs :
550+ - job : ubuntu-rohc-builder arm64
551+ parallel :
552+ matrix :
553+ - os_version : " 22.04"
459554 - job : ubuntu-uhd-builder arm64
460555 parallel :
461556 matrix :
@@ -503,6 +598,10 @@ image-build-publish [ubuntu, 24.04, amd64]:
503598 OS_VERSION : " 24.04"
504599 PLATFORM : amd64
505600 needs :
601+ - job : ubuntu-rohc-builder avx2
602+ parallel :
603+ matrix :
604+ - os_version : " 24.04"
506605 - job : ubuntu-uhd-builder avx2
507606 parallel :
508607 matrix :
@@ -538,6 +637,10 @@ image-build-publish [ubuntu, 24.04, arm64]:
538637 OS_VERSION : " 24.04"
539638 PLATFORM : arm64
540639 needs :
640+ - job : ubuntu-rohc-builder arm64
641+ parallel :
642+ matrix :
643+ - os_version : " 24.04"
541644 - job : ubuntu-uhd-builder arm64
542645 parallel :
543646 matrix :
@@ -584,11 +687,15 @@ image-build-publish [ubuntu, 24.04-rtsan, amd64]:
584687 OS_NAME : ubuntu
585688 OS_VERSION : " 24.04-rtsan"
586689 PLATFORM : amd64
587- KUBERNETES_EPHEMERAL_STORAGE_REQUEST : " 70G "
588- KUBERNETES_EPHEMERAL_STORAGE_LIMIT : " 70G "
690+ KUBERNETES_EPHEMERAL_STORAGE_REQUEST : " 80G "
691+ KUBERNETES_EPHEMERAL_STORAGE_LIMIT : " 80G "
589692 tags :
590693 - ${PLATFORM}-docker
591694 needs :
695+ - job : ubuntu-rohc-builder avx2
696+ parallel :
697+ matrix :
698+ - os_version : " 24.04"
592699 - job : ubuntu-uhd-builder avx2
593700 parallel :
594701 matrix :
@@ -624,6 +731,10 @@ image-build-publish [ubuntu, 24.04-rtsan, arm64]:
624731 OS_VERSION : " 24.04-rtsan"
625732 PLATFORM : arm64
626733 needs :
734+ - job : ubuntu-rohc-builder arm64
735+ parallel :
736+ matrix :
737+ - os_version : " 24.04"
627738 - job : ubuntu-uhd-builder arm64
628739 parallel :
629740 matrix :
@@ -671,6 +782,10 @@ image-build-publish [ubuntu, 25.04, amd64]:
671782 OS_VERSION : " 25.04"
672783 PLATFORM : amd64
673784 needs :
785+ - job : ubuntu-rohc-builder avx2
786+ parallel :
787+ matrix :
788+ - os_version : " 25.04"
674789 - job : ubuntu-uhd-builder avx2
675790 parallel :
676791 matrix :
@@ -706,6 +821,10 @@ image-build-publish [ubuntu, 25.04, arm64]:
706821 OS_VERSION : " 25.04"
707822 PLATFORM : arm64
708823 needs :
824+ - job : ubuntu-rohc-builder arm64
825+ parallel :
826+ matrix :
827+ - os_version : " 25.04"
709828 - job : ubuntu-uhd-builder arm64
710829 parallel :
711830 matrix :
@@ -753,6 +872,10 @@ image-build-publish [ubuntu, 25.10, amd64]:
753872 OS_VERSION : " 25.10"
754873 PLATFORM : amd64
755874 needs :
875+ - job : ubuntu-rohc-builder avx2
876+ parallel :
877+ matrix :
878+ - os_version : " 25.10"
756879 - job : ubuntu-uhd-builder avx2
757880 parallel :
758881 matrix :
@@ -788,6 +911,10 @@ image-build-publish [ubuntu, 25.10, arm64]:
788911 OS_VERSION : " 25.10"
789912 PLATFORM : arm64
790913 needs :
914+ - job : ubuntu-rohc-builder arm64
915+ parallel :
916+ matrix :
917+ - os_version : " 25.10"
791918 - job : ubuntu-uhd-builder arm64
792919 parallel :
793920 matrix :
0 commit comments