diff --git a/ci-scripts/cls_containerize.py b/ci-scripts/cls_containerize.py index 6197cc7e4f96953ff06846dfe797e8b89124d3d0..15c1d30be82f79706182790a2b5b5f8210ad56c0 100644 --- a/ci-scripts/cls_containerize.py +++ b/ci-scripts/cls_containerize.py @@ -53,33 +53,34 @@ import constants as CONST # (e.g., cls_cluster.py) #----------------------------------------------------------- def CreateWorkspace(sshSession, sourcePath, ranRepository, ranCommitID, ranTargetBranch, ranAllowMerge): - # on RedHat/CentOS .git extension is mandatory - result = re.search('([a-zA-Z0-9\:\-\.\/])+\.git', ranRepository) - if result is not None: - full_ran_repo_name = ranRepository.replace('git/', 'git') - else: - full_ran_repo_name = ranRepository + '.git' + if ranCommitID == '': + logging.error('need ranCommitID in CreateWorkspace()') + sys.exit('Insufficient Parameter in CreateWorkspace()') + + sshSession.command(f'rm -rf {sourcePath}', '\$', 10) sshSession.command('mkdir -p ' + sourcePath, '\$', 5) sshSession.command('cd ' + sourcePath, '\$', 5) - sshSession.command('if [ ! -e .git ]; then stdbuf -o0 git clone ' + full_ran_repo_name + ' .; else stdbuf -o0 git fetch --prune; fi', '\$', 600) + sshSession.command(f'git clone --filter=blob:none -n -b develop {full_ran_repo_name} .', '\$', 60) if sshSession.getBefore().count('done.') == 0: logging.warning('did not find \'done.\' in git output while cloning/fetching, was not successful?') sshSession.command('git config user.email "jenkins@openairinterface.org"', '\$', 5) sshSession.command('git config user.name "OAI Jenkins"', '\$', 5) - sshSession.command('git clean -x -d -ff', '\$', 30) sshSession.command('mkdir -p cmake_targets/log', '\$', 5) # if the commit ID is provided use it to point to it - if ranCommitID != '': - sshSession.command('git checkout -f ' + ranCommitID, '\$', 30) + sshSession.command(f'git checkout -f {ranCommitID}', '\$', 30) + if sshSession.getBefore().count(f'HEAD is now at {ranCommitID[:6]}') != 1: + sshSession.command('git log --oneline | head -n5', '\$', 5) + logging.warning(f'problems during checkout, is at: {sshSession.getBefore()}') + else: + logging.debug('successful checkout') # if the branch is not develop, then it is a merge request and we need to do # the potential merge. Note that merge conflicts should already been checked earlier if ranAllowMerge: if ranTargetBranch == '': - sshSession.command('git merge --ff origin/develop -m "Temporary merge for CI"', '\$', 5) - else: - logging.debug('Merging with the target branch: ' + ranTargetBranch) - sshSession.command('git merge --ff origin/' + ranTargetBranch + ' -m "Temporary merge for CI"', '\$', 5) + ranTargetBranch = 'develop' + logging.debug(f'Merging with the target branch: {ranTargetBranch}') + sshSession.command(f'git merge --ff origin/{ranTargetBranch} -m "Temporary merge for CI"', '\$', 5) def CopyLogsToExecutor(sshSession, sourcePath, log_name, scpIp, scpUser, scpPw): sshSession.command(f'cd {sourcePath}/cmake_targets', '\$', 5)