From 1ea90fc9870bfdeabde786c4f23034d0a31bbafd Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Wed, 17 Sep 2025 15:24:10 +0200 Subject: [PATCH 1/5] Rename to native_armv9 image build type For clarity, rename to native_armv9 for clarity. The check inside Python checked for native_arm, and if we introduce native_armv8 (for jetson), it would also match that. --- ci-scripts/cls_containerize.py | 2 +- ci-scripts/xml_files/container_image_build_arm.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci-scripts/cls_containerize.py b/ci-scripts/cls_containerize.py index 8b5a817ac6..744614e95a 100644 --- a/ci-scripts/cls_containerize.py +++ b/ci-scripts/cls_containerize.py @@ -304,7 +304,7 @@ class Containerize(): result = re.search('build_cross_arm64', self.imageKind) if result is not None: self.dockerfileprefix = '.ubuntu.cross-arm64' - result = re.search('native_arm', self.imageKind) + result = re.search('native_armv9', self.imageKind) if result is not None: imageNames.append(('oai-gnb', 'gNB', 'oai-gnb', '')) imageNames.append(('ran-build-fhi72', 'build.fhi72.native_arm', 'ran-build-fhi72', '')) diff --git a/ci-scripts/xml_files/container_image_build_arm.xml b/ci-scripts/xml_files/container_image_build_arm.xml index 7c731fd3a1..f5daa348aa 100644 --- a/ci-scripts/xml_files/container_image_build_arm.xml +++ b/ci-scripts/xml_files/container_image_build_arm.xml @@ -40,7 +40,7 @@ Build_Image Build all Images gracehopper3-oai - native_arm + native_armv9 From 8045dc71e0643ae547a65b867d549f05af01d485 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Wed, 17 Sep 2025 15:26:34 +0200 Subject: [PATCH 2/5] XML description for build on Jetson (ARMv8) --- ci-scripts/cls_containerize.py | 5 ++ .../container_image_build_jetson.xml | 53 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 ci-scripts/xml_files/container_image_build_jetson.xml diff --git a/ci-scripts/cls_containerize.py b/ci-scripts/cls_containerize.py index 744614e95a..965ff6a6db 100644 --- a/ci-scripts/cls_containerize.py +++ b/ci-scripts/cls_containerize.py @@ -311,6 +311,11 @@ class Containerize(): imageNames.append(('oai-nr-cuup', 'nr-cuup', 'oai-nr-cuup', '')) imageNames.append(('oai-nr-ue', 'nrUE', 'oai-nr-ue', '')) imageNames.append(('oai-gnb-aerial', 'gNB.aerial', 'oai-gnb-aerial', '')) + result = re.search('native_armv8', self.imageKind) + if result is not None: + imageNames.append(('oai-gnb', 'gNB', 'oai-gnb', '')) + imageNames.append(('oai-nr-cuup', 'nr-cuup', 'oai-nr-cuup', '')) + imageNames.append(('oai-nr-ue', 'nrUE', 'oai-nr-ue', '')) cmd.cd(lSourcePath) # if asterix, copy the entitlement and subscription manager configurations diff --git a/ci-scripts/xml_files/container_image_build_jetson.xml b/ci-scripts/xml_files/container_image_build_jetson.xml new file mode 100644 index 0000000000..3cdac5efcb --- /dev/null +++ b/ci-scripts/xml_files/container_image_build_jetson.xml @@ -0,0 +1,53 @@ + + + build-tab + Build Container Images for ARM + wrench + + 800813 + 000001 + 000010 + + + + + Create_Workspace + Create new Workspace for server 0 + jetson3-oai + + + Build_Image + Build all Images + jetson3-oai + native_armv8 + + + + Push_Local_Registry + Push Images to Local Registry + jetson3-oai + armv8_ + + + From 44729d57656af72ff7fe10278b0a6357d1759fb6 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Wed, 17 Sep 2025 17:24:41 +0200 Subject: [PATCH 3/5] Add Jetson build pipeline to RAN-Container-Parent --- ci-scripts/Jenkinsfile-GitLab-Container | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/ci-scripts/Jenkinsfile-GitLab-Container b/ci-scripts/Jenkinsfile-GitLab-Container index 57d6b1651e..4bdb20d371 100644 --- a/ci-scripts/Jenkinsfile-GitLab-Container +++ b/ci-scripts/Jenkinsfile-GitLab-Container @@ -175,6 +175,28 @@ pipeline { } } } + stage ("Ubuntu-Jetson-Image-Builder") { + steps { + script { + triggerSlaveJob ('RAN-Ubuntu-Jetson-Image-Builder', 'Ubuntu-Jetson-Image-Builder') + } + } + post { + always { + script { + // Using a unique variable name for each test stage to avoid overwriting on a global variable + // due to parallel-time concurrency + ubuntuJetsonBuildStatus = finalizeSlaveJob('RAN-Ubuntu-Jetson-Image-Builder') + } + } + failure { + script { + currentBuild.result = 'FAILURE' + failingStages += ubuntuJetsonBuildStatus + } + } + } + } stage ("RHEL-Cluster-Image-Builder") { steps { script { From a1175f7f613c6d94602ef1d0433cdca2d09272bc Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Wed, 17 Sep 2025 18:38:14 +0200 Subject: [PATCH 4/5] Add documentation for Jetson build pipeline --- doc/TESTBenches.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/TESTBenches.md b/doc/TESTBenches.md index d7881fb993..70a31d7391 100644 --- a/doc/TESTBenches.md +++ b/doc/TESTBenches.md @@ -135,6 +135,14 @@ information on how the images are built. - target image from `Dockerfile.nr-cuup.ubuntu` - target image from `Dockerfile.nrUE.ubuntu` - target image from `Dockerfile.gNB.aerial.ubuntu` +- [RAN-Ubuntu-Jetson-Image-Builder](https://jenkins-oai.eurecom.fr/job/RAN-Ubuntu-Jetson-Image-Builder/) + ~BUILD-ONLY ~4G-LTE ~5G-NR + - jetson3-oai: ARMv8 Ubuntu image build using docker + - base image from `Dockerfile.base.ubuntu` + - build image from `Dockerfile.build.ubuntu`, followed by + - target image from `Dockerfile.gNB.ubuntu` + - target image from `Dockerfile.nr-cuup.ubuntu` + - target image from `Dockerfile.nrUE.ubuntu` #### Image Test pipelines From 8c78ef5b946f53ec6f8c584f7f9710a44ce91c33 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Wed, 17 Sep 2025 18:39:10 +0200 Subject: [PATCH 5/5] Correct Ubuntu version (to generic "Ubuntu") --- doc/TESTBenches.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/TESTBenches.md b/doc/TESTBenches.md index 70a31d7391..e7564b8678 100644 --- a/doc/TESTBenches.md +++ b/doc/TESTBenches.md @@ -113,7 +113,7 @@ information on how the images are built. - [RAN-Ubuntu18-Image-Builder](https://jenkins-oai.eurecom.fr/job/RAN-Ubuntu18-Image-Builder/) ~BUILD-ONLY ~4G-LTE ~5G-NR ~nrUE - run formatting check from `ci-scripts/docker/Dockerfile.formatting.ubuntu` - - obelix: Ubuntu 22 image build using docker (Note: builds U22 images while pipeline is named U18!) + - obelix: Ubuntu image build using docker (Note: builds Ubuntu images of newer version while pipeline is named U18!) - base image from `Dockerfile.base.ubuntu` - build image from `Dockerfile.build.ubuntu`, followed by - target image from `Dockerfile.eNB.ubuntu` @@ -128,7 +128,7 @@ information on how the images are built. - build unit tests from `ci-scripts/docker/Dockerfile.unittest.ubuntu`, and run them - [RAN-Ubuntu-ARM-Image-Builder](https://jenkins-oai.eurecom.fr/job/RAN-Ubuntu-ARM-Image-Builder/) ~BUILD-ONLY ~4G-LTE ~5G-NR - - gracehopper3-oai: ARM Ubuntu 22 image build using docker + - gracehopper3-oai: ARM Ubuntu image build using docker - base image from `Dockerfile.base.ubuntu` - build image from `Dockerfile.build.ubuntu`, followed by - target image from `Dockerfile.gNB.ubuntu`