Merge "run unittests on synchronizers that were updated"
diff --git a/jjb/pipeline/xos-synchronizer-update.groovy b/jjb/pipeline/xos-synchronizer-update.groovy
index 1c8a43d..a682c1f 100644
--- a/jjb/pipeline/xos-synchronizer-update.groovy
+++ b/jjb/pipeline/xos-synchronizer-update.groovy
@@ -108,18 +108,53 @@
"""
}
}
+
stage('candiate tag') {
steps {
sh """
+ echo "" > \${WORKSPACE}/updated_dockerfiles
XOS_MAJOR=\$(cut -b 1 cord/orchestration/xos/VERSION)
+
for df in cord/orchestration/xos_services/*/Dockerfile.synchronizer cord/orchestration/profiles/*/Dockerfile.synchronizer
do
sed -i "s/^FROM\\(.*\\):\${XOS_MAJOR}.*\$/FROM\\1:candidate/" "\$df"
+ echo "\${WORKSPACE}/\$df" >> \${WORKSPACE}/updated_dockerfiles
done
"""
}
}
+ stage('unittest') {
+ steps {
+ sh """
+ #!/usr/bin/env bash
+ set -e -o pipefail
+
+ cd "\${WORKSPACE}"
+
+ export XOS_DIR=\${WORKSPACE}/cord/orchestration/xos
+ \$XOS_DIR/scripts/setup_venv.sh
+ source "\${WORKSPACE}/venv-xos/bin/activate"
+
+ for df in \$(cat "\${WORKSPACE}/updated_dockerfiles")
+ do
+ projectdir=\$(dirname "\${df}")
+ if [ -e "\${projectdir}/xos/unittest.cfg" ]
+ then
+ pushd \${projectdir}/xos
+ echo "Performing nose2 tests"
+ nose2 --verbose --coverage-report xml --coverage-report term --junit-xml
+ popd
+ else
+ echo "No unit tests found for project \$(basename \${projectdir})"
+ fi
+ done
+ """
+ junit '**/nose2-junit.xml'
+ cobertura coberturaReportFile: '**/coverage.xml', fileCoverageTargets: '80, 0, 0', methodCoverageTargets: '50, 0, 0'
+ }
+ }
+
stage('prep') {
parallel {