chore(ci): adding fhi Ubuntu/UBI build and docker-hub push to CI pipeline
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
This commit is contained in:
committed by
Robert Schmidt
parent
fe866405e7
commit
9beb1323e4
@@ -76,7 +76,7 @@ pipeline {
|
|||||||
withCredentials([
|
withCredentials([
|
||||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.DH_Credentials}", usernameVariable: 'DH_Username', passwordVariable: 'DH_Password']
|
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.DH_Credentials}", usernameVariable: 'DH_Username', passwordVariable: 'DH_Password']
|
||||||
]) {
|
]) {
|
||||||
def listOfImages = ["oai-enb", "oai-gnb", "oai-lte-ue", "oai-nr-ue", "oai-nr-cuup"]
|
def listOfImages = ["oai-enb", "oai-gnb", "oai-lte-ue", "oai-nr-ue", "oai-nr-cuup", "oai-gnb-fhi72"]
|
||||||
// Logging in on both registries
|
// Logging in on both registries
|
||||||
sh "docker login -u ${DH_Username} -p ${DH_Password} > /dev/null 2>&1"
|
sh "docker login -u ${DH_Username} -p ${DH_Password} > /dev/null 2>&1"
|
||||||
sh "docker login -u oaicicd -p oaicicd porcepix.sboai.cs.eurecom.fr > /dev/null 2>&1"
|
sh "docker login -u oaicicd -p oaicicd porcepix.sboai.cs.eurecom.fr > /dev/null 2>&1"
|
||||||
|
|||||||
@@ -462,6 +462,34 @@ class Cluster:
|
|||||||
self.cmd.run(f'oc logs {nrue_job} &> cmake_targets/log/oai-nr-ue.log')
|
self.cmd.run(f'oc logs {nrue_job} &> cmake_targets/log/oai-nr-ue.log')
|
||||||
self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
|
self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
|
||||||
|
|
||||||
|
if status:
|
||||||
|
self._recreate_is_tag('ran-build-fhi72', imageTag, 'openshift/ran-build-fhi72-is.yaml')
|
||||||
|
self._recreate_bc('ran-build-fhi72', imageTag, 'openshift/ran-build-fhi72-bc.yaml')
|
||||||
|
self._retag_image_statement('ran-base', 'image-registry.openshift-image-registry.svc:5000/oaicicd-ran/ran-base', baseTag, 'docker/Dockerfile.build.fhi72.rhel9')
|
||||||
|
ranbuildfhi72_job = self._start_build('ran-build-fhi72')
|
||||||
|
attemptedImages += ['ran-build-fhi72']
|
||||||
|
|
||||||
|
wait = ranbuildfhi72_job is not None and self._wait_build_end([ranbuildfhi72_job], 1200)
|
||||||
|
if not wait: logging.error('error during build of ranbuildfhi72_job')
|
||||||
|
status = status and wait
|
||||||
|
self.cmd.run(f'oc logs {ranbuildfhi72_job} &> cmake_targets/log/ran-build-fhi72.log')
|
||||||
|
self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
|
||||||
|
|
||||||
|
if status:
|
||||||
|
self._recreate_is_tag('oai-gnb-fhi72', imageTag, 'openshift/oai-gnb-fhi72-is.yaml')
|
||||||
|
self._recreate_bc('oai-gnb-fhi72', imageTag, 'openshift/oai-gnb-fhi72-bc.yaml')
|
||||||
|
self._retag_image_statement('ran-base', 'image-registry.openshift-image-registry.svc:5000/oaicicd-ran/ran-base', baseTag, 'docker/Dockerfile.gNB.fhi72.rhel9')
|
||||||
|
self._retag_image_statement('ran-build-fhi72', 'image-registry.openshift-image-registry.svc:5000/oaicicd-ran/ran-build-fhi72', imageTag, 'docker/Dockerfile.gNB.fhi72.rhel9')
|
||||||
|
gnb_fhi72_job = self._start_build('oai-gnb-fhi72')
|
||||||
|
attemptedImages += ['oai-gnb-fhi72']
|
||||||
|
|
||||||
|
wait = gnb_fhi72_job is not None and self._wait_build_end([gnb_fhi72_job], 600)
|
||||||
|
if not wait: logging.error('error during build of gNB-fhi72')
|
||||||
|
status = status and wait
|
||||||
|
# recover logs
|
||||||
|
self.cmd.run(f'oc logs {gnb_fhi72_job} &> cmake_targets/log/oai-gnb-fhi72.log')
|
||||||
|
self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
|
||||||
|
|
||||||
# split and analyze logs
|
# split and analyze logs
|
||||||
imageSize = {}
|
imageSize = {}
|
||||||
for image in attemptedImages:
|
for image in attemptedImages:
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ import cls_oaicitest
|
|||||||
# Helper functions used here and in other classes
|
# Helper functions used here and in other classes
|
||||||
# (e.g., cls_cluster.py)
|
# (e.g., cls_cluster.py)
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
IMAGES = ['oai-enb', 'oai-lte-ru', 'oai-lte-ue', 'oai-gnb', 'oai-nr-cuup', 'oai-gnb-aw2s', 'oai-nr-ue', 'oai-gnb-asan', 'oai-nr-ue-asan', 'oai-nr-cuup-asan', 'oai-gnb-aerial']
|
IMAGES = ['oai-enb', 'oai-lte-ru', 'oai-lte-ue', 'oai-gnb', 'oai-nr-cuup', 'oai-gnb-aw2s', 'oai-nr-ue', 'oai-gnb-asan', 'oai-nr-ue-asan', 'oai-nr-cuup-asan', 'oai-gnb-aerial', 'oai-gnb-fhi72']
|
||||||
|
|
||||||
def CreateWorkspace(sshSession, sourcePath, ranRepository, ranCommitID, ranTargetBranch, ranAllowMerge):
|
def CreateWorkspace(sshSession, sourcePath, ranRepository, ranCommitID, ranTargetBranch, ranAllowMerge):
|
||||||
if ranCommitID == '':
|
if ranCommitID == '':
|
||||||
@@ -319,6 +319,8 @@ class Containerize():
|
|||||||
imageNames.append(('oai-gnb', 'gNB', 'oai-gnb-asan', '--build-arg "BUILD_OPTION=--sanitize"'))
|
imageNames.append(('oai-gnb', 'gNB', 'oai-gnb-asan', '--build-arg "BUILD_OPTION=--sanitize"'))
|
||||||
imageNames.append(('oai-nr-ue', 'nrUE', 'oai-nr-ue-asan', '--build-arg "BUILD_OPTION=--sanitize"'))
|
imageNames.append(('oai-nr-ue', 'nrUE', 'oai-nr-ue-asan', '--build-arg "BUILD_OPTION=--sanitize"'))
|
||||||
imageNames.append(('oai-nr-cuup', 'nr-cuup', 'oai-nr-cuup-asan', '--build-arg "BUILD_OPTION=--sanitize"'))
|
imageNames.append(('oai-nr-cuup', 'nr-cuup', 'oai-nr-cuup-asan', '--build-arg "BUILD_OPTION=--sanitize"'))
|
||||||
|
imageNames.append(('ran-build-fhi72', 'build.fhi72', 'ran-build-fhi72', ''))
|
||||||
|
imageNames.append(('oai-gnb', 'gNB.fhi72', 'oai-gnb-fhi72', ''))
|
||||||
result = re.search('build_cross_arm64', self.imageKind)
|
result = re.search('build_cross_arm64', self.imageKind)
|
||||||
if result is not None:
|
if result is not None:
|
||||||
self.dockerfileprefix = '.ubuntu22.cross-arm64'
|
self.dockerfileprefix = '.ubuntu22.cross-arm64'
|
||||||
@@ -409,6 +411,8 @@ class Containerize():
|
|||||||
# target images should use the proper ran-build image
|
# target images should use the proper ran-build image
|
||||||
if image != 'ran-build' and "-asan" in name:
|
if image != 'ran-build' and "-asan" in name:
|
||||||
cmd.run(f'sed -i -e "s#ran-build:latest#ran-build-asan:{imageTag}#" docker/Dockerfile.{pattern}{self.dockerfileprefix}')
|
cmd.run(f'sed -i -e "s#ran-build:latest#ran-build-asan:{imageTag}#" docker/Dockerfile.{pattern}{self.dockerfileprefix}')
|
||||||
|
elif "fhi72" in name:
|
||||||
|
cmd.run(f'sed -i -e "s#ran-build-fhi72:latest#ran-build-fhi72:{imageTag}#" docker/Dockerfile.{pattern}{self.dockerfileprefix}')
|
||||||
elif image != 'ran-build':
|
elif image != 'ran-build':
|
||||||
cmd.run(f'sed -i -e "s#ran-build:latest#ran-build:{imageTag}#" docker/Dockerfile.{pattern}{self.dockerfileprefix}')
|
cmd.run(f'sed -i -e "s#ran-build:latest#ran-build:{imageTag}#" docker/Dockerfile.{pattern}{self.dockerfileprefix}')
|
||||||
if image == 'oai-gnb-aerial':
|
if image == 'oai-gnb-aerial':
|
||||||
@@ -445,7 +449,7 @@ class Containerize():
|
|||||||
cmd.run(f"{self.cli} image prune --force")
|
cmd.run(f"{self.cli} image prune --force")
|
||||||
|
|
||||||
# Remove all intermediate build images and clean up
|
# Remove all intermediate build images and clean up
|
||||||
cmd.run(f"{self.cli} image rm ran-build:{imageTag} ran-build-asan:{imageTag}")
|
cmd.run(f"{self.cli} image rm ran-build:{imageTag} ran-build-asan:{imageTag} ran-build-fhi72:{imageTag} || true")
|
||||||
cmd.run(f"{self.cli} volume prune --force")
|
cmd.run(f"{self.cli} volume prune --force")
|
||||||
|
|
||||||
# Remove some cached artifacts to prevent out of diskspace problem
|
# Remove some cached artifacts to prevent out of diskspace problem
|
||||||
|
|||||||
Reference in New Issue
Block a user