diff --git a/ci-scripts/cls_cluster.py b/ci-scripts/cls_cluster.py index 24b0c8902e..d4d9601d17 100644 --- a/ci-scripts/cls_cluster.py +++ b/ci-scripts/cls_cluster.py @@ -412,7 +412,6 @@ class Cluster: imageSize = {} for image in attemptedImages: self.cmd.run(f'mkdir -p cmake_targets/log/{image}') - self.cmd.run(f'python3 ci-scripts/docker_log_split.py --logfilename=cmake_targets/log/{image}.log') tag = imageTag if image != 'ran-base' else baseTag size = self._get_image_size(image, tag) if size <= 0: diff --git a/ci-scripts/cls_containerize.py b/ci-scripts/cls_containerize.py index 88de9d135d..dc4be1f93b 100644 --- a/ci-scripts/cls_containerize.py +++ b/ci-scripts/cls_containerize.py @@ -153,17 +153,13 @@ def AnalyzeBuildLogs(buildRoot, images, globalStatus): committed = False tagged = False with open(f'{buildRoot}/{image}.log', mode='r') as inputfile: - startOfTargetImageCreation = False # check for tagged/committed only after image created for line in inputfile: - result = re.search(f'FROM .* [aA][sS] {image}$', str(line)) - if result is not None: - startOfTargetImageCreation = True - if startOfTargetImageCreation: - lineHasTag = re.search(f'Successfully tagged {image}:', str(line)) is not None - tagged = tagged or lineHasTag - # the OpenShift Cluster builder prepends image registry URL - lineHasCommit = re.search(f'COMMIT [a-zA-Z0-9\.:/\-]*{image}', str(line)) is not None - committed = committed or lineHasCommit + lineHasTag = re.search(f'Successfully tagged {image}:', str(line)) is not None + lineHasTag2 = re.search(f'naming to docker.io/library/{image}:', str(line)) is not None + tagged = tagged or lineHasTag or lineHasTag2 + # the OpenShift Cluster builder prepends image registry URL + lineHasCommit = re.search(f'COMMIT [a-zA-Z0-9\.:/\-]*{image}', str(line)) is not None + committed = committed or lineHasCommit errorandwarnings['errors'] = 0 if committed or tagged else 1 errorandwarnings['warnings'] = 0 errorandwarnings['status'] = committed or tagged @@ -468,9 +464,12 @@ class Containerize(): if image != 'ran-build': cmd.run(f'sed -i -e "s#ran-build:latest#ran-build:{imageTag}#" docker/Dockerfile.{pattern}{self.dockerfileprefix}') cmd.run(f'{self.cli} build {self.cliBuildOptions} --target {image} --tag {image}:{imageTag} --file docker/Dockerfile.{pattern}{self.dockerfileprefix} . > cmake_targets/log/{image}.log 2>&1', timeout=1200) - # split the log - cmd.run(f"mkdir -p cmake_targets/log/{image}") - cmd.run(f"python3 ci-scripts/docker_log_split.py --logfilename=cmake_targets/log/{image}.log") + if image == 'ran-build': + cmd.run(f"docker run --name test-log -d {image}:{imageTag} /bin/true") + cmd.run(f"docker cp test-log:/oai-ran/cmake_targets/log/ cmake_targets/log/{image}/") + cmd.run(f"docker rm -f test-log") + else: + cmd.run(f"mkdir -p cmake_targets/log/{image}") # check the status of the build ret = cmd.run(f"{self.cli} image inspect --format=\'Size = {{{{.Size}}}} bytes\' {image}:{imageTag}") if ret.returncode != 0: diff --git a/ci-scripts/docker_log_split.py b/ci-scripts/docker_log_split.py deleted file mode 100644 index 8c3c9e41dc..0000000000 --- a/ci-scripts/docker_log_split.py +++ /dev/null @@ -1,92 +0,0 @@ -#/* -# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more -# * contributor license agreements. See the NOTICE file distributed with -# * this work for additional information regarding copyright ownership. -# * The OpenAirInterface Software Alliance licenses this file to You under -# * the OAI Public License, Version 1.1 (the "License"); you may not use this file -# * except in compliance with the License. -# * You may obtain a copy of the License at -# * -# * http://www.openairinterface.org/?page_id=698 -# * -# * Unless required by applicable law or agreed to in writing, software -# * distributed under the License is distributed on an "AS IS" BASIS, -# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# * See the License for the specific language governing permissions and -# * limitations under the License. -# *------------------------------------------------------------------------------- -# * For more information about the OpenAirInterface (OAI) Software Alliance: -# * contact@openairinterface.org -# */ -#--------------------------------------------------------------------- -# Python for CI of OAI-eNB + COTS-UE -# -# Required Python Version -# Python 3.x -# -# Required Python Package -# pexpect -#--------------------------------------------------------------------- - - -#----------------------------------------------------------- -# Import Libs -#----------------------------------------------------------- -import sys # arg -import re # reg -import os -import subprocess - - -class SplitReport(): - def __init__(self): - self.logfilename = '' - self.destinationFolder = '' - - def split(self): - self.destinationFolder = self.logfilename.replace(".log","") - if os.path.isfile(self.logfilename): - newImageLog = open(self.logfilename + '.new', 'w') - copyFlag = True - with open(self.logfilename, 'r') as imageLog: - for line in imageLog: - header = False - ret = re.search('====== Start of log for ([0-9\.A-Za-z\-\_]+) ======', line) - if ret is not None: - copyFlag = False - header = True - detailedLogFile = open(self.destinationFolder + '/' + ret.group(1), 'w') - if copyFlag: - newImageLog.write(line) - ret = re.search('====== End of log for ([0-9\.A-Za-z\-\_]+) ======', line) - if ret is not None: - copyFlag = True - detailedLogFile.close() - elif not copyFlag and not header: - detailedLogFile.write(line) - imageLog.close() - newImageLog.close() - os.rename(self.logfilename + '.new', self.logfilename) - else: - print('Cannot split unfound file') - -#-------------------------------------------------------------------------------------------------------- -# -# Start of main -# -#-------------------------------------------------------------------------------------------------------- - -argvs = sys.argv -argc = len(argvs) - -SP = SplitReport() - -while len(argvs) > 1: - myArgv = argvs.pop(1) - if re.match('^\-\-logfilename=(.+)$', myArgv, re.IGNORECASE): - matchReg = re.match('^\-\-logfilename=(.+)$', myArgv, re.IGNORECASE) - SP.logfilename = matchReg.group(1) - -SP.split() - -sys.exit(0)