Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
oai
openairinterface5G
Commits
46231a5d
Commit
46231a5d
authored
Sep 06, 2018
by
Thomas Laurent
Browse files
merge with latest develop
parents
abbffef0
d721e2de
Changes
204
Expand all
Hide whitespace changes
Inline
Side-by-side
ci-scripts/Jenkinsfile-gitlab
View file @
46231a5d
...
...
@@ -30,6 +30,8 @@ def sendSocialMediaMessage(pipeChannel, pipeColor, pipeMessage) {
}
}
def
doRedHatBuild
=
false
pipeline
{
agent
{
label
'bellatrix'
...
...
@@ -38,10 +40,35 @@ pipeline {
disableConcurrentBuilds
()
timestamps
()
gitLabConnection
(
'OAI GitLab'
)
gitlabBuilds
(
builds:
[
"Build eNb-USRP"
,
"Build basic-sim"
,
"Build phy-sim"
,
"Build eNb-ethernet"
,
"Build UE-ethernet"
,
"Analysis with cppcheck"
,
"Test phy-sim"
])
gitlabBuilds
(
builds:
[
"Build eNb-USRP"
,
"Build basic-sim"
,
"Build phy-sim"
,
"Build eNb-ethernet"
,
"Build UE-ethernet"
,
"Analysis with cppcheck"
,
"Test phy-sim"
,
"Test basic-sim"
,
"Test-FDD-Band7"
,
"Test-TDD-Band40"
])
ansiColor
(
'xterm'
)
}
stages
{
stage
(
"Verify Parameters"
)
{
steps
{
script
{
echo
'\u2705 \u001B[32mVerify Parameters\u001B[0m'
def
allParametersPresent
=
true
if
(
params
.
RedHatRemoteServer
==
null
)
{
allParametersPresent
=
false
}
if
(
params
.
RedHatRemoteCredentials
==
null
)
{
allParametersPresent
=
false
}
if
(
params
.
RedHatWorkingPath
==
null
)
{
allParametersPresent
=
false
}
if
(
allParametersPresent
)
{
echo
"Performing Red Hat Build"
doRedHatBuild
=
true
}
else
{
doRedHatBuild
=
false
}
}
}
}
stage
(
"Verify Guidelines"
)
{
steps
{
echo
"Git URL is ${GIT_URL}"
...
...
@@ -126,14 +153,14 @@ pipeline {
stage
(
"Analysis with cppcheck"
)
{
steps
{
gitlabCommitStatus
(
name:
"Analysis with cppcheck"
)
{
sh
"./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID}
--keep-vm-alive
"
sh
"./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant cppcheck --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
stage
(
"Build eNb-USRP"
)
{
steps
{
gitlabCommitStatus
(
name:
"Build eNb-USRP"
)
{
sh
"./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}
--keep-vm-alive
"
sh
"./ci-scripts/buildOnVM.sh --workspace $WORKSPACE --variant enb-usrp --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
...
...
@@ -165,22 +192,52 @@ pipeline {
}
}
}
stage
(
"Build eNb-USRP on Red Hat"
)
{
when
{
expression
{
doRedHatBuild
}
}
steps
{
gitlabCommitStatus
(
name:
"Build eNb-USRP-CentOS"
)
{
script
{
try
{
withCredentials
([
[
$class
:
'UsernamePasswordMultiBinding'
,
credentialsId:
"${params.RedHatRemoteCredentials}"
,
usernameVariable:
'RH_Username'
,
passwordVariable:
'RH_Password'
]
])
{
sh
"./ci-scripts/buildOnRH.sh --workspace $WORKSPACE --job-name ${JOB_NAME} --build-id ${BUILD_ID} --remote-host ${params.RedHatRemoteServer} --remote-path ${params.RedHatWorkingPath} --remote-user-name ${RH_Username} --remote-password ${RH_Password}"
}
}
catch
(
Exception
e
)
{
echo
"Red Hat build failed not an error now"
}
}
}
}
}
}
post
{
always
{
script
{
dir
(
'archives'
)
{
sh
"zip -r -qq vm_build_logs.zip basic_sim enb_usrp phy_sim cppcheck enb_eth ue_eth"
sh
"zip -r -qq vm_build_logs.zip basic_sim enb_usrp phy_sim cppcheck enb_eth ue_eth
red_hat
"
}
if
(
fileExists
(
'archives/vm_build_logs.zip'
))
{
archiveArtifacts
artifacts:
'archives/vm_build_logs.zip'
}
if
(
"MERGE"
.
equals
(
env
.
gitlabActionType
))
{
sh
"./ci-scripts/reportBuildLocally.sh --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
sh
"./ci-scripts/checkAddedWarnings.sh --src-branch ${env.gitlabSourceBranch} --target-branch ${env.gitlabTargetBranch}"
def
res
=
readFile
(
'./oai_warning_files.txt'
).
trim
();
if
(
"0"
.
equals
(
res
))
{
echo
"No issues w/ warnings/errors in this merge request"
}
else
{
def
fileList
=
readFile
(
'./oai_warning_files_list.txt'
).
trim
();
def
message
=
"OAI "
+
JOB_NAME
+
" build ("
+
BUILD_ID
+
"): Some modified files in Merge Request MAY have INTRODUCED WARNINGS ("
+
fileList
+
")"
addGitLabMRComment
comment:
message
}
}
else
{
sh
"./ci-scripts/reportBuildLocally.sh --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}"
}
if
(
fileExists
(
'build_results.html'
))
{
sh
"sed -i -e 's#Build-ID: ${BUILD_ID}#Build-ID: <a href=\"{BUILD_URL}\">${BUILD_ID}</a>#' build_results.html"
archiveArtifacts
artifacts:
'build_results.html'
}
}
...
...
@@ -193,36 +250,113 @@ pipeline {
stage
(
"Test physical simulators"
)
{
steps
{
gitlabCommitStatus
(
name:
"Test phy-sim"
)
{
sh
"./ci-scripts/runTestOnVM.sh --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}
--keep-vm-alive
"
sh
"./ci-scripts/runTestOnVM.sh --workspace $WORKSPACE --variant phy-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
}
}
}
stage
(
"Test basic simulator"
)
{
steps
{
//
gitlabCommitStatus(name: "Test basic-sim") {
gitlabCommitStatus
(
name:
"Test basic-sim"
)
{
sh
"./ci-scripts/runTestOnVM.sh --workspace $WORKSPACE --variant basic-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID} --keep-vm-alive"
//
}
}
}
}
stage
(
"Test FDD - Band 7 - B210"
)
{
steps
{
script
{
if
(
"MERGE"
.
equals
(
env
.
gitlabActionType
))
{
build
job:
'eNB-CI-FDD-Band7-B210'
,
parameters:
[
string
(
name:
'eNB_Repository'
,
value:
String
.
valueOf
(
GIT_URL
)),
string
(
name:
'eNB_Branch'
,
value:
String
.
valueOf
(
env
.
gitlabSourceBranch
)),
string
(
name:
'eNB_CommitID'
,
value:
String
.
valueOf
(
env
.
gitlabMergeRequestLastCommit
)),
booleanParam
(
name:
'eNB_mergeRequest'
,
value:
true
)
]
}
else
{
build
job:
'eNB-CI-FDD-Band7-B210'
,
parameters:
[
string
(
name:
'eNB_Repository'
,
value:
String
.
valueOf
(
GIT_URL
)),
string
(
name:
'eNB_Branch'
,
value:
String
.
valueOf
(
GIT_BRANCH
)),
string
(
name:
'eNB_CommitID'
,
value:
String
.
valueOf
(
GIT_COMMIT
)),
booleanParam
(
name:
'eNB_mergeRequest'
,
value:
false
)
]
stage
(
"Test on CI bench #1"
)
{
stages
{
stage
(
"Test FDD - Band 7 - B210"
)
{
steps
{
script
{
try
{
if
(
"MERGE"
.
equals
(
env
.
gitlabActionType
))
{
gitlabCommitStatus
(
name:
"Test-FDD-Band7"
)
{
build
job:
'eNB-CI-FDD-Band7-B210'
,
parameters:
[
string
(
name:
'eNB_Repository'
,
value:
String
.
valueOf
(
GIT_URL
)),
string
(
name:
'eNB_Branch'
,
value:
String
.
valueOf
(
env
.
gitlabSourceBranch
)),
string
(
name:
'eNB_CommitID'
,
value:
String
.
valueOf
(
env
.
gitlabMergeRequestLastCommit
)),
booleanParam
(
name:
'eNB_mergeRequest'
,
value:
true
)
]
}
}
else
{
gitlabCommitStatus
(
name:
"Test-FDD-Band7"
)
{
build
job:
'eNB-CI-FDD-Band7-B210'
,
parameters:
[
string
(
name:
'eNB_Repository'
,
value:
String
.
valueOf
(
GIT_URL
)),
string
(
name:
'eNB_Branch'
,
value:
String
.
valueOf
(
GIT_BRANCH
)),
string
(
name:
'eNB_CommitID'
,
value:
String
.
valueOf
(
GIT_COMMIT
)),
booleanParam
(
name:
'eNB_mergeRequest'
,
value:
false
)
]
}
}
}
catch
(
Exception
e
)
{
currentBuild
.
result
=
'FAILURE'
}
}
}
post
{
// In case of any non-success, we are retrieving the HTML report of the last completed
// slave job.
// The only drop-back is that we may retrieve the HTML report of a previous build
always
{
script
{
if
(!
fileExists
(
'test_results-eNB-CI-FDD-Band7-B210.html'
))
{
copyArtifacts
(
projectName:
'eNB-CI-FDD-Band7-B210'
,
filter:
'test_results*.html'
,
selector:
lastCompleted
())
if
(
fileExists
(
'test_results-eNB-CI-FDD-Band7-B210.html'
))
{
archiveArtifacts
artifacts:
'test_results-eNB-CI-FDD-Band7-B210.html'
}
}
}
}
}
}
stage
(
"Test TDD - Band 40 - B210"
)
{
steps
{
script
{
try
{
if
(
"MERGE"
.
equals
(
env
.
gitlabActionType
))
{
gitlabCommitStatus
(
name:
"Test-TDD-Band40"
)
{
build
job:
'eNB-CI-TDD-Band40-B210'
,
parameters:
[
string
(
name:
'eNB_Repository'
,
value:
String
.
valueOf
(
GIT_URL
)),
string
(
name:
'eNB_Branch'
,
value:
String
.
valueOf
(
env
.
gitlabSourceBranch
)),
string
(
name:
'eNB_CommitID'
,
value:
String
.
valueOf
(
env
.
gitlabMergeRequestLastCommit
)),
booleanParam
(
name:
'eNB_mergeRequest'
,
value:
true
)
]
}
}
else
{
gitlabCommitStatus
(
name:
"Test-TDD-Band40"
)
{
build
job:
'eNB-CI-TDD-Band40-B210'
,
parameters:
[
string
(
name:
'eNB_Repository'
,
value:
String
.
valueOf
(
GIT_URL
)),
string
(
name:
'eNB_Branch'
,
value:
String
.
valueOf
(
GIT_BRANCH
)),
string
(
name:
'eNB_CommitID'
,
value:
String
.
valueOf
(
GIT_COMMIT
)),
booleanParam
(
name:
'eNB_mergeRequest'
,
value:
false
)
]
}
}
}
catch
(
Exception
e
)
{
currentBuild
.
result
=
'FAILURE'
}
}
}
post
{
// In case of any non-success, we are retrieving the HTML report of the last completed
// slave job.
// The only drop-back is that we may retrieve the HTML report of a previous build
always
{
script
{
if
(!
fileExists
(
'test_results-eNB-CI-TDD-Band40-B210.html'
))
{
copyArtifacts
(
projectName:
'eNB-CI-TDD-Band40-B210'
,
filter:
'test_results*.html'
,
selector:
lastCompleted
())
if
(
fileExists
(
'test_results-eNB-CI-TDD-Band40-B210.html'
))
{
archiveArtifacts
artifacts:
'test_results-eNB-CI-TDD-Band40-B210.html'
}
}
}
}
}
}
}
...
...
@@ -232,12 +366,19 @@ pipeline {
always
{
script
{
dir
(
'archives'
)
{
sh
"if [ -d
*
/test ]; then zip -r -qq vm_tests_logs.zip */test ; fi"
sh
"if [ -d
basic_sim/test ] || [ -d phy_sim
/test ]; then zip -r -qq vm_tests_logs.zip */test ; fi"
}
if
(
fileExists
(
'archives/vm_tests_logs.zip'
))
{
archiveArtifacts
artifacts:
'archives/vm_tests_logs.zip'
archiveArtifacts
artifacts:
'archives/*/test/results_autotests*.xml'
archiveArtifacts
artifacts:
'archives/*/test/*.xsl'
if
(
"MERGE"
.
equals
(
env
.
gitlabActionType
))
{
sh
"./ci-scripts/reportTestLocally.sh --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
}
else
{
sh
"./ci-scripts/reportTestLocally.sh --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}"
}
if
(
fileExists
(
'test_simulator_results.html'
))
{
sh
"sed -i -e 's#Build-ID: ${BUILD_ID}#Build-ID: <a href=\"{BUILD_URL}\">${BUILD_ID}</a>#' test_simulator_results.html"
archiveArtifacts
artifacts:
'test_simulator_results.html'
}
}
}
}
...
...
ci-scripts/Jenkinsfile-tmp-ran
View file @
46231a5d
...
...
@@ -44,9 +44,12 @@ termStatusArray[termSPGW] = false
termStatusArray
[
termMME
]
=
false
termStatusArray
[
termHSS
]
=
false
// Global Parameters. Normally they should be populated when the master job
// triggers the slave job with parameters
def
eNB_Repository
def
eNB_Branch
def
eNB_CommitID
def
eNB_AllowMergeRequestProcess
=
false
pipeline
{
agent
{
...
...
@@ -118,7 +121,7 @@ pipeline {
if
(
params
.
eNB_Credentials
==
null
)
{
allParametersPresent
=
false
}
// the following
3
parameters should be pushed by the master trigger
// the following
4
parameters should be pushed by the master trigger
// if not present, take the job GIT variables (used for developing)
if
(
params
.
eNB_Repository
==
null
)
{
eNB_Repository
=
env
.
GIT_URL
...
...
@@ -138,6 +141,9 @@ pipeline {
eNB_CommitID
=
params
.
eNB_CommitID
}
echo
"eNB_CommitID : ${eNB_CommitID}"
if
(
params
.
eNB_mergeRequest
!=
null
)
{
eNB_AllowMergeRequestProcess
=
params
.
eNB_mergeRequest
}
if
(
params
.
EPC_IPAddress
==
null
)
{
allParametersPresent
=
false
...
...
@@ -179,7 +185,7 @@ pipeline {
[
$class
:
'UsernamePasswordMultiBinding'
,
credentialsId:
"${params.EPC_Credentials}"
,
usernameVariable:
'EPC_Username'
,
passwordVariable:
'EPC_Password'
],
[
$class
:
'UsernamePasswordMultiBinding'
,
credentialsId:
"${params.ADB_Credentials}"
,
usernameVariable:
'ADB_Username'
,
passwordVariable:
'ADB_Password'
]
])
{
sh
"python3 main.py --mode=TesteNB --eNBIPAddress=${params.eNB_IPAddress} --eNBRepository=${eNB_Repository} --eNBBranch=${eNB_Branch} --eNBCommitID=${eNB_CommitID} --eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --EPCIPAddress=${params.EPC_IPAddress} --EPCType=${params.EPC_Type} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} --XMLTestFile=${testXMLFile}"
sh
"python3 main.py --mode=TesteNB --eNBIPAddress=${params.eNB_IPAddress} --eNBRepository=${eNB_Repository} --eNBBranch=${eNB_Branch} --eNBCommitID=${eNB_CommitID}
--eNB_AllowMerge=${eNB_AllowMergeRequestProcess}
--eNBUserName=${eNB_Username} --eNBPassword=${eNB_Password} --eNBSourceCodePath=${params.eNB_SourceCodePath} --EPCIPAddress=${params.EPC_IPAddress} --EPCType=${params.EPC_Type} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --ADBIPAddress=${params.ADB_IPAddress} --ADBUserName=${ADB_Username} --ADBPassword=${ADB_Password} --XMLTestFile=${testXMLFile}"
}
}
catch
(
Exception
e
)
{
currentBuild
.
result
=
'FAILURE'
...
...
@@ -312,6 +318,11 @@ pipeline {
if
(
fileExists
(
"enb.log.${env.BUILD_ID}.zip"
))
{
archiveArtifacts
"enb.log.${env.BUILD_ID}.zip"
}
if
(
fileExists
(
"ci-scripts/test_results.html"
))
{
sh
"mv ci-scripts/test_results.html test_results-${JOB_NAME}.html"
sh
"sed -i -e 's#TEMPLATE_JOB_NAME#${JOB_NAME}#' -e 's#TEMPLATE_BUILD_ID#<a href=\"${BUILD_URL}\">${BUILD_ID}</a>#' test_results-${JOB_NAME}.html"
archiveArtifacts
"test_results-${JOB_NAME}.html"
}
}
}
}
...
...
@@ -387,6 +398,24 @@ pipeline {
}
}
}
stage
(
'Log Collection (Iperf)'
)
{
steps
{
withCredentials
([
[
$class
:
'UsernamePasswordMultiBinding'
,
credentialsId:
"${params.EPC_Credentials}"
,
usernameVariable:
'EPC_Username'
,
passwordVariable:
'EPC_Password'
]
])
{
echo
'\u2705 \u001B[32mLog Collection (Iperf)\u001B[0m'
sh
"python3 ci-scripts/main.py --mode=LogCollectIperf --EPCIPAddress=${params.EPC_IPAddress} --EPCUserName=${EPC_Username} --EPCPassword=${EPC_Password} --EPCSourceCodePath=${params.EPC_SourceCodePath} --EPCType=${params.EPC_Type}"
echo
'\u2705 \u001B[32mLog Transfer (Iperf)\u001B[0m'
sh
"sshpass -p \'${EPC_Password}\' scp -o 'StrictHostKeyChecking no' -o 'ConnectTimeout 10' ${EPC_Username}@${params.EPC_IPAddress}:${EPC_SourceCodePath}/scripts/iperf.log.zip ./iperf.log.${env.BUILD_ID}.zip || true"
}
script
{
if
(
fileExists
(
"iperf.log.${env.BUILD_ID}.zip"
))
{
archiveArtifacts
"iperf.log.${env.BUILD_ID}.zip"
}
}
}
}
}
}
}
...
...
ci-scripts/buildOnRH.sh
0 → 100755
View file @
46231a5d
#!/bin/bash
#/*
# * 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
# */
function
usage
{
echo
"OAI RedHat Build Check script"
echo
" Original Author: Raphael Defosseux"
echo
""
echo
"Usage:"
echo
"------"
echo
" buildOnRH.sh [OPTIONS]"
echo
""
echo
"Options:"
echo
"--------"
echo
" --job-name #### OR -jn ####"
echo
" Specify the name of the Jenkins job."
echo
""
echo
" --build-id #### OR -id ####"
echo
" Specify the build ID of the Jenkins job."
echo
""
echo
" --workspace #### OR -ws ####"
echo
" Specify the workspace."
echo
""
echo
" --remote-host #### OR -rh ####"
echo
" Specify the RedHat remote server."
echo
""
echo
" --remote-user-name #### OR -ru ####"
echo
" Specify the RedHat remote server username."
echo
""
echo
" --remote-password #### OR -rp ####"
echo
" Specify the RedHat remote server password."
echo
""
echo
" --remote-path #### OR -ra ####"
echo
" Specify the RedHat remote server path to work on."
echo
""
}
if
[
$#
-lt
1
]
||
[
$#
-gt
14
]
then
echo
"Syntax Error: not the correct number of arguments"
echo
""
usage
exit
1
fi
RH_HOST
=
XX
RH_USER
=
XX
RH_PASSWD
=
XX
RH_PATH
=
XX
JOB_NAME
=
XX
BUILD_ID
=
XX
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
case
$key
in
-h
|
--help
)
shift
usage
exit
0
;;
-jn
|
--job-name
)
JOB_NAME
=
"
$2
"
shift
shift
;;
-id
|
--build-id
)
BUILD_ID
=
"
$2
"
shift
shift
;;
-ws
|
--workspace
)
JENKINS_WKSP
=
"
$2
"
shift
shift
;;
-rh
|
--remote-host
)
RH_HOST
=
"
$2
"
shift
shift
;;
-ru
|
--remote-user-name
)
RH_USER
=
"
$2
"
shift
shift
;;
-rp
|
--remote-password
)
RH_PASSWD
=
"
$2
"
shift
shift
;;
-ra
|
--remote-path
)
RH_PATH
=
"
$2
"
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
esac
done
if
[
!
-f
$JENKINS_WKSP
/localZip.zip
]
then
echo
"Missing localZip.zip file!"
exit
1
fi
if
[
"
$JOB_NAME
"
==
"XX"
]
||
[
"
$BUILD_ID
"
==
"XX"
]
||
[
"
$RH_HOST
"
==
"XX"
]
||
[
"
$RH_USER
"
==
"XX"
]
||
[
"
$RH_PASSWD
"
==
"XX"
]
||
[
"
$RH_PATH
"
==
"XX"
]
then
echo
"Missing options"
usage
exit
1
fi
echo
"############################################################"
echo
"Copying GIT repo into RedHat Server"
echo
"############################################################"
echo
"rm -Rf
${
RH_PATH
}
"
>>
rh-cmd.txt
echo
"mkdir -p
${
RH_PATH
}
"
>>
rh-cmd.txt
sshpass
-p
${
RH_PASSWD
}
ssh
-o
'StrictHostKeyChecking no'
${
RH_USER
}
@
${
RH_HOST
}
< rh-cmd.txt
rm
-f
rh-cmd.txt
echo
"############################################################"
echo
"Running install and build script on RedHat Server"
echo
"############################################################"
sshpass
-p
${
RH_PASSWD
}
scp
-o
'StrictHostKeyChecking no'
$JENKINS_WKSP
/localZip.zip
${
RH_USER
}
@
${
RH_HOST
}
:
${
RH_PATH
}
echo
"cd
${
RH_PATH
}
"
>
rh-cmd.txt
echo
"unzip -qq localZip.zip"
>>
rh-cmd.txt
echo
"source oaienv"
>>
rh-cmd.txt
echo
"cd cmake_targets"
>>
rh-cmd.txt
echo
"mkdir -p log"
>>
rh-cmd.txt
echo
"./build_oai -I -w USRP --eNB > log/install-build.txt 2>&1"
>>
rh-cmd.txt
sshpass
-p
${
RH_PASSWD
}
ssh
-o
'StrictHostKeyChecking no'
${
RH_USER
}
@
${
RH_HOST
}
< rh-cmd.txt
rm
-f
rh-cmd.txt
echo
"############################################################"
echo
"Creating a tmp folder to store results and artifacts"
echo
"############################################################"
if
[
!
-d
$JENKINS_WKSP
/archives
]
then
mkdir
-p
$JENKINS_WKSP
/archives
fi
ARCHIVES_LOC
=
$JENKINS_WKSP
/archives/red_hat
if
[
!
-d
$ARCHIVES_LOC
]
then
mkdir
-p
$ARCHIVES_LOC
fi
sshpass
-p
${
RH_PASSWD
}
scp
-o
'StrictHostKeyChecking no'
${
RH_USER
}
@
${
RH_HOST
}
:
${
RH_PATH
}
/cmake_targets/log/
*
.txt
$ARCHIVES_LOC
echo
"############################################################"
echo
"Checking build status"
echo
"############################################################"
LOG_PATTERN
=
.Rel14.txt
NB_PATTERN_FILES
=
4
LOG_FILES
=
`
ls
$ARCHIVES_LOC
/
*
.txt
`
STATUS
=
0
NB_FOUND_FILES
=
0
for
FULLFILE
in
$LOG_FILES
do
if
[[
$FULLFILE
==
*
"
$LOG_PATTERN
"
*
]]
then
filename
=
$(
basename
--
"
$FULLFILE
"
)
PASS_PATTERN
=
`
echo
$filename
|
sed
-e
"s#
$LOG_PATTERN
##"
`
LOCAL_STAT
=
`
egrep
-c
"Built target
$PASS_PATTERN
"
$FULLFILE
`
if
[
$LOCAL_STAT
-eq
0
]
;
then
STATUS
=
-1
;
fi
NB_FOUND_FILES
=
$((
NB_FOUND_FILES
+
1
))
fi
done
if
[
$NB_PATTERN_FILES
-ne
$NB_FOUND_FILES
]
;
then
STATUS
=
-1
;
fi
if
[
$STATUS
-eq
0
]
then
echo
"STATUS seems OK"
else
echo
"STATUS failed?"
fi
exit
$STATUS
ci-scripts/buildOnVM.sh
View file @
46231a5d
...
...
@@ -86,6 +86,7 @@ JOB_NAME=XX
BUILD_ID
=
XX
VM_NAME
=
ci-enb-usrp
VM_MEMORY
=
2048
VM_CPU
=
4
ARCHIVES_LOC
=
enb_usrp
LOG_PATTERN
=
.Rel14.txt
NB_PATTERN_FILES
=
4
...
...
@@ -135,6 +136,8 @@ case $key in
LOG_PATTERN
=
basic_simulator
NB_PATTERN_FILES
=
2
BUILD_OPTIONS
=
"--basic-simulator"
VM_MEMORY
=
8192
VM_CPU
=
4
shift
;;
-v3
)
...
...
@@ -186,6 +189,8 @@ case $key in
LOG_PATTERN
=
basic_simulator
NB_PATTERN_FILES
=
2
BUILD_OPTIONS
=
"--basic-simulator"
VM_MEMORY
=
8192
VM_CPU
=
4
;;
phy-sim
)
VM_NAME
=
ci-phy-sim
...
...
@@ -270,7 +275,7 @@ then
echo
"############################################################"
echo
"Creating VM (
$VM_NAME
) on Ubuntu Cloud Image base"
echo
"############################################################"
uvt-kvm create
$VM_NAME
release
=
xenial
--memory
$VM_MEMORY
--cpu
4
--unsafe-caching
--template
ci-scripts/template-host.xml
uvt-kvm create
$VM_NAME
release
=
xenial
--memory
$VM_MEMORY
--cpu
$VM_CPU
--unsafe-caching
--template
ci-scripts/template-host.xml
fi
echo
"Waiting for VM to be started"
...
...
@@ -289,6 +294,7 @@ echo "############################################################"
echo
"Running install and build script on VM (
$VM_NAME
)"
echo
"############################################################"
echo
"sudo cp 01proxy /etc/apt/apt.conf.d/"
>
$VM_CMDS
echo
"touch /home/ubuntu/.hushlogin"
>>
$VM_CMDS
if
[[
"
$VM_NAME
"
==
*
"-cppcheck"
*
]]
then
echo
"echo
\"
sudo apt-get --yes --quiet install zip cppcheck
\"
"
>>
$VM_CMDS
...
...
ci-scripts/checkAddedWarnings.sh
0 → 100755
View file @
46231a5d
#!/bin/bash
#/*
# * 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.