From 48994d95944498cf96cce474da05c9d8687f0efa Mon Sep 17 00:00:00 2001 From: Raphael Defosseux <raphael.defosseux@eurecom.fr> Date: Tue, 27 Jul 2021 17:22:06 +0200 Subject: [PATCH] feat(ci): adding gnbsim tutorial check to pipeline Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr> --- ci-scripts/Jenkinsfile-GitLab-Docker-Check | 106 +++++++++++++++++---- 1 file changed, 86 insertions(+), 20 deletions(-) diff --git a/ci-scripts/Jenkinsfile-GitLab-Docker-Check b/ci-scripts/Jenkinsfile-GitLab-Docker-Check index 0518e035..fd91704c 100644 --- a/ci-scripts/Jenkinsfile-GitLab-Docker-Check +++ b/ci-scripts/Jenkinsfile-GitLab-Docker-Check @@ -71,13 +71,14 @@ pipeline { sh "mkdir -p archives/cn5g" sh "mkdir -p archives/cn5gwithnoNRF" + sh "mkdir -p archives/gnbsim" } } } stage ('Deploy Whole 5G Core Network with NRF') { steps { script { - echo '\u2705 \u001B[32mDeploy CN5G using Docker-Compose with NRF\u001B[0m' + echo '\u2705 \u001B[32mDeploy CN5G using Docker-Compose with NRF\u001B[0m' dir('docker-compose') { sh 'sed -i -e "s@latest@develop@g" docker-compose.yaml' sh 'docker-compose -f docker-compose.yaml up -d > ../archives/cn5g/compose_5gcn_up.log 2>&1' @@ -88,17 +89,17 @@ pipeline { ret = ret.trim() if (ret != '5') { error "Deployment went wrong!" - } + } } } } post { always { script { - sh 'docker logs oai-nrf > archives/cn5g/oai_nrf.log' - sh 'docker logs oai-amf > archives/cn5g/oai_amf.log' - sh 'docker logs oai-smf > archives/cn5g/oai_smf.log' - sh 'docker logs oai-spgwu > archives/cn5g/oai_spgwu.log' + sh 'docker logs oai-nrf > archives/cn5g/oai_nrf.log 2>&1 || true' + sh 'docker logs oai-amf > archives/cn5g/oai_amf.log 2>&1 || true' + sh 'docker logs oai-smf > archives/cn5g/oai_smf.log 2>&1 || true' + sh 'docker logs oai-spgwu > archives/cn5g/oai_spgwu.log 2>&1 || true' } } success { @@ -124,61 +125,126 @@ pipeline { } } - stage ('Deploy Whole 5G Core Network with no NRF') { + stage ('Deploy Whole 5G Core Network without NRF') { steps { script { - echo '\u2705 \u001B[32mDeploy CN5G using Docker-Compose with no NRF\u001B[0m' + echo '\u2705 \u001B[32mDeploy CN5G using Docker-Compose without NRF\u001B[0m' dir('docker-compose') { sh 'sed -i -e "s@latest@develop@g" docker-compose-no-nrf.yaml' sh 'docker-compose -f docker-compose-no-nrf.yaml up -d > ../archives/cn5gwithnoNRF/compose_5gcn_up.log 2>&1' sh 'sleep 100' // Do a check on number of healthy containers // 4 == mysql + amf + smf + upf(spgwu-tiny) - ret = sh returnStdout: true, script: 'docker-compose ps -a | grep -v unhealthy | grep -c healthy || true' + ret = sh returnStdout: true, script: 'docker-compose -f docker-compose-no-nrf.yaml ps -a | grep -v unhealthy | grep -c healthy || true' ret = ret.trim() if (ret != '4') { - error "Deployment went wrong with no NRF!" - } + error "Deployment went wrong without NRF!" + } + } + } + } + post { + always { + script { + sh 'docker logs oai-amf > archives/cn5gwithnoNRF/oai_amf.log 2>&1 || true' + sh 'docker logs oai-smf > archives/cn5gwithnoNRF/oai_smf.log 2>&1 || true' + sh 'docker logs oai-spgwu > archives/cn5gwithnoNRF/oai_spgwu.log 2>&1 || true' + } + } + success { + script { + sh 'echo "DEPLOYMENT: OK without NRF"' + } + } + unsuccessful { + script { + sh 'docker-compose -f docker-compose-no-nrf.yaml down || true' + sh 'echo "DEPLOYMENT: KO without NRF"' + } + } + } + } + stage ('Undeploy 5G-CN without NRF') { + steps { + script { + echo '\u2705 \u001B[32mUn-Deploy CN5G without NRF\u001B[0m' + dir('docker-compose') { + sh 'docker-compose -f docker-compose-no-nrf.yaml down > ../archives/cn5gwithnoNRF/compose_normal_down.log 2>&1' + } + } + } + } + + stage ('gnbsim tutorial') { + steps { + script { + echo '\u2705 \u001B[32mDeploy CN5G using Docker-Compose with NRF\u001B[0m' + dir('docker-compose') { + sh 'docker-compose -f docker-compose.yaml up -d > ../archives/gnbsim/compose_5gcn_up.log 2>&1' + sh 'sleep 100' + // Do a check on number of healthy containers + // 5 == mysql + nrf + amf + smf + upf(spgwu-tiny) + ret = sh returnStdout: true, script: 'docker-compose ps -a | grep -v unhealthy | grep -c healthy || true' + ret = ret.trim() + if (ret != '5') { + error "Deployment went wrong!" + } + sh 'docker-compose -f docker-compose-gnbsim.yaml up -d gnbsim > ../archives/gnbsim/gnbsim_up.log 2>&1' + sh 'sleep 20' + // Do a check if gnbsim is healthy + ret = sh returnStdout: true, script: 'docker-compose -f docker-compose-gnbsim.yaml ps -a | grep -v unhealthy | grep -c healthy || true' + ret = ret.trim() + if (ret != '1') { + error "gnbsim deployment went wrong" + } } } } post { always { script { - sh 'docker logs oai-amf > archives/cn5gwithnoNRF/oai_amf.log' - sh 'docker logs oai-smf > archives/cn5gwithnoNRF/oai_smf.log' - sh 'docker logs oai-spgwu > archives/cn5gwithnoNRF/oai_spgwu.log' + sh 'docker logs oai-nrf > archives/gnbsim/oai_nrf.log 2>&1 || true' + sh 'docker logs oai-amf > archives/gnbsim/oai_amf.log 2>&1 || true' + sh 'docker logs oai-smf > archives/gnbsim/oai_smf.log 2>&1 || true' + sh 'docker logs oai-spgwu > archives/gnbsim/oai_spgwu.log 2>&1 || true' + sh 'docker logs gnbsim > archives/gnbsim/gnbsim.log 2>&1 || true' } } success { script { - sh 'echo "DEPLOYMENT: OK with no NRF"' + sh 'echo "DEPLOYMENT: OK"' } } unsuccessful { script { - sh 'echo "DEPLOYMENT: KO with no NRF"' + dir('docker-compose') { + sh 'docker-compose -f docker-compose-gnbsim.yaml down || true' + sh 'docker-compose down || true' + } + sh 'echo "DEPLOYMENT: KO"' } } } } - stage ('Undeploy 5G-CN with no NRF') { + stage ('Un-deploy gnbsim tutorial') { steps { script { - echo '\u2705 \u001B[32mUn-Deploy CN5G with no NRF\u001B[0m' dir('docker-compose') { - sh 'docker-compose down > ../archives/cn5gwithnoNRF/compose_normal_down.log 2>&1' + sh 'docker-compose -f docker-compose-gnbsim.yaml down > ../archives/gnbsim/gnbsim_down.log 2>&1' + sh 'docker-compose down >> ../archives/gnbsim/cn5g_down.log 2>&1' } } } } } + post { always { script { // Remove any leftover containers/networks dir('docker-compose') { - sh 'docker-compose down' + sh 'docker-compose -f docker-compose-gnbsim.yaml down || true' + sh 'docker-compose down || true' } // Zipping all archived log files sh "zip -r -qq cn5g_deploy_docker_logs.zip archives" -- GitLab