diff --git a/.ci/Jenkinsfile-hardware b/.ci/Jenkinsfile-hardware index 1f2c2cc03d..069d304751 100644 --- a/.ci/Jenkinsfile-hardware +++ b/.ci/Jenkinsfile-hardware @@ -8,6 +8,30 @@ pipeline { parallel { + stage('px4_fmu-v2_test') { + agent { + docker { + image 'px4io/px4-dev-nuttx:2019-02-09' + args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' + } + } + steps { + sh 'export' + sh 'make distclean' + sh 'ccache -z' + sh 'git fetch --tags' + sh 'make px4_fmu-v2_default' + sh 'make sizes' + sh 'ccache -s' + stash includes: 'build/px4_fmu-v2_default/px4_fmu-v2_default.elf', name: 'px4_fmu-v2_test' + } + post { + always { + sh 'make distclean' + } + } + } + stage('px4_fmu-v3_default') { agent { docker { @@ -80,6 +104,54 @@ pipeline { } } + stage('px4_fmu-v5_default') { + agent { + docker { + image 'px4io/px4-dev-nuttx:2019-02-09' + args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' + } + } + steps { + sh 'export' + sh 'make distclean' + sh 'ccache -z' + sh 'git fetch --tags' + sh 'make px4_fmu-v5_default' + sh 'make sizes' + sh 'ccache -s' + stash includes: 'build/px4_fmu-v5_default/px4_fmu-v5_default.elf', name: 'px4_fmu-v5_default' + } + post { + always { + sh 'make distclean' + } + } + } + + stage('px4_fmu-v5_stackcheck') { + agent { + docker { + image 'px4io/px4-dev-nuttx:2019-02-09' + args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' + } + } + steps { + sh 'export' + sh 'make distclean' + sh 'ccache -z' + sh 'git fetch --tags' + sh 'make px4_fmu-v5_stackcheck' + sh 'make sizes' + sh 'ccache -s' + stash includes: 'build/px4_fmu-v5_stackcheck/px4_fmu-v5_stackcheck.elf', name: 'px4_fmu-v5_stackcheck' + } + post { + always { + sh 'make distclean' + } + } + } + } // parallel } // stage Build @@ -87,7 +159,41 @@ pipeline { parallel { - stage('px4fmu-v3_default') { + stage('px4_fmu-v2_test') { + agent { + label 'px4_fmu-v2' + } + steps { + script { + try { + sh 'export' + sh 'find /dev/serial' + unstash 'px4_fmu-v2_test' + sh '''gdb-multiarch -nx --batch \ + -ex "target remote localhost:2331" \ + -ex "monitor reset 0" \ + -ex "load" \ + -ex "compare-sections" \ + -ex "monitor reset 0" \ + -ex "monitor sleep 1000" \ + -ex "monitor go" \ + -ex "kill" \ + build/px4_fmu-v2_test/px4_fmu-v2_test.elf + ''' + sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_TTL232R-3V3_*` --baudrate 57600' + //sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-FTDI_TTL232R-3V3_*`' + } catch (Exception err) { + // always report passed for now + currentBuild.result = 'SUCCESS' + } + } // script + } + options { + timeout(time: 600, unit: 'SECONDS') + } + } + + stage('px4_fmu-v3_default') { agent { label 'px4_fmu-v3' } @@ -121,7 +227,7 @@ pipeline { } } - stage('px4fmu-v3_default (pixhack-v3)') { + stage('px4_fmu-v3_default (pixhack-v3)') { agent { label 'pixhack-v3' } @@ -155,7 +261,7 @@ pipeline { } } - stage('px4fmu-v4_default') { + stage('px4_fmu-v4_default') { agent { label 'px4_fmu-v4' } @@ -189,7 +295,7 @@ pipeline { } } - stage('px4fmu-v4pro_default') { + stage('px4_fmu-v4pro_default') { agent { label 'px4_fmu-v4pro' } @@ -223,6 +329,74 @@ pipeline { } } + stage('px4_fmu-v5_default') { + agent { + label 'px4_fmu-v5' + } + steps { + script { + try { + sh 'export' + sh 'find /dev/serial' + unstash 'px4_fmu-v5_default' + sh '''gdb-multiarch -nx --batch \ + -ex "target remote localhost:2331" \ + -ex "monitor reset 0" \ + -ex "load" \ + -ex "compare-sections" \ + -ex "monitor reset 0" \ + -ex "monitor sleep 1000" \ + -ex "monitor go" \ + -ex "kill" \ + build/px4_fmu-v5_default/px4_fmu-v5_default.elf + ''' + sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_TTL232R-3V3_*` --baudrate 57600' + sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-FTDI_TTL232R-3V3_*`' + } catch (Exception err) { + // always report passed for now + currentBuild.result = 'SUCCESS' + } + } // script + } + options { + timeout(time: 600, unit: 'SECONDS') + } + } + + stage('px4_fmu-v5_stackcheck') { + agent { + label 'px4_fmu-v5' + } + steps { + script { + try { + sh 'export' + sh 'find /dev/serial' + unstash 'px4_fmu-v5_stackcheck' + sh '''gdb-multiarch -nx --batch \ + -ex "target remote localhost:2331" \ + -ex "monitor reset 0" \ + -ex "load" \ + -ex "compare-sections" \ + -ex "monitor reset 0" \ + -ex "monitor sleep 1000" \ + -ex "monitor go" \ + -ex "kill" \ + build/px4_fmu-v5_stackcheck/px4_fmu-v5_stackcheck.elf + ''' + sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-FTDI_TTL232R-3V3_*` --baudrate 57600' + sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-FTDI_TTL232R-3V3_*`' + } catch (Exception err) { + // always report passed for now + currentBuild.result = 'SUCCESS' + } + } // script + } + options { + timeout(time: 600, unit: 'SECONDS') + } + } + } // parallel } // stage Flash