diff --git a/.ci/Jenkinsfile-hardware b/.ci/Jenkinsfile-hardware new file mode 100644 index 0000000000..c233633a40 --- /dev/null +++ b/.ci/Jenkinsfile-hardware @@ -0,0 +1,138 @@ +pipeline { + agent none + stages { + + stage('Build') { + + parallel { + + stage('px4fmu-v2') { + agent { + docker { + image 'px4io/px4-dev-nuttx:2018-08-05' + 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 nuttx_px4fmu-v2_test' + sh 'make sizes' + sh 'ccache -s' + stash includes: 'build/nuttx_px4fmu-v2_test/nuttx_px4fmu-v2_test.elf', name: 'px4fmu-v2_test' + stash includes: 'Tools/HIL/monitor_firmware_upload.py, Tools/HIL/run_tests.py', name: 'scripts-px4fmu-v2' + sh 'make distclean' + } + } + + stage('px4fmu-v4') { + agent { + docker { + image 'px4io/px4-dev-nuttx:2018-08-05' + 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 nuttx_px4fmu-v4_default' + sh 'make sizes' + sh 'ccache -s' + stash includes: 'build/nuttx_px4fmu-v4_default/nuttx_px4fmu-v4_default.elf', name: 'px4fmu-v4_default' + stash includes: 'Tools/HIL/monitor_firmware_upload.py, Tools/HIL/run_tests.py', name: 'scripts-px4fmu-v4' + sh 'make distclean' + } + } + + } // parallel + } // stage Build + + stage('Flash and Run') { + + parallel { + + stage('px4fmu-v2') { + agent { + label 'px4fmu-v2' + } + steps { + script { + try { + sh 'export' + sh 'find /dev/serial' + unstash 'scripts-px4fmu-v2' + unstash 'px4fmu-v2_test' + sh ''' gdb -nx --batch \ + -ex "target extended-remote `find /dev/serial -name *Black_Magic_Probe_*-if00`" \ + -ex "monitor version" \ + -ex "monitor connect_srst enable" \ + -ex "monitor swdp_scan" \ + -ex "attach 1" \ + -ex "load" \ + -ex "kill" \ + build/nuttx_px4fmu-v2_test/nuttx_px4fmu-v2_test.elf + ''' + sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *Black_Magic_Probe_*-if02` --baudrate 57600' + sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *Black_Magic_Probe_*-if02`' + } catch (Exception err) { + // always report passed for now + currentBuild.result = 'SUCCESS' + } + } // script + } + options { + timeout(time: 300, unit: 'SECONDS') + } + } + + stage('px4fmu-v4') { + agent { + label 'px4fmu-v4' + } + steps { + script { + try { + sh 'export' + sh 'find /dev/serial' + unstash 'scripts-px4fmu-v4' + unstash 'px4fmu-v4_default' + sh ''' gdb -nx --batch \ + -ex "target extended-remote `find /dev/serial -name *Black_Magic_Probe_*-if00`" \ + -ex "monitor version" \ + -ex "monitor connect_srst enable" \ + -ex "monitor swdp_scan" \ + -ex "attach 1" \ + -ex "load" \ + -ex "kill" \ + build/nuttx_px4fmu-v4_default/nuttx_px4fmu-v4_default.elf + ''' + sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *Black_Magic_Probe_*-if02` --baudrate 57600' + sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *Black_Magic_Probe_*-if02`' + } catch (Exception err) { + // always report passed for now + currentBuild.result = 'SUCCESS' + } + } // script + } + options { + timeout(time: 300, unit: 'SECONDS') + } + } + + } // parallel + } // stage Flash + + } // stages + environment { + CCACHE_DIR = '/tmp/ccache' + CI = true + } + options { + buildDiscarder(logRotator(numToKeepStr: '10', artifactDaysToKeepStr: '30')) + timeout(time: 60, unit: 'MINUTES') + } +} diff --git a/.ci/Jenkinsfile-hardware_px4fmu-v2 b/.ci/Jenkinsfile-hardware_px4fmu-v2 deleted file mode 100644 index 6a747b2099..0000000000 --- a/.ci/Jenkinsfile-hardware_px4fmu-v2 +++ /dev/null @@ -1,70 +0,0 @@ -pipeline { - agent none - stages { - - stage('Build') { - agent { - docker { - image 'px4io/px4-dev-nuttx:2018-08-05' - 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 nuttx_px4fmu-v2_test' - sh 'make sizes' - sh 'ccache -s' - stash includes: 'build/nuttx_px4fmu-v2_test/nuttx_px4fmu-v2_test.elf', name: 'px4fmu-v2_test' - stash includes: 'Tools/HIL/monitor_firmware_upload.py, Tools/HIL/run_tests.py', name: 'scripts' - sh 'make distclean' - } - } // stage Build - - stage('Flash and Run') { - agent { - label 'px4fmu-v2' - } - steps { - script { - try { - sh 'export' - sh 'find /dev/serial' - unstash 'px4fmu-v2_test' - sh ''' gdb -nx --batch \ - -ex "target extended-remote `find /dev/serial -name *Black_Magic_Probe_*-if00`" \ - -ex "monitor version" \ - -ex "monitor connect_srst enable" \ - -ex "monitor swdp_scan" \ - -ex "attach 1" \ - -ex "load" \ - -ex "kill" \ - build/nuttx_px4fmu-v2_test/nuttx_px4fmu-v2_test.elf - ''' - unstash 'scripts' - sh './Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *Black_Magic_Probe_*-if02` --baudrate 57600' - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *Black_Magic_Probe_*-if02`' - } catch (Exception err) { - // always report passed for now - currentBuild.result = 'SUCCESS' - } - } // script - } - options { - timeout(time: 300, unit: 'SECONDS') - } - - } // stage Flash - - } // stages - environment { - CCACHE_DIR = '/tmp/ccache' - CI = true - } - options { - buildDiscarder(logRotator(numToKeepStr: '10', artifactDaysToKeepStr: '30')) - timeout(time: 60, unit: 'MINUTES') - } -}