blob: f2ee19bc19295be01ae3f8ac33bf12c81eabc77b [file] [log] [blame]
/* seba-in-a-box build+test */
pipeline {
/* no label, executor is determined by JJB */
agent {
label "${params.executorNode}"
}
options {
timeout(time: 1, unit: 'HOURS')
}
stages {
stage ("Clean workspace") {
steps {
sh 'cd $WORKSPACE; rm -rf *'
}
}
stage('repo') {
steps {
checkout(changelog: false, \
poll: false,
scm: [$class: 'RepoScm', \
manifestRepositoryUrl: "https://gerrit.opencord.org/manifest.git", \
manifestBranch: "master", \
currentBranch: true, \
destinationDir: 'cord', \
forceSync: true,
resetFirst: true, \
quiet: true, \
jobs: 4, \
showAllChanges: true] \
)
}
}
stage('patch') {
steps {
sh """
pushd $WORKSPACE/cord
repo download helm-charts "${gerritChangeNumber}/${gerritPatchsetNumber}"
popd
"""
}
}
stage ('Reset Kubeadm') {
steps {
sh """
pushd $WORKSPACE/cord/automation-tools/seba-in-a-box
make reset-kubeadm
popd
"""
}
}
stage ('Install SEBA') {
steps {
sh """
pushd $WORKSPACE/cord/automation-tools/seba-in-a-box
make ${params.version}
popd
"""
}
}
stage ('Run E2E Tests') {
steps {
sh """
pushd $WORKSPACE/cord/automation-tools/seba-in-a-box
make ${params.Test_Target} ${params.Test_Tags} || true
popd
"""
}
}
stage ('Display Kafka Events') {
steps {
sh """
pushd $WORKSPACE/cord/automation-tools/seba-in-a-box
CORD_KAFKA_IP=\$(kubectl exec cord-kafka-0 -- ip a | grep -oE "([0-9]{1,3}\\.){3}[0-9]{1,3}\\b" | grep 192)
kafkacat -e -C -b \$CORD_KAFKA_IP -t onu.events -f 'Topic %t [%p] at offset %o: key %k: %s\n >0'
kafkacat -e -C -b \$CORD_KAFKA_IP -t authentication.events -f 'Topic %t [%p] at offset %o: key %k: %s\n >0'
kafkacat -e -C -b \$CORD_KAFKA_IP -t dhcp.events -f 'Topic %t [%p] at offset %o: key %k: %s\n >0'
popd
"""
}
}
stage('Publish') {
steps {
sh """
if [ -d RobotLogs ]; then rm -r RobotLogs; fi; mkdir RobotLogs
cp -r $WORKSPACE/cord/test/cord-tester/src/test/cord-api/Tests/WorkflowValidations/*ml ./RobotLogs
"""
step([$class: 'RobotPublisher',
disableArchiveOutput: false,
logFileName: 'RobotLogs/log*.html',
otherFiles: '',
outputFileName: 'RobotLogs/output*.xml',
outputPath: '.',
passThreshold: 100,
reportFileName: 'RobotLogs/report*.html',
unstableThreshold: 0]);
}
}
}
post {
always {
sh '''
kubectl describe pods > $WORKSPACE/kube_pods.log
kubectl describe pods -n voltha > $WORKSPACE/kube_voltha_pods.log
sudo cp /var/log/containers/*.log $WORKSPACE/
sudo chown cord:cord $WORKSPACE/*log
'''
archiveArtifacts artifacts: '*.log'
step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: "andy@opennetworking.org, kailash@opennetworking.org", sendToIndividuals: false])
}
failure {
sh '''
curl -X GET -u karaf:karaf http://127.0.0.1:30120/onos/v1/devices
curl -X GET -u karaf:karaf http://127.0.0.1:30120/onos/v1/devices/of:0000000000000001/ports
curl -X GET http://127.0.0.1:30125/api/v1/devices
curl -X GET http://127.0.0.1:30125/api/v1/logical_devices
'''
}
}
}