mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-28 10:46:33 +08:00
Jenkins SITL tests add cmake build type choice
This commit is contained in:
+77
-30
@@ -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
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user