Jenkins SITL tests add cmake build type choice

This commit is contained in:
Daniel Agar
2018-08-24 19:39:09 -04:00
parent 28125aca3d
commit 92d288e8d4
2 changed files with 77 additions and 136 deletions
+77 -30
View File
@@ -2,40 +2,84 @@
pipeline { pipeline {
agent none agent none
stages {
parameters {
choice(
name: 'CMAKE_BUILD_TYPE',
choices: ['RelWithDebInfo', 'Coverage', 'AddressSanitizer'],
description: "CMake build type"
)
}
stages {
stage('Build') { stage('Build') {
steps { parallel {
script {
stage('sitl package') { stage('sitl package') {
node { agent {
docker.image("px4io/px4-dev-ros:2018-07-19").inside('-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw -e HOME=$WORKSPACE') { docker {
stage("sitl package") { image 'px4io/px4-dev-ros:2018-07-19'
try { args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw -e HOME=$WORKSPACE'
checkout(scm)
sh('export')
sh('make distclean')
sh "ccache -z"
sh('make posix_sitl_default')
sh "ccache -s"
sh('make posix_sitl_default sitl_gazebo')
sh "ccache -s"
sh('make posix_sitl_default package')
stash(name: "px4_sitl_package", includes: "build/posix_sitl_default/*.bz2")
}
catch (exc) {
throw (exc)
}
finally {
sh('make distclean')
}
}
}
} }
} }
} // script steps {
} // steps sh('export')
} // Build sh('make distclean')
sh "ccache -z"
sh('make posix_sitl_default')
sh "ccache -s"
sh('make posix_sitl_default sitl_gazebo')
sh "ccache -s"
sh('make posix_sitl_default package')
stash(name: "px4_sitl_package", includes: "build/posix_sitl_default/*.bz2")
sh 'make distclean'
}
}
stage('unit tests') {
agent {
docker {
image 'px4io/px4-dev-base:2018-07-19'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
sh 'export'
sh 'make distclean'
sh 'ccache -z'
sh 'make posix_sitl_default test_results_junit'
sh 'ccache -s'
junit 'build/posix_sitl_default/JUnitTestResults.xml'
withCredentials([string(credentialsId: 'FIRMWARE_CODECOV_TOKEN', variable: 'CODECOV_TOKEN')]) {
sh 'curl -s https://codecov.io/bash | bash -s - -F unittest'
}
sh 'make distclean'
}
}
stage('code coverage (python)') {
agent {
docker {
image 'px4io/px4-dev-base:2018-08-04'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
sh 'export'
sh 'make distclean'
sh 'make python_coverage'
withCredentials([string(credentialsId: 'FIRMWARE_CODECOV_TOKEN', variable: 'CODECOV_TOKEN')]) {
sh 'curl -s https://codecov.io/bash | bash -s - -F python'
}
sh 'make distclean'
}
when {
environment name: 'CMAKE_BUILD_TYPE', value: 'Coverage'
}
}
} // parallel
} // stage Build
stage('ROS Tests') { stage('ROS Tests') {
steps { steps {
@@ -129,6 +173,9 @@ def createTestNode(Map test_def) {
finally { finally {
sh('px4-posix_sitl_default*/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/log/*/*.ulg') sh('px4-posix_sitl_default*/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/log/*/*.ulg')
archiveArtifacts(allowEmptyArchive: false, artifacts: '.ros/**/*.pdf, .ros/**/*.csv') archiveArtifacts(allowEmptyArchive: false, artifacts: '.ros/**/*.pdf, .ros/**/*.csv')
withCredentials([string(credentialsId: 'FIRMWARE_CODECOV_TOKEN', variable: 'CODECOV_TOKEN')]) {
sh 'curl -s https://codecov.io/bash | bash -s - -F mission'
}
} }
} }
} }
Vendored
-106
View File
@@ -160,115 +160,9 @@ pipeline {
} }
} }
stage('code coverage (mission test)') {
agent {
docker {
image 'px4io/px4-dev-ros:2018-07-19'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw -e HOME=$WORKSPACE'
}
}
steps {
sh 'export'
sh 'make distclean; rm -rf .ros; rm -rf .gazebo'
sh 'ulimit -c unlimited; make tests_mission_coverage'
withCredentials([string(credentialsId: 'FIRMWARE_CODECOV_TOKEN', variable: 'CODECOV_TOKEN')]) {
sh 'curl -s https://codecov.io/bash | bash -s - -F mission'
}
sh 'make distclean'
}
}
stage('code coverage (unit tests)') {
agent {
docker {
image 'px4io/px4-dev-base:2018-07-19'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
sh 'export'
sh 'make distclean'
sh 'ulimit -c unlimited; make tests_coverage || true' // always pass for now
withCredentials([string(credentialsId: 'FIRMWARE_CODECOV_TOKEN', variable: 'CODECOV_TOKEN')]) {
sh 'curl -s https://codecov.io/bash | bash -s - -F unittests'
}
sh 'make distclean'
}
post {
failure {
sh('ls -a')
sh('find . -name core')
sh('gdb --batch --quiet -ex "thread apply all bt full" -ex "quit" build/posix_sitl_default/px4 core || true') // always pass for now
}
}
}
stage('code coverage (python)') {
agent {
docker {
image 'px4io/px4-dev-base:2018-08-04'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
sh 'export'
sh 'make distclean'
sh 'make python_coverage'
withCredentials([string(credentialsId: 'FIRMWARE_CODECOV_TOKEN', variable: 'CODECOV_TOKEN')]) {
sh 'curl -s https://codecov.io/bash | bash -s - -F python'
}
sh 'make distclean'
}
}
} // parallel } // parallel
} // stage Analysis } // stage Analysis
stage('Test') {
parallel {
stage('unit tests') {
agent {
docker {
image 'px4io/px4-dev-base:2018-07-19'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
sh 'export'
sh 'make distclean'
sh 'ccache -z'
sh 'make posix_sitl_default test_results_junit'
sh 'ccache -s'
junit 'build/posix_sitl_default/JUnitTestResults.xml'
sh 'make distclean'
}
}
stage('unit tests (address sanitizer)') {
agent {
docker {
image 'px4io/px4-dev-base:2018-07-19'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
environment {
PX4_ASAN = 1
ASAN_OPTIONS = "color=always:check_initialization_order=1:detect_stack_use_after_return=1"
}
steps {
sh 'export'
sh 'make distclean'
sh 'ccache -z'
sh 'make tests || true' // always pass for now, TODO: PX4 sitl clean shutdown
sh 'ccache -s'
sh 'make distclean'
}
}
} // parallel
} // stage Test
stage('Generate Metadata') { stage('Generate Metadata') {
parallel { parallel {