최예리

Delete not necessary file

Showing 72 changed files with 0 additions and 7632 deletions
1 ---ignore-dir=Documentation
1 -#!/usr/bin/env groovy
2 -
3 -pipeline {
4 - agent none
5 - stages {
6 -
7 - stage('Build') {
8 - steps {
9 - script {
10 - def build_nodes = [:]
11 - def docker_images = [
12 - armhf: "px4io/px4-dev-armhf:2021-04-29",
13 - arm64: "px4io/px4-dev-aarch64:2021-04-29",
14 - base: "px4io/px4-dev-base-bionic:2021-04-29",
15 - nuttx: "px4io/px4-dev-nuttx-focal:2021-04-29",
16 - snapdragon: "lorenzmeier/px4-dev-snapdragon:2020-04-01"
17 - ]
18 -
19 - def armhf_builds = [
20 - target: ["beaglebone_blue_default", "emlid_navio2_default", "px4_raspberrypi_default", "scumaker_pilotpi_default"],
21 - image: docker_images.armhf,
22 - archive: false
23 - ]
24 -
25 - def arm64_builds = [
26 - target: ["scumaker_pilotpi_arm64"],
27 - image: docker_images.arm64,
28 - archive: false
29 - ]
30 -
31 - def base_builds = [
32 - target: ["px4_sitl_rtps"],
33 - image: docker_images.base,
34 - archive: false
35 - ]
36 -
37 - def nuttx_builds_archive = [
38 - target: [
39 - "airmind_mindpx-v2_default",
40 - "ark_can-flow_canbootloader",
41 - "ark_can-flow_default",
42 - "av_x-v1_default",
43 - "bitcraze_crazyflie_default",
44 - "bitcraze_crazyflie21_default",
45 - "cuav_can-gps-v1_canbootloader",
46 - "cuav_can-gps-v1_default",
47 - "cuav_nora_default",
48 - "cuav_x7pro_default",
49 - "cubepilot_cubeorange_default",
50 - "cubepilot_cubeyellow_default",
51 - "freefly_can-rtk-gps_canbootloader",
52 - "freefly_can-rtk-gps_default",
53 - "holybro_can-gps-v1_canbootloader",
54 - "holybro_can-gps-v1_default",
55 - "holybro_durandal-v1_default",
56 - "holybro_kakutef7_default",
57 - "holybro_pix32v5_default",
58 - "modalai_fc-v1_default",
59 - "modalai_fc-v1_rtps",
60 - "modalai_fc-v2_default",
61 - "mro_ctrl-zero-f7_default",
62 - "mro_ctrl-zero-f7-oem_default",
63 - "mro_ctrl-zero-h7_default",
64 - "mro_ctrl-zero-h7-oem_default",
65 - "mro_pixracerpro_default",
66 - "mro_x21-777_default",
67 - "mro_x21_default",
68 - "nxp_fmuk66-e_default",
69 - "nxp_fmuk66-e_rtps",
70 - "nxp_fmuk66-e_socketcan",
71 - "nxp_fmuk66-v3_default",
72 - "nxp_fmuk66-v3_rtps",
73 - "nxp_fmuk66-v3_socketcan",
74 - "nxp_fmurt1062-v1_default",
75 - "nxp_ucans32k146_default",
76 - "nxp_ucans32k146_canbootloader",
77 - "omnibus_f4sd_default",
78 - "px4_fmu-v2_default",
79 - "px4_fmu-v2_fixedwing",
80 - "px4_fmu-v2_multicopter",
81 - "px4_fmu-v2_rover",
82 - "px4_fmu-v3_default",
83 - "px4_fmu-v4_cannode",
84 - "px4_fmu-v4_default",
85 - "px4_fmu-v4pro_default",
86 - "px4_fmu-v5_ctrlalloc",
87 - "px4_fmu-v5_debug",
88 - "px4_fmu-v5_default",
89 - "px4_fmu-v5_fixedwing",
90 - "px4_fmu-v5_multicopter",
91 - "px4_fmu-v5_optimized",
92 - "px4_fmu-v5_rover",
93 - "px4_fmu-v5_rtps",
94 - "px4_fmu-v5_stackcheck",
95 - "px4_fmu-v5_uavcanv0periph",
96 - "px4_fmu-v5_uavcanv1",
97 - "px4_fmu-v5x_base_phy_DP83848C",
98 - "px4_fmu-v5x_default",
99 - "px4_fmu-v6u_default",
100 - "px4_fmu-v6x_default",
101 - "px4_io-v2_default",
102 - "spracing_h7extreme_default",
103 - "uvify_core_default"
104 - ],
105 - image: docker_images.nuttx,
106 - archive: true
107 - ]
108 -
109 - def snapdragon_builds = [
110 - target: ["atlflight_eagle_qurt", "atlflight_eagle_default"],
111 - image: docker_images.snapdragon,
112 - archive: false
113 - ]
114 -
115 - def docker_builds = [
116 - armhf_builds, base_builds, nuttx_builds_archive//, snapdragon_builds
117 - ]
118 -
119 - for (def build_type = 0; build_type < docker_builds.size(); build_type++) {
120 - for (def build_target = 0; build_target < docker_builds[build_type].target.size(); build_target++) {
121 - build_nodes.put(docker_builds[build_type].target[build_target],
122 - createBuildNode(docker_builds[build_type].archive, docker_builds[build_type].image, docker_builds[build_type].target[build_target])
123 - )
124 - }
125 - }
126 -
127 - parallel build_nodes
128 -
129 - } // script
130 - } // steps
131 - } // stage Build
132 -
133 - // TODO: actually upload artifacts to S3
134 - // stage('S3 Upload') {
135 - // agent {
136 - // docker { image 'px4io/px4-dev-base-focal:2021-04-29' }
137 - // }
138 - // options {
139 - // skipDefaultCheckout()
140 - // }
141 - // when {
142 - // anyOf {
143 - // branch 'master'
144 - // branch 'beta'
145 - // branch 'stable'
146 - // branch 'pr-jenkins' // for testing
147 - // }
148 - // }
149 - // steps {
150 - // sh 'echo "uploading to S3"'
151 - // }
152 - // }
153 -
154 - } // stages
155 - environment {
156 - CCACHE_DIR = '/tmp/ccache'
157 - CI = true
158 - }
159 - options {
160 - buildDiscarder(logRotator(numToKeepStr: '5', artifactDaysToKeepStr: '14'))
161 - timeout(time: 90, unit: 'MINUTES')
162 - }
163 -}
164 -
165 -def createBuildNode(Boolean archive, String docker_image, String target) {
166 - return {
167 -
168 - // TODO: fix the snapdragon image
169 - bypass_entrypoint = ''
170 - if (docker_image == 'lorenzmeier/px4-dev-snapdragon:2020-04-01') {
171 - bypass_entrypoint = ' --entrypoint=""'
172 - }
173 -
174 - node {
175 - docker.withRegistry('https://registry.hub.docker.com', 'docker_hub_dagar') {
176 - docker.image(docker_image).inside('-e CCACHE_BASEDIR=${WORKSPACE} -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' + bypass_entrypoint) {
177 - stage(target) {
178 - try {
179 - sh('export')
180 - checkout(scm)
181 - sh('make distclean')
182 - sh('git fetch --tags')
183 - sh('ccache -s')
184 - sh('make ' + target)
185 - sh('ccache -s')
186 - sh('make sizes')
187 - if (archive) {
188 - archiveArtifacts(allowEmptyArchive: false, artifacts: 'build/*/*.px4, build/*/*.elf, build/*/*.bin', fingerprint: true, onlyIfSuccessful: true)
189 - }
190 - sh('make ' + target + ' package')
191 - archiveArtifacts(allowEmptyArchive: true, artifacts: 'build/*/*.tar.bz2', fingerprint: true, onlyIfSuccessful: true)
192 - archiveArtifacts(allowEmptyArchive: true, artifacts: 'build/*/*.deb', fingerprint: true, onlyIfSuccessful: true)
193 - }
194 - catch (exc) {
195 - throw (exc)
196 - }
197 - finally {
198 - sh('make distclean')
199 - }
200 - }
201 - }
202 - }
203 - }
204 - }
205 -}
1 -#!/usr/bin/env groovy
2 -
3 -pipeline {
4 - agent none
5 - stages {
6 - stage('Hardware Test') {
7 -
8 - parallel {
9 -
10 - stage("cubepilot_cubeorange_test") {
11 - stages {
12 - stage("build cubepilot_cubeorange_test") {
13 - agent {
14 - docker {
15 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
16 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
17 - }
18 - }
19 - steps {
20 - checkout scm
21 - sh 'export'
22 - sh 'make distclean'
23 - sh 'ccache -s'
24 - sh 'git fetch --tags'
25 - sh 'make cubepilot_cubeorange_test'
26 - sh 'make sizes'
27 - sh 'ccache -s'
28 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'cubepilot_cubeorange_test'
29 - }
30 - post {
31 - always {
32 - sh 'make distclean'
33 - }
34 - }
35 - } // stage build
36 - stage("test") {
37 - agent {
38 - label 'cubepilot_cubeorange'
39 - }
40 - stages {
41 - stage("flash") {
42 - steps {
43 - sh 'export'
44 - sh 'find /dev/serial'
45 - unstash 'cubepilot_cubeorange_test'
46 - // flash board and watch bootup
47 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cubepilot_cubeorange_test/cubepilot_cubeorange_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
48 - }
49 - }
50 - stage("configure") {
51 - steps {
52 - // configure
53 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
54 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 2000"'
55 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
56 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
57 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
58 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
59 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
60 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
61 - }
62 - }
63 - stage("status") {
64 - steps {
65 - statusFTDI()
66 - }
67 - }
68 - stage("tests") {
69 - steps {
70 - // run tests
71 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
72 - }
73 - }
74 - stage("reset") {
75 - steps {
76 - cleanupFTDI()
77 - }
78 - }
79 - }
80 - } // stage test
81 - }
82 - }
83 -
84 - stage("cuav_x7pro_test") {
85 - stages {
86 - stage("build cuav_x7pro_test") {
87 - agent {
88 - docker {
89 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
90 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
91 - }
92 - }
93 - steps {
94 - checkout scm
95 - sh 'export'
96 - sh 'make distclean'
97 - sh 'ccache -s'
98 - sh 'git fetch --tags'
99 - sh 'make cuav_x7pro_test'
100 - sh 'make sizes'
101 - sh 'ccache -s'
102 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'cuav_x7pro_test'
103 - }
104 - post {
105 - always {
106 - sh 'make distclean'
107 - }
108 - }
109 - } // stage build
110 - stage("test") {
111 - agent {
112 - label 'cuav_x7pro'
113 - }
114 - stages {
115 - stage("flash") {
116 - steps {
117 - sh 'export'
118 - sh 'find /dev/serial'
119 - unstash 'cuav_x7pro_test'
120 - // flash board and watch bootup
121 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cuav_x7pro_test/cuav_x7pro_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
122 - }
123 - }
124 - stage("configure") {
125 - steps {
126 - // configure
127 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
128 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
129 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
130 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
131 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
132 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
133 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
134 - }
135 - }
136 - stage("status") {
137 - steps {
138 - statusFTDI()
139 - }
140 - }
141 - stage("tests") {
142 - steps {
143 - // run tests
144 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
145 - }
146 - }
147 - stage("reset") {
148 - steps {
149 - cleanupFTDI()
150 - }
151 - }
152 - }
153 - } // stage test
154 - }
155 - }
156 -
157 - stage("px4_fmu-v3_test") {
158 - stages {
159 - stage("build px4_fmu-v3_test") {
160 - agent {
161 - docker {
162 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
163 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
164 - }
165 - }
166 - steps {
167 - checkout scm
168 - sh 'export'
169 - sh 'make distclean'
170 - sh 'ccache -s'
171 - sh 'git fetch --tags'
172 - sh 'make px4_fmu-v3_test'
173 - sh 'make sizes'
174 - sh 'ccache -s'
175 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v3_test'
176 - }
177 - post {
178 - always {
179 - sh 'make distclean'
180 - }
181 - }
182 - } // stage build
183 - stage("test") {
184 - agent {
185 - label 'px4_fmu-v3'
186 - }
187 - stages {
188 - stage("flash") {
189 - steps {
190 - sh 'export'
191 - sh 'find /dev/serial'
192 - unstash 'px4_fmu-v3_test'
193 - // flash board and watch bootup
194 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v3_test/px4_fmu-v3_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
195 - }
196 - }
197 - stage("configure") {
198 - steps {
199 - // configure
200 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
201 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard
202 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
203 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
204 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
205 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
206 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
207 - }
208 - }
209 - stage("status") {
210 - steps {
211 - statusFTDI()
212 - }
213 - }
214 - stage("tests") {
215 - steps {
216 - // run tests
217 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
218 - }
219 - }
220 - stage("reset") {
221 - steps {
222 - cleanupFTDI()
223 - }
224 - }
225 - }
226 - } // stage test
227 - }
228 - }
229 -
230 - stage("px4_fmu-v4_test") {
231 - stages {
232 - stage("build px4_fmu-v4_test") {
233 - agent {
234 - docker {
235 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
236 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
237 - }
238 - }
239 - steps {
240 - checkout scm
241 - sh 'export'
242 - sh 'make distclean'
243 - sh 'ccache -s'
244 - sh 'git fetch --tags'
245 - sh 'make px4_fmu-v4_test'
246 - sh 'make sizes'
247 - sh 'ccache -s'
248 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v4_test'
249 - }
250 - post {
251 - always {
252 - sh 'make distclean'
253 - }
254 - }
255 - } // stage build
256 - stage("test") {
257 - agent {
258 - label 'px4_fmu-v4'
259 - }
260 - stages {
261 - stage("flash") {
262 - steps {
263 - sh 'export'
264 - sh 'find /dev/serial'
265 - unstash 'px4_fmu-v4_test'
266 - // flash board and watch bootup
267 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4_test/px4_fmu-v4_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
268 - }
269 - }
270 - stage("configure") {
271 - steps {
272 - // configure
273 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
274 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
275 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
276 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
277 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
278 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
279 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
280 - }
281 - }
282 - stage("status") {
283 - steps {
284 - statusFTDI()
285 - }
286 - }
287 - stage("tests") {
288 - steps {
289 - // run tests
290 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
291 - }
292 - }
293 - stage("reset") {
294 - steps {
295 - cleanupFTDI()
296 - }
297 - }
298 - }
299 - } // stage test
300 - }
301 - }
302 -
303 - stage("px4_fmu-v4pro_test") {
304 - stages {
305 - stage("build px4_fmu-v4pro_test") {
306 - agent {
307 - docker {
308 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
309 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
310 - }
311 - }
312 - steps {
313 - checkout scm
314 - sh 'export'
315 - sh 'make distclean'
316 - sh 'ccache -s'
317 - sh 'git fetch --tags'
318 - sh 'make px4_fmu-v4pro_test'
319 - sh 'make sizes'
320 - sh 'ccache -s'
321 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v4pro_test'
322 - }
323 - post {
324 - always {
325 - sh 'make distclean'
326 - }
327 - }
328 - } // stage build
329 - stage("test") {
330 - agent {
331 - label 'px4_fmu-v4pro'
332 - }
333 - stages {
334 - stage("flash") {
335 - steps {
336 - sh 'export'
337 - sh 'find /dev/serial'
338 - unstash 'px4_fmu-v4pro_test'
339 - // flash board and watch bootup
340 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4pro_test/px4_fmu-v4pro_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
341 - }
342 - }
343 - stage("configure") {
344 - steps {
345 - // configure
346 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
347 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard
348 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
349 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
350 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
351 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
352 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
353 - }
354 - }
355 - stage("status") {
356 - steps {
357 - statusFTDI()
358 - }
359 - }
360 - stage("tests") {
361 - steps {
362 - // run tests
363 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
364 - }
365 - }
366 - stage("reset") {
367 - steps {
368 - cleanupFTDI()
369 - }
370 - }
371 - }
372 - } // stage test
373 - }
374 - }
375 -
376 - stage("px4_fmu-v5_test") {
377 - stages {
378 - stage("build px4_fmu-v5_test") {
379 - agent {
380 - docker {
381 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
382 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
383 - }
384 - }
385 - steps {
386 - checkout scm
387 - sh 'export'
388 - sh 'make distclean'
389 - sh 'ccache -s'
390 - sh 'git fetch --tags'
391 - sh 'make px4_fmu-v5_test'
392 - sh 'make sizes'
393 - sh 'ccache -s'
394 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v5_test'
395 - }
396 - post {
397 - always {
398 - sh 'make distclean'
399 - }
400 - }
401 - } // stage build
402 - stage("test") {
403 - agent {
404 - label 'px4_fmu-v5'
405 - }
406 - stages {
407 - stage("flash") {
408 - steps {
409 - sh 'export'
410 - sh 'find /dev/serial'
411 - unstash 'px4_fmu-v5_test'
412 - // flash board and watch bootup
413 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_test/px4_fmu-v5_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
414 - }
415 - }
416 - stage("configure") {
417 - steps {
418 - // configure
419 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
420 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
421 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
422 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
423 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
424 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
425 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
426 - }
427 - }
428 - stage("status") {
429 - steps {
430 - statusFTDI()
431 - }
432 - }
433 - stage("tests") {
434 - steps {
435 - // run tests
436 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
437 - }
438 - }
439 - stage("reset") {
440 - steps {
441 - cleanupFTDI()
442 - }
443 - }
444 - }
445 - } // stage test
446 - }
447 - }
448 -
449 - stage("px4_fmu-v5_debug") {
450 - stages {
451 - stage("build px4_fmu-v5_debug") {
452 - agent {
453 - docker {
454 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
455 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
456 - }
457 - }
458 - steps {
459 - checkout scm
460 - sh 'export'
461 - sh 'make distclean'
462 - sh 'ccache -s'
463 - sh 'git fetch --tags'
464 - sh 'make px4_fmu-v5_debug'
465 - sh 'make sizes'
466 - sh 'ccache -s'
467 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v5_debug'
468 - }
469 - post {
470 - always {
471 - sh 'make distclean'
472 - }
473 - }
474 - } // stage build
475 - stage("test") {
476 - agent {
477 - label 'px4_fmu-v5'
478 - }
479 - stages {
480 - stage("flash") {
481 - steps {
482 - sh 'export'
483 - sh 'find /dev/serial'
484 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001" || true' // generic multicopter
485 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250" || true'
486 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save" || true'
487 - unstash 'px4_fmu-v5_debug'
488 - // flash board and watch bootup
489 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_debug/px4_fmu-v5_debug.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
490 - }
491 - }
492 - stage("configure") {
493 - steps {
494 - // configure
495 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
496 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250"' // limit cpu usage
497 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
498 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
499 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
500 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
501 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
502 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
503 - }
504 - }
505 - stage("status") {
506 - steps {
507 - statusFTDI()
508 - }
509 - }
510 - stage("tests") {
511 - steps {
512 - // run tests
513 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
514 - }
515 - }
516 - stage("reset") {
517 - steps {
518 - cleanupFTDI()
519 - }
520 - }
521 - }
522 - } // stage test
523 - }
524 - }
525 -
526 - stage("px4_fmu-v5_optimized") {
527 - stages {
528 - stage("build px4_fmu-v5_optimized") {
529 - agent {
530 - docker {
531 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
532 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
533 - }
534 - }
535 - steps {
536 - checkout scm
537 - sh 'export'
538 - sh 'make distclean'
539 - sh 'ccache -s'
540 - sh 'git fetch --tags'
541 - sh 'make px4_fmu-v5_optimized'
542 - sh 'make sizes'
543 - sh 'ccache -s'
544 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v5_optimized'
545 - }
546 - post {
547 - always {
548 - sh 'make distclean'
549 - }
550 - }
551 - } // stage build
552 - stage("test") {
553 - agent {
554 - label 'px4_fmu-v5'
555 - }
556 - stages {
557 - stage("flash") {
558 - steps {
559 - sh 'export'
560 - sh 'find /dev/serial'
561 - unstash 'px4_fmu-v5_optimized'
562 - // flash board and watch bootup
563 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_optimized/px4_fmu-v5_optimized.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
564 - }
565 - }
566 - stage("configure") {
567 - steps {
568 - // configure
569 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
570 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
571 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
572 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
573 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
574 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
575 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
576 - }
577 - }
578 - stage("status") {
579 - steps {
580 - statusFTDI()
581 - }
582 - }
583 - stage("tests") {
584 - steps {
585 - // run tests
586 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
587 - }
588 - }
589 - stage("reset") {
590 - steps {
591 - cleanupFTDI()
592 - }
593 - }
594 - }
595 - } // stage test
596 - }
597 - }
598 -
599 - stage("px4_fmu-v5_stackcheck") {
600 - stages {
601 - stage("build px4_fmu-v5_stackcheck") {
602 - agent {
603 - docker {
604 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
605 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
606 - }
607 - }
608 - steps {
609 - checkout scm
610 - sh 'export'
611 - sh 'make distclean'
612 - sh 'ccache -s'
613 - sh 'git fetch --tags'
614 - sh 'make px4_fmu-v5_stackcheck'
615 - sh 'make sizes'
616 - sh 'ccache -s'
617 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v5_stackcheck'
618 - }
619 - post {
620 - always {
621 - sh 'make distclean'
622 - }
623 - }
624 - } // stage build
625 - stage("test") {
626 - agent {
627 - label 'px4_fmu-v5'
628 - }
629 - stages {
630 - stage("flash") {
631 - steps {
632 - sh 'export'
633 - sh 'find /dev/serial'
634 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001" || true' // generic multicopter
635 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250" || true'
636 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save" || true'
637 - unstash 'px4_fmu-v5_stackcheck'
638 - // flash board and watch bootup
639 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_stackcheck/px4_fmu-v5_stackcheck.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
640 - }
641 - }
642 - stage("configure") {
643 - steps {
644 - // configure
645 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
646 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250"' // limit cpu usage
647 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_0_CONFIG 0"' // limit cpu usage
648 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
649 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
650 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
651 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
652 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
653 - }
654 - }
655 - stage("status") {
656 - steps {
657 - statusFTDI()
658 - }
659 - }
660 - stage("tests") {
661 - steps {
662 - // run tests
663 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
664 - }
665 - }
666 - stage("reset") {
667 - steps {
668 - cleanupFTDI()
669 - }
670 - }
671 - }
672 - } // stage test
673 - }
674 - }
675 -
676 - stage("modalai_fc-v1_test") {
677 - stages {
678 - stage("build modalai_fc-v1_test") {
679 - agent {
680 - docker {
681 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
682 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
683 - }
684 - }
685 - steps {
686 - checkout scm
687 - sh 'export'
688 - sh 'make distclean'
689 - sh 'ccache -s'
690 - sh 'git fetch --tags'
691 - sh 'make modalai_fc-v1_test'
692 - sh 'make sizes'
693 - sh 'ccache -s'
694 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'modalai_fc-v1_test'
695 - }
696 - post {
697 - always {
698 - sh 'make distclean'
699 - }
700 - }
701 - } // stage build
702 - stage("test") {
703 - agent {
704 - label 'modalai_fc-v1'
705 - }
706 - stages {
707 - stage("flash") {
708 - steps {
709 - sh 'export'
710 - sh 'find /dev/serial'
711 - unstash 'modalai_fc-v1_test'
712 - // flash board and watch bootup
713 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/modalai_fc-v1_test/modalai_fc-v1_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
714 - }
715 - }
716 - stage("configure") {
717 - steps {
718 - // configure
719 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
720 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
721 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
722 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
723 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
724 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
725 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
726 - }
727 - }
728 - stage("status") {
729 - steps {
730 - statusFTDI()
731 - }
732 - }
733 - stage("tests") {
734 - steps {
735 - // run tests
736 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
737 - }
738 - }
739 - stage("reset") {
740 - steps {
741 - cleanupFTDI()
742 - }
743 - }
744 - }
745 - } // stage test
746 - }
747 - }
748 -
749 - stage("holybro_durandal-v1_test") {
750 - stages {
751 - stage("build holybro_durandal-v1_test") {
752 - agent {
753 - docker {
754 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
755 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
756 - }
757 - }
758 - steps {
759 - checkout scm
760 - sh 'export'
761 - sh 'make distclean'
762 - sh 'ccache -s'
763 - sh 'git fetch --tags'
764 - sh 'make holybro_durandal-v1_test'
765 - sh 'make sizes'
766 - sh 'ccache -s'
767 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'holybro_durandal-v1_test'
768 - }
769 - post {
770 - always {
771 - sh 'make distclean'
772 - }
773 - }
774 - } // stage build
775 - stage("test") {
776 - agent {
777 - label 'holybro_durandal-v1'
778 - }
779 - stages {
780 - stage("flash") {
781 - steps {
782 - sh 'export'
783 - sh 'find /dev/serial'
784 - unstash 'holybro_durandal-v1_test'
785 - // flash board and watch bootup
786 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/holybro_durandal-v1_test/holybro_durandal-v1_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
787 - }
788 - }
789 - stage("configure") {
790 - steps {
791 - // configure
792 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
793 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
794 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
795 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
796 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
797 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
798 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
799 - }
800 - }
801 - stage("status") {
802 - steps {
803 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "dshot status"'
804 - statusFTDI()
805 - }
806 - }
807 - stage("tests") {
808 - steps {
809 - // run tests
810 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
811 - }
812 - }
813 - stage("reset") {
814 - steps {
815 - cleanupFTDI()
816 - }
817 - }
818 - }
819 - } // stage test
820 - }
821 - }
822 -
823 - stage("nxp_fmuk66-v3_test") {
824 - stages {
825 - stage("build nxp_fmuk66-v3_test") {
826 - agent {
827 - docker {
828 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
829 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
830 - }
831 - }
832 - steps {
833 - checkout scm
834 - sh 'export'
835 - sh 'make distclean'
836 - sh 'ccache -s'
837 - sh 'git fetch --tags'
838 - sh 'make nxp_fmuk66-v3_test'
839 - sh 'make sizes'
840 - sh 'ccache -s'
841 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'nxp_fmuk66-v3_test'
842 - }
843 - post {
844 - always {
845 - sh 'make distclean'
846 - }
847 - }
848 - } // stage build
849 - stage("test") {
850 - agent {
851 - label 'nxp_fmuk66-v3'
852 - }
853 - stages {
854 - stage("flash") {
855 - steps {
856 - sh 'export'
857 - sh 'find /dev/serial'
858 - unstash 'nxp_fmuk66-v3_test'
859 - // flash board and watch bootup
860 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/nxp_fmuk66-v3_test/nxp_fmuk66-v3_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
861 - }
862 - }
863 - stage("configure") {
864 - steps {
865 - // configure
866 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
867 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
868 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
869 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
870 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
871 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
872 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
873 - }
874 - }
875 - stage("status") {
876 - steps {
877 - statusFTDI()
878 - }
879 - }
880 - stage("tests") {
881 - steps {
882 - // run tests
883 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*` || true' // allow failure due to intermittent serial console issues
884 - }
885 - }
886 - stage("reset") {
887 - steps {
888 - cleanupFTDI()
889 - }
890 - }
891 - }
892 - } // stage test
893 - }
894 - }
895 -
896 - } // parallel
897 - } // stage Hardware Test
898 - } // stages
899 - environment {
900 - CCACHE_DIR = '/tmp/ccache'
901 - CI = true
902 - }
903 - options {
904 - buildDiscarder(logRotator(numToKeepStr: '30', artifactDaysToKeepStr: '60'))
905 - timeout(time: 120, unit: 'MINUTES')
906 - skipDefaultCheckout()
907 - }
908 -}
909 -
910 -void statusFTDI() {
911 - // run logger
912 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger on"'
913 - // status commands
914 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "free"'
915 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "work_queue status"'
916 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "board_adc test"'
917 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander check"'
918 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander status"'
919 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander calibrate accel quick; sleep 2; param show CAL_ACC*"'
920 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander calibrate gyro; sleep 2; param show CAL_GYRO*"'
921 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander calibrate level; sleep 2; param show SENS_BOARD*"'
922 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander calibrate mag quick; sleep 2; param show CAL_MAG*"'
923 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "dataman status"'
924 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "df"'
925 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "dmesg"'
926 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "gps status"'
927 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "gyro_calibration status; param show CAL_GYRO*"'
928 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener adc_report"'
929 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener battery_status"'
930 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener cpuload"'
931 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_attitude"'
932 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_event_flags"'
933 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_local_position"'
934 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_selector_status"'
935 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_sensor_bias"'
936 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_status"'
937 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_status_flags"'
938 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener logger_status"'
939 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener parameter_update"'
940 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener px4io_status"'
941 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_accel"'
942 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_accel_fifo"'
943 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_baro"'
944 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_combined"'
945 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gps"'
946 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gyro"'
947 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gyro_fifo"'
948 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_mag"'
949 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_selection"'
950 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensors_status_imu"'
951 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener system_power"'
952 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener telemetry_status"'
953 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_air_data"'
954 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_angular_acceleration"'
955 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_angular_velocity"'
956 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_attitude"'
957 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_gps_position"'
958 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_imu"'
959 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_imu_status"'
960 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_local_position"'
961 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_magnetometer"'
962 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_status"'
963 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_status_flags"'
964 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger status"'
965 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /"'
966 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /dev"'
967 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /etc"'
968 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /obj"'
969 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /proc"'
970 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "cat /proc/meminfo"'
971 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "cat /proc/uptime"'
972 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mavlink status streams"'
973 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mavlink status"'
974 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mount"'
975 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mtd status"'
976 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
977 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
978 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "perf latency"'
979 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "perf"'
980 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ps"'
981 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "pwm info -d /dev/pwm_output0"'
982 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "pwm info -d /dev/pwm_output1"'
983 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "pwm_out status"'
984 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io status"'
985 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sd_bench -r 2"'
986 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sensors status"'
987 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener cpuload; top once; listener cpuload"'
988 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb status"'
989 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb top -1 -a"'
990 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ver all"'
991 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "work_queue status"'
992 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "gyro_calibration status; param show CAL_GYRO*"'
993 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ekf2 status"'
994 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "free"'
995 - // stop logger
996 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger off"'
997 -}
998 -
999 -void cleanupFTDI() {
1000 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander stop"'
1001 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mavlink stop-all"'
1002 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "navigator stop"'
1003 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "dataman stop"'
1004 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger off"'
1005 -
1006 - // wipe sdcard
1007 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "umount /fs/microsd"'
1008 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mkfatfs /dev/mmcsd0"'
1009 -
1010 - // drop any uncommited hardfaults
1011 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "hardfault_log rearm"'
1012 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "hardfault_log reset"'
1013 -
1014 - // erase mtd
1015 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mtd readtest"'
1016 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mtd rwtest"'
1017 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mtd erase"'
1018 -
1019 - // disable buzzer and cleanup storage
1020 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param reset_all"'
1021 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"'
1022 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SDLOG_DIRS_MAX 1"'
1023 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
1024 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
1025 -
1026 - // reboot
1027 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true'
1028 -}
1 ----
2 -Checks: '*,
3 - -android*,
4 - -bugprone-integer-division,
5 - -cert-dcl50-cpp,
6 - -cert-env33-c,
7 - -cert-err34-c,
8 - -cert-err58-cpp,
9 - -cert-msc30-c,
10 - -cert-msc50-cpp,
11 - -clang-analyzer-core.CallAndMessage,
12 - -clang-analyzer-core.NullDereference,
13 - -clang-analyzer-core.UndefinedBinaryOperatorResult,
14 - -clang-analyzer-core.uninitialized.Assign,
15 - -clang-analyzer-core.VLASize,
16 - -clang-analyzer-cplusplus.NewDelete,
17 - -clang-analyzer-cplusplus.NewDeleteLeaks,
18 - -clang-analyzer-deadcode.DeadStores,
19 - -clang-analyzer-optin.cplusplus.VirtualCall,
20 - -clang-analyzer-optin.performance.Padding,
21 - -clang-analyzer-security.insecureAPI.strcpy,
22 - -clang-analyzer-unix.API,
23 - -clang-analyzer-unix.cstring.BadSizeArg,
24 - -clang-analyzer-unix.Malloc,
25 - -clang-analyzer-unix.MallocSizeof,
26 - -cppcoreguidelines-c-copy-assignment-signature,
27 - -cppcoreguidelines-interfaces-global-init,
28 - -cppcoreguidelines-no-malloc,
29 - -cppcoreguidelines-owning-memory,
30 - -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
31 - -cppcoreguidelines-pro-bounds-constant-array-index,
32 - -cppcoreguidelines-pro-bounds-pointer-arithmetic,
33 - -cppcoreguidelines-pro-type-const-cast,
34 - -cppcoreguidelines-pro-type-cstyle-cast,
35 - -cppcoreguidelines-pro-type-member-init,
36 - -cppcoreguidelines-pro-type-reinterpret-cast,
37 - -cppcoreguidelines-pro-type-union-access,
38 - -cppcoreguidelines-pro-type-vararg,
39 - -cppcoreguidelines-special-member-functions,
40 - -fuchsia-default-arguments,
41 - -fuchsia-overloaded-operator,
42 - -google-build-using-namespace,
43 - -google-explicit-constructor,
44 - -google-global-names-in-headers,
45 - -google-readability-casting,
46 - -google-readability-function-size,
47 - -google-readability-namespace-comments,
48 - -google-readability-todo,
49 - -google-runtime-int,
50 - -google-runtime-references,
51 - -hicpp-deprecated-headers,
52 - -hicpp-explicit-conversions,
53 - -hicpp-function-size,
54 - -hicpp-member-init,
55 - -hicpp-no-array-decay,
56 - -hicpp-no-assembler,
57 - -hicpp-no-malloc,
58 - -hicpp-signed-bitwise,
59 - -hicpp-special-member-functions,
60 - -hicpp-use-auto,
61 - -hicpp-use-equals-default,
62 - -hicpp-use-equals-delete,
63 - -hicpp-use-override,
64 - -hicpp-vararg,
65 - -llvm-header-guard,
66 - -llvm-include-order,
67 - -llvm-namespace-comment,
68 - -misc-incorrect-roundings,
69 - -misc-macro-parentheses,
70 - -misc-misplaced-widening-cast,
71 - -misc-redundant-expression,
72 - -misc-unconventional-assign-operator,
73 - -misc-unused-parameters,
74 - -modernize-deprecated-headers,
75 - -modernize-loop-convert,
76 - -modernize-pass-by-value,
77 - -modernize-return-braced-init-list,
78 - -modernize-use-auto,
79 - -modernize-use-bool-literals,
80 - -modernize-use-default-member-init,
81 - -modernize-use-equals-default,
82 - -modernize-use-equals-delete,
83 - -modernize-use-override,
84 - -modernize-use-using,
85 - -performance-inefficient-string-concatenation,
86 - -readability-avoid-const-params-in-decls,
87 - -readability-container-size-empty,
88 - -readability-else-after-return,
89 - -readability-function-size,
90 - -readability-implicit-bool-cast,
91 - -readability-implicit-bool-conversion,
92 - -readability-inconsistent-declaration-parameter-name,
93 - -readability-named-parameter,
94 - -readability-non-const-parameter,
95 - -readability-redundant-declaration,
96 - -readability-static-accessed-through-instance,
97 - -readability-static-definition-in-anonymous-namespace,
98 - '
99 -WarningsAsErrors: '*'
100 -CheckOptions:
101 - - key: google-readability-function-size.BranchThreshold
102 - value: '600'
103 - - key: google-readability-function-size.LineThreshold
104 - value: '4000'
105 - - key: google-readability-function-size.StatementThreshold
106 - value: '4000'
107 -...
1 -// For format details, see https://aka.ms/vscode-remote/devcontainer.json or this file's README at:
2 -// https://github.com/microsoft/vscode-dev-containers/tree/v0.134.0/containers/cpp
3 -{
4 - "name": "px4-dev-nuttx",
5 - "image": "px4io/px4-dev-nuttx-focal:2021-04-29",
6 -
7 - "runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ],
8 -
9 - // Set *default* container specific settings.json values on container create.
10 - "settings": {
11 - "terminal.integrated.shell.linux": "/bin/bash"
12 - },
13 -
14 - // Add the IDs of extensions you want installed when the container is created.
15 - "extensions": [
16 - "chiehyu.vscode-astyle",
17 - "dan-c-underwood.arm",
18 - "fredericbonnet.cmake-test-adapter",
19 - "github.vscode-pull-request-github",
20 - "marus25.cortex-debug",
21 - "ms-azuretools.vscode-docker",
22 - "ms-iot.vscode-ros",
23 - "ms-python.python",
24 - "ms-vscode.cmake-tools",
25 - "ms-vscode.cpptools",
26 - "ms-vscode.cpptools-extension-pack",
27 - "redhat.vscode-yaml",
28 - "streetsidesoftware.code-spell-checker",
29 - "twxs.cmake",
30 - "uavcan.dsdl",
31 - "wholroyd.jinja",
32 - "zixuanwang.linkerscript"
33 - ],
34 -
35 - "containerUser": "user",
36 - "containerEnv": {
37 - "LOCAL_USER_ID": "${localEnv:UID}"
38 - },
39 -
40 - // Use 'forwardPorts' to make a list of ports inside the container available locally.
41 - "forwardPorts": [14556],
42 -}
1 -* text=auto eol=lf
2 -
3 -*.cmake text eol=lf
4 -*.c text eol=lf
5 -*.cc text eol=lf
6 -*.cpp text eol=lf
7 -*.h text eol=lf
8 -*.hh text eol=lf
9 -*.hpp text eol=lf
10 -*.hxx text eol=lf
11 -*.S text eol=lf
12 -
13 -*.ipynb text eol=lf
14 -*.m text eol=lf
15 -*.mat binary
16 -*.py text eol=lf
17 -
18 -*.java text eol=lf
19 -*.jar binary
20 -*.xml text eol=lf
21 -
22 -# PX4 mixers, msgs, etc
23 -*.bin binary
24 -*.mix text eol=lf
25 -*.msg text eol=lf
26 -*.config text eol=lf
27 -*.sdf text eol=lf
28 -*.uavcan text eol=lf
29 -
30 -# NuttX
31 -Makefile.* text eol=lf
32 -*.defs text eol=lf
33 -*.ld text eol=lf
34 -
35 -*.csv text eol=lf
36 -*.md text eol=lf
37 -*.txt text eol=lf
38 -
39 -# Scripts
40 -*.bash text eol=lf
41 -*.sh text eol=lf
42 -*.zsh text eol=lf
43 -# These are explicitly windows files and should use crlf
44 -*.ps1 text eol=crlf
45 -*.{cmd,[cC][mM][dD]} text eol=crlf
46 -*.{bat,[bB][aA][tT]} text eol=crlf
47 -
48 -# Serialisation
49 -*.json text eol=lf
50 -*.toml text eol=lf
51 -*.xml text eol=lf
52 -*.yaml text eol=lf
53 -*.yml text eol=lf
54 -
55 -# Graphics
56 -*.png binary
57 -*.jpg binary
58 -*.jpeg binary
59 -*.gif binary
60 -*.tif binary
61 -*.tiff binary
62 -*.ico binary
63 -*.pdf binary
64 -# SVG treated as an asset (binary) by default.
65 -*.svg text eol=lf
66 -
67 -# Text files where line endings should be preserved
68 -*.patch -text
69 -
70 -# Archives
71 -*.7z binary
72 -*.gz binary
73 -*.tar binary
74 -*.tgz binary
75 -*.zip binary
76 -
77 -# everything else
78 -.gitattributes text eol=lf
79 -.gitignore text eol=lf
80 -Makefile text eol=lf
1 ----
2 -name: Bug report
3 -about: Create a report to help us improve
4 -
5 ----
6 -
7 -**Describe the bug**
8 -A clear and concise description of the bug.
9 -
10 -**To Reproduce**
11 -Steps to reproduce the behavior:
12 -1. Drone switched on '...'
13 -2. Uploaded mission '....' (attach QGC mission file)
14 -3. Took off '....'
15 -4. See error
16 -
17 -**Expected behavior**
18 -A clear and concise description of what you expected to happen.
19 -
20 -**Log Files and Screenshots**
21 -*Always* provide a link to the flight log file:
22 -- Download the flight log file from the vehicle ([tutorial](https://docs.px4.io/master/en/getting_started/flight_reporting.html)).
23 -- Share the link to a log showing the problem on [PX4 Flight Review](http://logs.px4.io/).
24 -
25 -Add screenshots to help explain your problem.
26 -
27 -**Drone (please complete the following information):**
28 -- Describe the type of drone.
29 -- Photo of the IMU / autopilot setup if possible.
30 -
31 -**Additional context**
32 -Add any other context about the problem here.
1 ----
2 -name: 🚀 Feature Request
3 -about: Suggest an idea for this project
4 -
5 ----
6 -
7 -For general questions please use [PX4 Discuss](http://discuss.px4.io/) or [Slack](http://slack.px4.io/).
8 -
9 -**Describe problem solved by the proposed feature**
10 -A clear and concise description of the problem, if any, this feature will solve. E.g. I'm always frustrated when ...
11 -
12 -**Describe your preferred solution**
13 -A clear and concise description of what you want to happen.
14 -
15 -**Describe possible alternatives**
16 -A clear and concise description of alternative solutions or features you've considered.
17 -
18 -**Additional context**
19 -Add any other context or screenshots for the feature request here.
1 ----
2 -name: ⛔ Support Question
3 -about: See [PX4 Discuss](http://discuss.px4.io/) for questions about using PX4.
4 -
5 ----
6 -
7 -We use GitHub issues only to discuss PX4 bugs and new features. For
8 -questions about using PX4 or related components, please use [PX4 Discuss](http://discuss.px4.io/).
9 -
10 -Thanks!
1 ----
2 -name: ⛔ Documentation Issue
3 -about: See https://github.com/PX4/Devguide for documentation issues
4 -
5 ----
6 -
7 -PX4 has dedicated repositories for developer documentation (https://github.com/PX4/Devguide) and user documentation (https://github.com/PX4/px4_user_guide).
8 -
9 -Thanks!
1 -# Number of days of inactivity before an issue becomes stale
2 -daysUntilStale: 90
3 -# Number of days of inactivity before a stale issue is closed, or `false` to disable
4 -daysUntilClose: false
5 -# Issues with these labels will never be considered stale
6 -exemptLabels:
7 - - pinned
8 -# Label to use when marking an issue as stale
9 -staleLabel: stale
10 -# Comment to post when marking an issue as stale. Set to `false` to disable
11 -markComment: >
12 - This issue has been automatically marked as stale because it has not had
13 - recent activity. Thank you for your contributions.
14 -# Comment to post when closing a stale issue. Set to `false` to disable
15 -closeComment: false
1 -name: Checks
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - strategy:
15 - fail-fast: false
16 - matrix:
17 - check: [
18 - "check_format",
19 - "tests",
20 - "tests_coverage",
21 - "px4_fmu-v2_default stack_check",
22 - "validate_module_configs",
23 - "shellcheck_all",
24 - "NO_NINJA_BUILD=1 px4_fmu-v5_default",
25 - "NO_NINJA_BUILD=1 px4_sitl_default",
26 - "airframe_metadata",
27 - "module_documentation",
28 - "parameters_metadata",
29 - ]
30 - container:
31 - image: px4io/px4-dev-nuttx-focal:2021-04-29
32 - options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
33 - steps:
34 - - uses: actions/checkout@v1
35 - with:
36 - token: ${{ secrets.ACCESS_TOKEN }}
37 -
38 - - name: Prepare ccache timestamp
39 - id: ccache_cache_timestamp
40 - shell: cmake -P {0}
41 - run: |
42 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
43 - message("::set-output name=timestamp::${current_date}")
44 - - name: ccache cache files
45 - uses: actions/cache@v2
46 - with:
47 - path: ~/.ccache
48 - key: tests_${{matrix.ubuntu_release}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
49 - restore-keys: tests_${{matrix.ubuntu_release}}-ccache-
50 - - name: setup ccache
51 - run: |
52 - mkdir -p ~/.ccache
53 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
54 - echo "compression = true" >> ~/.ccache/ccache.conf
55 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
56 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
57 - ccache -s
58 - ccache -z
59 - - name: check environment
60 - run: |
61 - export
62 - ulimit -a
63 - - name: ${{matrix.check}}
64 - run: make ${{matrix.check}}
65 - - name: upload coverage
66 - if: contains(matrix.check, 'coverage')
67 - uses: codecov/codecov-action@v1
68 - with:
69 - token: ${{ secrets.CODECOV_TOKEN }}
70 - flags: unittests
71 - file: coverage/lcov.info
1 -name: Clang Tidy
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - container: px4io/px4-dev-clang:2021-04-29
15 - steps:
16 - - uses: actions/checkout@v1
17 - with:
18 - token: ${{secrets.ACCESS_TOKEN}}
19 -
20 - - name: Prepare ccache timestamp
21 - id: ccache_cache_timestamp
22 - shell: cmake -P {0}
23 - run: |
24 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
25 - message("::set-output name=timestamp::${current_date}")
26 - - name: ccache cache files
27 - uses: actions/cache@v2
28 - with:
29 - path: ~/.ccache
30 - key: clang-tidy-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
31 - restore-keys: clang-tidy-ccache-
32 - - name: setup ccache
33 - run: |
34 - mkdir -p ~/.ccache
35 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
36 - echo "compression = true" >> ~/.ccache/ccache.conf
37 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
38 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
39 - ccache -s
40 - ccache -z
41 -
42 - - name: make clang-tidy-quiet
43 - run: |
44 - ccache -z
45 - make clang-tidy-quiet
46 - ccache -s
1 -name: Linux Targets
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - container: px4io/px4-dev-armhf:2021-04-29
15 - strategy:
16 - matrix:
17 - config: [
18 - beaglebone_blue_default,
19 - emlid_navio2_default,
20 - px4_raspberrypi_default,
21 - scumaker_pilotpi_default,
22 - ]
23 - steps:
24 - - uses: actions/checkout@v1
25 - with:
26 - token: ${{secrets.ACCESS_TOKEN}}
27 -
28 - - name: Prepare ccache timestamp
29 - id: ccache_cache_timestamp
30 - shell: cmake -P {0}
31 - run: |
32 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
33 - message("::set-output name=timestamp::${current_date}")
34 - - name: ccache cache files
35 - uses: actions/cache@v2
36 - with:
37 - path: ~/.ccache
38 - key: ${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
39 - restore-keys: ${{matrix.config}}-ccache-
40 - - name: setup ccache
41 - run: |
42 - mkdir -p ~/.ccache
43 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
44 - echo "compression = true" >> ~/.ccache/ccache.conf
45 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
46 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
47 - ccache -s
48 - ccache -z
49 -
50 - - name: make ${{matrix.config}}
51 - run: make ${{matrix.config}}
52 - - name: ccache post-run
53 - run: ccache -s
1 -name: Linux ARM64 Targets
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - container: px4io/px4-dev-aarch64:2021-04-29
15 - strategy:
16 - matrix:
17 - config: [
18 - scumaker_pilotpi_arm64,
19 - ]
20 - steps:
21 - - uses: actions/checkout@v1
22 - with:
23 - token: ${{secrets.ACCESS_TOKEN}}
24 -
25 - - name: Prepare ccache timestamp
26 - id: ccache_cache_timestamp
27 - shell: cmake -P {0}
28 - run: |
29 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
30 - message("::set-output name=timestamp::${current_date}")
31 - - name: ccache cache files
32 - uses: actions/cache@v2
33 - with:
34 - path: ~/.ccache
35 - key: ${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
36 - restore-keys: ${{matrix.config}}-ccache-
37 - - name: setup ccache
38 - run: |
39 - mkdir -p ~/.ccache
40 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
41 - echo "compression = true" >> ~/.ccache/ccache.conf
42 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
43 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
44 - ccache -s
45 - ccache -z
46 -
47 - - name: make ${{matrix.config}}
48 - run: make ${{matrix.config}}
49 - - name: ccache post-run
50 - run: ccache -s
1 -name: MacOS build
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: macos-10.15
14 - strategy:
15 - matrix:
16 - config: [
17 - px4_fmu-v5_default,
18 - px4_sitl
19 - #tests, # includes px4_sitl
20 - ]
21 - steps:
22 - - uses: actions/checkout@v1
23 - with:
24 - token: ${{secrets.ACCESS_TOKEN}}
25 -
26 - - name: setup
27 - run: ./Tools/setup/macos.sh; ./Tools/setup/macos.sh
28 -
29 - - name: Prepare ccache timestamp
30 - id: ccache_cache_timestamp
31 - shell: cmake -P {0}
32 - run: |
33 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
34 - message("::set-output name=timestamp::${current_date}")
35 - - name: ccache cache files
36 - uses: actions/cache@v2
37 - with:
38 - path: ~/.ccache
39 - key: macos_${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
40 - restore-keys: macos_${{matrix.config}}-ccache-
41 - - name: setup ccache
42 - run: |
43 - mkdir -p ~/.ccache
44 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
45 - echo "compression = true" >> ~/.ccache/ccache.conf
46 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
47 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
48 - ccache -s
49 - ccache -z
50 -
51 - - name: make ${{matrix.config}}
52 - run: |
53 - ccache -z
54 - make ${{matrix.config}}
55 - ccache -s
1 -name: Nuttx Targets
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - container: px4io/px4-dev-nuttx-focal:2021-04-29
15 - strategy:
16 - matrix:
17 - config: [
18 - airmind_mindpx-v2_default,
19 - ark_can-flow_canbootloader,
20 - ark_can-flow_debug,
21 - ark_can-flow_default,
22 - ark_can-gps_canbootloader,
23 - ark_can-gps_debug,
24 - ark_can-gps_default,
25 - av_x-v1_default,
26 - bitcraze_crazyflie21_default,
27 - bitcraze_crazyflie_default,
28 - cuav_can-gps-v1_canbootloader,
29 - cuav_can-gps-v1_debug,
30 - cuav_can-gps-v1_default,
31 - cuav_nora_default,
32 - cuav_x7pro_default,
33 - cubepilot_cubeorange_default,
34 - cubepilot_cubeorange_test,
35 - cubepilot_cubeyellow_default,
36 - cubepilot_cubeyellow_test,
37 - cubepilot_io-v2_default,
38 - freefly_can-rtk-gps_canbootloader,
39 - freefly_can-rtk-gps_default,
40 - holybro_can-gps-v1_canbootloader,
41 - holybro_can-gps-v1_debug,
42 - holybro_can-gps-v1_default,
43 - holybro_durandal-v1_default,
44 - holybro_kakutef7_default,
45 - holybro_pix32v5_default,
46 - modalai_fc-v1_default,
47 - modalai_fc-v1_rtps,
48 - modalai_fc-v2_default,
49 - mro_ctrl-zero-f7-oem_default,
50 - mro_ctrl-zero-f7_default,
51 - mro_ctrl-zero-h7-oem_default,
52 - mro_ctrl-zero-h7_default,
53 - mro_pixracerpro_default,
54 - mro_x21-777_default,
55 - mro_x21_default,
56 - nxp_fmuk66-e_default,
57 - nxp_fmuk66-e_rtps,
58 - nxp_fmuk66-e_socketcan,
59 - nxp_fmuk66-v3_default,
60 - nxp_fmuk66-v3_rtps,
61 - nxp_fmuk66-v3_socketcan,
62 - nxp_fmurt1062-v1_default,
63 - nxp_ucans32k146_canbootloader,
64 - nxp_ucans32k146_default,
65 - omnibus_f4sd_default,
66 - px4_fmu-v2_default,
67 - px4_fmu-v2_fixedwing,
68 - px4_fmu-v2_multicopter,
69 - px4_fmu-v2_rover,
70 - px4_fmu-v3_default,
71 - px4_fmu-v4_cannode,
72 - px4_fmu-v4_default,
73 - px4_fmu-v4pro_default,
74 - px4_fmu-v5_ctrlalloc,
75 - px4_fmu-v5_debug,
76 - px4_fmu-v5_default,
77 - px4_fmu-v5_fixedwing,
78 - px4_fmu-v5_multicopter,
79 - px4_fmu-v5_optimized,
80 - px4_fmu-v5_rover,
81 - px4_fmu-v5_rtps,
82 - px4_fmu-v5_stackcheck,
83 - px4_fmu-v5_uavcanv0periph,
84 - px4_fmu-v5_uavcanv1,
85 - px4_fmu-v5x_base_phy_DP83848C,
86 - px4_fmu-v5x_default,
87 - px4_fmu-v6u_default,
88 - px4_fmu-v6x_default,
89 - px4_io-v2_default,
90 - spracing_h7extreme_default,
91 - uvify_core_default
92 - ]
93 - steps:
94 - - uses: actions/checkout@v1
95 - with:
96 - token: ${{secrets.ACCESS_TOKEN}}
97 -
98 - - name: Prepare ccache timestamp
99 - id: ccache_cache_timestamp
100 - shell: cmake -P {0}
101 - run: |
102 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
103 - message("::set-output name=timestamp::${current_date}")
104 - - name: ccache cache files
105 - uses: actions/cache@v2
106 - with:
107 - path: ~/.ccache
108 - key: ${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
109 - restore-keys: ${{matrix.config}}-ccache-
110 - - name: setup ccache
111 - run: |
112 - mkdir -p ~/.ccache
113 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
114 - echo "compression = true" >> ~/.ccache/ccache.conf
115 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
116 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
117 - ccache -s
118 - ccache -z
119 -
120 - - name: make ${{matrix.config}}
121 - run: make ${{matrix.config}}
122 - - name: make ${{matrix.config}} bloaty_compileunits
123 - run: make ${{matrix.config}} bloaty_compileunits || true
124 - - name: make ${{matrix.config}} bloaty_inlines
125 - run: make ${{matrix.config}} bloaty_inlines || true
126 - - name: make ${{matrix.config}} bloaty_segments
127 - run: make ${{matrix.config}} bloaty_segments || true
128 - - name: make ${{matrix.config}} bloaty_symbols
129 - run: make ${{matrix.config}} bloaty_symbols || true
130 - - name: make ${{matrix.config}} bloaty_templates
131 - run: make ${{matrix.config}} bloaty_templates || true
132 - - name: make ${{matrix.config}} bloaty_ram
133 - run: make ${{matrix.config}} bloaty_ram || true
134 - - name: make ${{matrix.config}} bloaty_compare_master
135 - run: make ${{matrix.config}} bloaty_compare_master || true
136 - - name: ccache post-run
137 - run: ccache -s
138 -
139 - - name: Upload px4 package
140 - uses: actions/upload-artifact@v1
141 - with:
142 - name: px4_package_${{matrix.config}}
143 - path: build/${{matrix.config}}/${{matrix.config}}.px4
1 -name: NuttX UAVCAN firmware
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - container: px4io/px4-dev-nuttx-focal:2021-04-29
15 - strategy:
16 - matrix:
17 - config: [
18 - ark_can-flow_default,
19 - cuav_can-gps-v1_default,
20 - freefly_can-rtk-gps_default,
21 - holybro_can-gps-v1_default,
22 - #nxp_ucans32k146_default,
23 - px4_fmu-v4_cannode
24 - ]
25 - steps:
26 - - uses: actions/checkout@v1
27 - with:
28 - token: ${{secrets.ACCESS_TOKEN}}
29 -
30 - - name: Prepare ccache timestamp
31 - id: ccache_cache_timestamp
32 - shell: cmake -P {0}
33 - run: |
34 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
35 - message("::set-output name=timestamp::${current_date}")
36 - - name: ccache cache files
37 - uses: actions/cache@v2
38 - with:
39 - path: ~/.ccache
40 - key: ${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
41 - restore-keys: ${{matrix.config}}-ccache-
42 - - name: setup ccache
43 - run: |
44 - mkdir -p ~/.ccache
45 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
46 - echo "compression = true" >> ~/.ccache/ccache.conf
47 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
48 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
49 - ccache -s
50 - ccache -z
51 -
52 - - name: make ${{matrix.config}}
53 - run: make ${{matrix.config}}
54 -
55 - - name: ccache post-run
56 - run: ccache -s
57 -
58 - - name: Upload px4 package
59 - uses: actions/upload-artifact@v2
60 - with:
61 - name: px4_cannode_${{matrix.config}}
62 - path: build/${{matrix.config}}/*.uavcan.bin
1 -name: Deploy metadata for all targets
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - - 'release/*'
8 - - 'pr-metadata-test'
9 -
10 -jobs:
11 - enumerate_targets:
12 - runs-on: ubuntu-latest
13 - outputs:
14 - matrix: ${{ steps.set-matrix.outputs.matrix }}
15 - steps:
16 - - uses: actions/checkout@v1
17 - with:
18 - token: ${{secrets.ACCESS_TOKEN}}
19 - - id: set-matrix
20 - run: echo "::set-output name=matrix::$(./Tools/generate_board_targets_json.py)"
21 - build:
22 - runs-on: ubuntu-latest
23 - needs: enumerate_targets
24 - strategy:
25 - matrix: ${{fromJson(needs.enumerate_targets.outputs.matrix)}}
26 - container: px4io/px4-dev-${{ matrix.container }}:2021-04-29
27 - steps:
28 - - uses: actions/checkout@v1
29 - with:
30 - token: ${{secrets.ACCESS_TOKEN}}
31 -
32 - - name: Prepare ccache timestamp
33 - id: ccache_cache_timestamp
34 - shell: cmake -P {0}
35 - run: |
36 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
37 - message("::set-output name=timestamp::${current_date}")
38 - - name: ccache cache files
39 - uses: actions/cache@v2
40 - with:
41 - path: ~/.ccache
42 - key: ${{matrix.target}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
43 - restore-keys: ${{matrix.target}}-ccache-
44 - - name: setup ccache
45 - run: |
46 - mkdir -p ~/.ccache
47 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
48 - echo "compression = true" >> ~/.ccache/ccache.conf
49 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
50 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
51 - ccache -s
52 - ccache -z
53 -
54 - - name: make ${{matrix.target}}
55 - run: make ${{matrix.target}}
56 - - name: ccache post-run
57 - run: ccache -s
58 -
59 - - name: parameter metadata
60 - run: |
61 - make ${{matrix.target}} ver_gen
62 - ./src/lib/version/get_git_tag_or_branch_version.sh build/${{ matrix.target }} >> $GITHUB_ENV
63 - cd build/${{ matrix.target }}
64 - mkdir _metadata || true
65 - cp parameters.* _metadata
66 -
67 - - uses: jakejarvis/s3-sync-action@master
68 - with:
69 - args: --acl public-read
70 - env:
71 - AWS_S3_BUCKET: 'px4-travis'
72 - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
73 - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
74 - AWS_REGION: 'us-west-1'
75 - SOURCE_DIR: 'build/${{ matrix.target }}/_metadata/'
76 - DEST_DIR: 'Firmware/${{ env.version }}/${{ matrix.target }}/'
77 -
1 -name: MAVROS Mission Tests
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - strategy:
15 - fail-fast: false
16 - matrix:
17 - config:
18 - - {vehicle: "iris", mission: "MC_mission_box", build_type: "RelWithDebInfo"}
19 - - {vehicle: "rover", mission: "rover_mission_1", build_type: "RelWithDebInfo"}
20 - #- {vehicle: "plane", mission: "FW_mission_1", build_type: "RelWithDebInfo"}
21 - #- {vehicle: "plane_catapult",mission: "FW_mission_1", build_type: "RelWithDebInfo"}
22 - #- {vehicle: "standard_vtol", mission: "VTOL_mission_1", build_type: "Coverage"}
23 - #- {vehicle: "standard_vtol", mission: "VTOL_mission_1", build_type: "AddressSanitizer"}
24 - #- {vehicle: "tailsitter", mission: "VTOL_mission_1", build_type: "RelWithDebInfo"}
25 - #- {vehicle: "tiltrotor", mission: "VTOL_mission_1", build_type: "RelWithDebInfo"}
26 -
27 - container:
28 - image: px4io/px4-dev-ros-melodic:2021-04-29
29 - options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
30 - steps:
31 - - uses: actions/checkout@v1
32 - with:
33 - token: ${{ secrets.ACCESS_TOKEN }}
34 -
35 - - name: Prepare ccache timestamp
36 - id: ccache_cache_timestamp
37 - shell: cmake -P {0}
38 - run: |
39 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
40 - message("::set-output name=timestamp::${current_date}")
41 - - name: ccache cache files
42 - uses: actions/cache@v2
43 - with:
44 - path: ~/.ccache
45 - key: sitl_tests-${{matrix.config.build_type}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
46 - restore-keys: sitl_tests-${{matrix.config.build_type}}-ccache-
47 - - name: setup ccache
48 - run: |
49 - mkdir -p ~/.ccache
50 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
51 - echo "compression = true" >> ~/.ccache/ccache.conf
52 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
53 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
54 - ccache -s
55 - ccache -z
56 -
57 - - name: check environment
58 - run: |
59 - export
60 - ulimit -a
61 - - name: Build PX4 and sitl_gazebo
62 - env:
63 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
64 - run: |
65 - ccache -z
66 - make px4_sitl_default
67 - make px4_sitl_default sitl_gazebo
68 - ccache -s
69 -
70 - - name: Core dump settings
71 - run: |
72 - ulimit -c unlimited
73 - echo "`pwd`/%e.core" > /proc/sys/kernel/core_pattern
74 -
75 - - name: Run SITL tests
76 - env:
77 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
78 - run: |
79 - export
80 - ./test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=${{matrix.config.mission}} vehicle:=${{matrix.config.vehicle}}
81 -
82 - - name: Look at core files
83 - if: failure()
84 - run: gdb build/px4_sitl_default/bin/px4 px4.core -ex "thread apply all bt" -ex "quit"
85 - - name: Upload px4 coredump
86 - if: failure()
87 - uses: actions/upload-artifact@v2-preview
88 - with:
89 - name: coredump
90 - path: px4.core
91 -
92 - - name: ecl EKF analysis
93 - if: always()
94 - run: ./Tools/ecl_ekf/process_logdata_ekf.py ~/.ros/log/*/*.ulg || true
95 -
96 - - name: Upload logs to flight review
97 - if: always()
98 - run: ./Tools/upload_log.py -q --description "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID}" --feedback "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID} ${GITHUB_REPOSITORY} ${GITHUB_REF}" --source CI ~/.ros/log/*/*.ulg
99 -
100 - - name: Upload px4 binary
101 - if: failure()
102 - uses: actions/upload-artifact@v2
103 - with:
104 - name: binary
105 - path: build/px4_sitl_default/bin/px4
106 -
107 - - name: Store PX4 log
108 - if: failure()
109 - uses: actions/upload-artifact@v2
110 - with:
111 - name: px4_log
112 - path: ~/.ros/log/*/*.ulg
113 -
114 - - name: Store ROS log
115 - if: failure()
116 - uses: actions/upload-artifact@v2
117 - with:
118 - name: ros_log
119 - path: ~/.ros/**/rostest-*.log
120 -
121 - # Report test coverage
122 - - name: Upload coverage
123 - if: contains(matrix.config.build_type, 'Coverage')
124 - run: |
125 - git config --global credential.helper "" # disable the keychain credential helper
126 - git config --global --add credential.helper store # enable the local store credential helper
127 - echo "https://x-access-token:${{ secrets.ACCESS_TOKEN }}@github.com" >> ~/.git-credentials # add credential
128 - git config --global url."https://github.com/".insteadof git@github.com: # credentials add credential
129 - mkdir -p coverage
130 - lcov --directory build/px4_sitl_default --base-directory build/px4_sitl_default --gcov-tool gcov --capture -o coverage/lcov.info
131 - - name: Upload coverage information to Codecov
132 - if: contains(matrix.config.build_type, 'Coverage')
133 - uses: codecov/codecov-action@v1
134 - with:
135 - token: ${{ secrets.CODECOV_TOKEN }}
136 - flags: mavros_mission
137 - file: coverage/lcov.info
1 -name: MAVROS Offboard Tests
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - strategy:
15 - fail-fast: false
16 - matrix:
17 - config:
18 - - {test_file: "mavros_posix_tests_offboard_posctl.test", vehicle: "iris", build_type: "RelWithDebInfo"}
19 - #- {test_file: "mavros_posix_tests_offboard_attctl.test", vehicle: "iris", build_type: "RelWithDebInfo"}
20 - #- {test_file: "mavros_posix_tests_offboard_rpyrt_ctl.test", vehicle: "iris", build_type: "RelWithDebInfo"}
21 -
22 - container:
23 - image: px4io/px4-dev-ros-melodic:2021-04-29
24 - options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
25 - steps:
26 - - uses: actions/checkout@v1
27 - with:
28 - token: ${{ secrets.ACCESS_TOKEN }}
29 -
30 - - name: Prepare ccache timestamp
31 - id: ccache_cache_timestamp
32 - shell: cmake -P {0}
33 - run: |
34 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
35 - message("::set-output name=timestamp::${current_date}")
36 - - name: ccache cache files
37 - uses: actions/cache@v2
38 - with:
39 - path: ~/.ccache
40 - key: sitl_tests-${{matrix.config.build_type}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
41 - restore-keys: sitl_tests-${{matrix.config.build_type}}-ccache-
42 - - name: setup ccache
43 - run: |
44 - mkdir -p ~/.ccache
45 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
46 - echo "compression = true" >> ~/.ccache/ccache.conf
47 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
48 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
49 - ccache -s
50 - ccache -z
51 -
52 - - name: check environment
53 - run: |
54 - export
55 - ulimit -a
56 - - name: Build PX4 and sitl_gazebo
57 - env:
58 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
59 - run: |
60 - ccache -z
61 - make px4_sitl_default
62 - make px4_sitl_default sitl_gazebo
63 - ccache -s
64 -
65 - - name: Core dump settings
66 - run: |
67 - ulimit -c unlimited
68 - echo "`pwd`/%e.core" > /proc/sys/kernel/core_pattern
69 -
70 - - name: Run SITL tests
71 - env:
72 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
73 - run: |
74 - export
75 - ./test/rostest_px4_run.sh ${{matrix.config.test_file}} vehicle:=${{matrix.config.vehicle}}
76 -
77 - - name: Look at core files
78 - if: failure()
79 - run: gdb build/px4_sitl_default/bin/px4 px4.core -ex "thread apply all bt" -ex "quit"
80 - - name: Upload px4 coredump
81 - if: failure()
82 - uses: actions/upload-artifact@v2-preview
83 - with:
84 - name: coredump
85 - path: px4.core
86 -
87 - - name: ecl EKF analysis
88 - if: always()
89 - run: ./Tools/ecl_ekf/process_logdata_ekf.py ~/.ros/log/*/*.ulg || true
90 -
91 - - name: Upload logs to flight review
92 - if: always()
93 - run: ./Tools/upload_log.py -q --description "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID}" --feedback "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID} ${GITHUB_REPOSITORY} ${GITHUB_REF}" --source CI ~/.ros/log/*/*.ulg
94 -
95 - - name: Upload px4 binary
96 - if: failure()
97 - uses: actions/upload-artifact@v2
98 - with:
99 - name: binary
100 - path: build/px4_sitl_default/bin/px4
101 -
102 - - name: Store PX4 log
103 - if: failure()
104 - uses: actions/upload-artifact@v2
105 - with:
106 - name: px4_log
107 - path: ~/.ros/log/*/*.ulg
108 -
109 - - name: Store ROS log
110 - if: failure()
111 - uses: actions/upload-artifact@v2
112 - with:
113 - name: ros_log
114 - path: ~/.ros/**/rostest-*.log
115 -
116 - # Report test coverage
117 - - name: Upload coverage
118 - if: contains(matrix.config.build_type, 'Coverage')
119 - run: |
120 - git config --global credential.helper "" # disable the keychain credential helper
121 - git config --global --add credential.helper store # enable the local store credential helper
122 - echo "https://x-access-token:${{ secrets.ACCESS_TOKEN }}@github.com" >> ~/.git-credentials # add credential
123 - git config --global url."https://github.com/".insteadof git@github.com: # credentials add credential
124 - mkdir -p coverage
125 - lcov --directory build/px4_sitl_default --base-directory build/px4_sitl_default --gcov-tool gcov --capture -o coverage/lcov.info
126 - - name: Upload coverage information to Codecov
127 - if: contains(matrix.config.build_type, 'Coverage')
128 - uses: codecov/codecov-action@v1
129 - with:
130 - token: ${{ secrets.CODECOV_TOKEN }}
131 - flags: mavros_offboard
132 - file: coverage/lcov.info
1 -name: Metadata
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - - 'release/*'
8 - - 'pr-metadata-test'
9 -
10 -jobs:
11 -
12 - airframe:
13 - runs-on: ubuntu-latest
14 - container: px4io/px4-dev-base-focal:2021-04-29
15 - steps:
16 - - uses: actions/checkout@v1
17 - with:
18 - token: ${{ secrets.ACCESS_TOKEN }}
19 -
20 - - name: airframe metadata
21 - run: |
22 - make airframe_metadata
23 - cd build/px4_sitl_default/docs
24 - ls -ls *
25 - # TODO: deploy to userguide gitbook and s3
26 -
27 - module:
28 - runs-on: ubuntu-latest
29 - container: px4io/px4-dev-base-focal:2021-04-29
30 - steps:
31 - - uses: actions/checkout@v1
32 - with:
33 - token: ${{ secrets.ACCESS_TOKEN }}
34 -
35 - - name: module documentation
36 - run: |
37 - make module_documentation
38 - cd build/px4_sitl_default/docs
39 - ls -ls *
40 - # TODO: deploy to userguide gitbook and s3
41 -
42 - parameter:
43 - runs-on: ubuntu-latest
44 - container: px4io/px4-dev-base-focal:2021-04-29
45 - steps:
46 - - uses: actions/checkout@v1
47 - with:
48 - token: ${{ secrets.ACCESS_TOKEN }}
49 -
50 - - name: parameter metadata
51 - run: |
52 - make parameters_metadata
53 - ./src/lib/version/get_git_tag_or_branch_version.sh build/px4_sitl_default >> $GITHUB_ENV
54 -
55 - - uses: jakejarvis/s3-sync-action@master
56 - with:
57 - args: --acl public-read
58 - env:
59 - AWS_S3_BUCKET: 'px4-travis'
60 - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
61 - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
62 - AWS_REGION: 'us-west-1'
63 - SOURCE_DIR: 'build/px4_sitl_default/docs/'
64 - DEST_DIR: 'Firmware/${{ env.version }}/_general/'
65 -
66 - uorb_graph:
67 - runs-on: ubuntu-latest
68 - container: px4io/px4-dev-nuttx-focal:2021-04-29
69 - steps:
70 - - uses: actions/checkout@v1
71 - with:
72 - token: ${{ secrets.ACCESS_TOKEN }}
73 -
74 - - name: uORB graph
75 - run: |
76 - make uorb_graphs
77 - cd Tools/uorb_graph
78 - ls -ls *
79 - # TODO: deploy graph_px4_sitl.json to S3 px4-travis:Firmware/master/
80 -
81 - micrortps_agent:
82 - runs-on: ubuntu-latest
83 - container: px4io/px4-dev-base-focal:2021-04-29
84 - steps:
85 - - uses: actions/checkout@v1
86 - with:
87 - token: ${{ secrets.ACCESS_TOKEN }}
88 -
89 - - name: microRTPS agent
90 - run: |
91 - make px4_sitl_rtps
92 - git clone https://github.com/PX4/micrortps_agent.git
93 - cp -R build/px4_sitl_rtps/src/modules/micrortps_bridge/micrortps_agent/* micrortps_agent
94 -
95 - ROS_msgs:
96 - runs-on: ubuntu-latest
97 - container: px4io/px4-dev-base-focal:2021-04-29
98 - steps:
99 - - uses: actions/checkout@v1
100 - with:
101 - token: ${{ secrets.ACCESS_TOKEN }}
102 -
103 - - name: PX4 ROS msgs
104 - run: |
105 - git clone https://github.com/PX4/px4_msgs.git
106 - python3 msg/tools/uorb_to_ros_msgs.py msg/ px4_msgs/msg/
107 -
108 - ROS2_bridge:
109 - runs-on: ubuntu-latest
110 - container: px4io/px4-dev-base-focal:2021-04-29
111 - steps:
112 - - uses: actions/checkout@v1
113 - with:
114 - token: ${{ secrets.ACCESS_TOKEN }}
115 -
116 - - name: PX4 ROS2 bridge
117 - run: |
118 - git clone https://github.com/PX4/px4_ros_com.git
119 - ./msg/tools/uorb_to_ros_rtps_ids.py -i msg/tools/uorb_rtps_message_ids.yaml -o px4_ros_com/templates/uorb_rtps_message_ids.yaml
1 -name: Python CI Checks
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - steps:
15 - - uses: actions/checkout@v1
16 - with:
17 - token: ${{ secrets.ACCESS_TOKEN }}
18 - - name: Install Python3
19 - run: sudo apt-get install python3 python3-setuptools python3-pip -y
20 - - name: Install tools
21 - run: pip3 install --user mypy flake8
22 - - name: Check MAVSDK test scripts with mypy
23 - run: $HOME/.local/bin/mypy --strict test/mavsdk_tests/*.py
24 - - name: Check MAVSDK test scripts with flake8
25 - run: $HOME/.local/bin/flake8 test/mavsdk_tests/*.py
1 -name: SITL Tests
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - strategy:
15 - fail-fast: false
16 - matrix:
17 - config:
18 - - {latitude: "59.617693", longitude: "-151.145316", altitude: "48", build_type: "RelWithDebInfo", model: "iris" } # Alaska
19 - - {latitude: "-38.071235", longitude: "145.281220", altitude: "31", build_type: "RelWithDebInfo", model: "standard_vtol" } # Australia
20 - - {latitude: "29.660316", longitude: "-82.316658", altitude: "30", build_type: "RelWithDebInfo", model: "tailsitter" } # Florida
21 - - {latitude: "47.397742", longitude: "8.545594", altitude: "488", build_type: "Coverage", model: "standard_vtol" } # Zurich
22 - container:
23 - image: px4io/px4-dev-simulation-focal:2021-04-29
24 - options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
25 - steps:
26 - - uses: actions/checkout@v1
27 - with:
28 - token: ${{ secrets.ACCESS_TOKEN }}
29 -
30 - - name: Download MAVSDK
31 - run: wget "https://github.com/mavlink/MAVSDK/releases/download/v$(cat test/mavsdk_tests/MAVSDK_VERSION)/mavsdk_$(cat test/mavsdk_tests/MAVSDK_VERSION)_ubuntu20.04_amd64.deb"
32 - - name: Install MAVSDK
33 - run: dpkg -i "mavsdk_$(cat test/mavsdk_tests/MAVSDK_VERSION)_ubuntu20.04_amd64.deb"
34 -
35 - - name: Prepare ccache timestamp
36 - id: ccache_cache_timestamp
37 - shell: cmake -P {0}
38 - run: |
39 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
40 - message("::set-output name=timestamp::${current_date}")
41 - - name: ccache cache files
42 - uses: actions/cache@v2
43 - with:
44 - path: ~/.ccache
45 - key: sitl_tests-${{matrix.config.build_type}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
46 - restore-keys: sitl_tests-${{matrix.config.build_type}}-ccache-
47 - - name: setup ccache
48 - run: |
49 - mkdir -p ~/.ccache
50 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
51 - echo "compression = true" >> ~/.ccache/ccache.conf
52 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
53 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
54 - ccache -s
55 - ccache -z
56 -
57 - - name: check environment
58 - env:
59 - PX4_HOME_LAT: ${{matrix.config.latitude}}
60 - PX4_HOME_LON: ${{matrix.config.longitude}}
61 - PX4_HOME_ALT: ${{matrix.config.altitude}}
62 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
63 - run: |
64 - export
65 - ulimit -a
66 - - name: Build PX4
67 - env:
68 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
69 - run: make px4_sitl_default
70 - - name: ccache post-run px4/firmware
71 - run: ccache -s
72 - - name: Build SITL Gazebo
73 - env:
74 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
75 - run: make px4_sitl_default sitl_gazebo
76 - - name: ccache post-run sitl_gazebo
77 - run: ccache -s
78 - - name: Build MAVSDK tests
79 - env:
80 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
81 - DONT_RUN: 1
82 - run: make px4_sitl_default gazebo mavsdk_tests
83 - - name: ccache post-run mavsdk_tests
84 - run: ccache -s
85 -
86 - - name: Core dump settings
87 - run: |
88 - ulimit -c unlimited
89 - echo "`pwd`/%e.core" > /proc/sys/kernel/core_pattern
90 -
91 - - name: Run SITL tests
92 - env:
93 - PX4_HOME_LAT: ${{matrix.config.latitude}}
94 - PX4_HOME_LON: ${{matrix.config.longitude}}
95 - PX4_HOME_ALT: ${{matrix.config.altitude}}
96 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
97 - run: test/mavsdk_tests/mavsdk_test_runner.py --speed-factor 20 --abort-early --model ${{matrix.config.model}} --upload test/mavsdk_tests/configs/sitl.json
98 -
99 - - name: Look at core files
100 - if: failure()
101 - run: gdb build/px4_sitl_default/bin/px4 px4.core -ex "thread apply all bt" -ex "quit"
102 - - name: Upload px4 coredump
103 - if: failure()
104 - uses: actions/upload-artifact@v2-preview
105 - with:
106 - name: coredump
107 - path: px4.core
108 -
109 - - name: Upload px4 binary
110 - if: failure()
111 - uses: actions/upload-artifact@v2-preview
112 - with:
113 - name: binary
114 - path: build/px4_sitl_default/bin/px4
115 -
116 - # Report test coverage
117 - - name: Upload coverage
118 - if: contains(matrix.config.build_type, 'Coverage')
119 - run: |
120 - git config --global credential.helper "" # disable the keychain credential helper
121 - git config --global --add credential.helper store # enable the local store credential helper
122 - echo "https://x-access-token:${{ secrets.ACCESS_TOKEN }}@github.com" >> ~/.git-credentials # add credential
123 - git config --global url."https://github.com/".insteadof git@github.com: # credentials add credential
124 - mkdir -p coverage
125 - lcov --directory build/px4_sitl_default --base-directory build/px4_sitl_default --gcov-tool gcov --capture -o coverage/lcov.info
126 - - name: Upload coverage information to Codecov
127 - if: contains(matrix.config.build_type, 'Coverage')
128 - uses: codecov/codecov-action@v1
129 - with:
130 - token: ${{ secrets.CODECOV_TOKEN }}
131 - flags: mavsdk
132 - file: coverage/lcov.info
1 -# How to install:
2 -# gem install github_changelog_generator
3 -# How to run:
4 -# github_changelog_generator -u PX4 -p Firmware
5 -# Description:
6 -# The following params are sensible defaults for the PX4 project,
7 -# if you want to do a changelog before a release you need to update since-tag and future-releases,
8 -
9 -# Params:
10 -# github_changelog_generator --help for all options
11 -
12 -# max-issues
13 -# max threshold for github api queries
14 -# make sure you set your CHANGELOG_GITHUB_TOKEN before
15 -# running
16 -max-issues=1500
17 -
18 -# exclude-tags-regex
19 -# excludes release candidates
20 -exclude-tags-regex=rc[0-9]{1,}|beta[0-9]{1,}
21 -
22 -# since-tag
23 -# version of last stable release
24 -# you need to change this depending on what you need
25 -# if you want a changelog between versions this is the lowest version
26 -since-tag=1.6.5
27 -
28 -# future-release
29 -# version you are about to release
30 -# if you want a changelog between a version and all unreleased changes grouped as a release
31 -# eg: v1.6.5 to v1.7.0
32 -future-release=v1.7.0
33 -
1 -*.dSYM
2 -*.o
3 -*.gch
4 -*.pyc
5 -*~
6 -.*.swp
7 -.context
8 -.cproject
9 -.DS_Store
10 -.gdbinit
11 -.gdb_history
12 -.project
13 -.settings
14 -.swp
15 -.~lock.*
16 -Testing/
17 -Packages/*
18 -build/*
19 -build_*/
20 -cscope.out
21 -cscope.in.out
22 -cscope.po.out
23 -Firmware.sublime-workspace
24 -user.sublime*
25 -/Documentation/doxy.log
26 -/Documentation/html/
27 -/Documentation/doxygen*objdb*tmp
28 -.tags
29 -tags
30 -.tags_sorted_by_file
31 -.pydevproject
32 -.ropeproject
33 -*.orig
34 -Firmware.zip
35 -*.generated.h
36 -.vagrant
37 -*.pretty
38 -xcode
39 -rootfs/
40 -*.autosave
41 -CMakeLists.txt.user
42 -GPATH
43 -GRTAGS
44 -GTAGS
45 -*.creator
46 -*.creator.user
47 -*.files
48 -*.includes
49 -
50 -# CLion ignores
51 -.idea
52 -cmake-build-*/
53 -
54 -posix-configs/SITL/init/test/*_generated
55 -
56 -/airframes.md
57 -/airframes.xml
58 -/parameters.md
59 -/parameters.xml
60 -/modules
61 -/msg/ros/*.msg
62 -
63 -*.gcov
64 -.coverage
65 -.coverage.*
66 -
67 -# KDevelop ignores
68 -.kdev4/*
69 -*.kdev4
70 -
71 -# cmake in tree (ninja)
72 -.ninja_deps
73 -.ninja_log
74 -bin/
75 -build.ninja
76 -cmake_install.cmake
77 -CMakeCache.txt
78 -CMakeFiles
79 -compile_commands.json
80 -CPackConfig.cmake
81 -CPackSourceConfig.cmake
82 -CTestTestfile.cmake
83 -external/
84 -rules.ninja
85 -
86 -# in tree build
87 -**/*.a
88 -**/*.px4mod
89 -**/*.stamp
90 -/coverage*
91 -/functional-*
92 -/generated_params/
93 -/googletest-*/
94 -/logs
95 -/mavsdk_tests
96 -/test_mixer_multirotor
97 -/unit-*
98 -/uORB/
99 -DartConfiguration.tcl
100 -msg/tmp/
101 -msg/topics_sources/
102 -platforms/posix/apps.cpp
103 -platforms/posix/apps.h
104 -src/lib/version/build_git_version.h
105 -src/modules/simulator/simulator_config.h
106 -src/systemcmds/topic_listener/listener_generated.cpp
107 -
108 -# SITL
109 -dataman
110 -eeprom/
1 -[submodule "mavlink/include/mavlink/v2.0"]
2 - path = mavlink/include/mavlink/v2.0
3 - url = https://github.com/mavlink/c_library_v2.git
4 - branch = master
5 -[submodule "src/drivers/uavcan/libuavcan"]
6 - path = src/drivers/uavcan/libuavcan
7 - url = https://github.com/PX4/libuavcan.git
8 - branch = px4
9 -[submodule "Tools/jMAVSim"]
10 - path = Tools/jMAVSim
11 - url = https://github.com/PX4/jMAVSim.git
12 - branch = master
13 -[submodule "Tools/sitl_gazebo"]
14 - path = Tools/sitl_gazebo
15 - url = https://github.com/PX4/PX4-SITL_gazebo.git
16 - branch = master
17 -[submodule "src/lib/matrix"]
18 - path = src/lib/matrix
19 - url = https://github.com/PX4/PX4-Matrix.git
20 - branch = master
21 -[submodule "src/lib/ecl"]
22 - path = src/lib/ecl
23 - url = https://github.com/PX4/PX4-ECL.git
24 - branch = master
25 -[submodule "boards/atlflight/cmake_hexagon"]
26 - path = boards/atlflight/cmake_hexagon
27 - url = https://github.com/PX4/cmake_hexagon.git
28 - branch = px4
29 -[submodule "src/drivers/gps/devices"]
30 - path = src/drivers/gps/devices
31 - url = https://github.com/PX4/PX4-GPSDrivers.git
32 - branch = master
33 -[submodule "src/modules/micrortps_bridge/micro-CDR"]
34 - path = src/modules/micrortps_bridge/micro-CDR
35 - url = https://github.com/PX4/Micro-CDR.git
36 - branch = master
37 -[submodule "platforms/nuttx/NuttX/nuttx"]
38 - path = platforms/nuttx/NuttX/nuttx
39 - url = https://github.com/PX4/NuttX.git
40 - branch = px4_firmware_nuttx-10.0.0+
41 -[submodule "platforms/nuttx/NuttX/apps"]
42 - path = platforms/nuttx/NuttX/apps
43 - url = https://github.com/PX4/NuttX-apps.git
44 - branch = px4_firmware_nuttx-10.0.0+
45 -[submodule "platforms/qurt/dspal"]
46 - path = platforms/qurt/dspal
47 - url = https://github.com/ATLFlight/dspal.git
48 -[submodule "Tools/flightgear_bridge"]
49 - path = Tools/flightgear_bridge
50 - url = https://github.com/PX4/PX4-FlightGear-Bridge.git
51 -[submodule "Tools/jsbsim_bridge"]
52 - path = Tools/jsbsim_bridge
53 - url = https://github.com/PX4/px4-jsbsim-bridge.git
54 -[submodule "src/drivers/uavcan_v1/libcanard"]
55 - path = src/drivers/uavcan_v1/libcanard
56 - url = https://github.com/UAVCAN/libcanard.git
57 -[submodule "src/drivers/uavcan_v1/public_regulated_data_types"]
58 - path = src/drivers/uavcan_v1/public_regulated_data_types
59 - url = https://github.com/UAVCAN/public_regulated_data_types.git
60 -[submodule "src/drivers/uavcannode_gps_demo/public_regulated_data_types"]
61 - path = src/drivers/uavcannode_gps_demo/public_regulated_data_types
62 - url = https://github.com/UAVCAN/public_regulated_data_types.git
63 -[submodule "src/drivers/uavcannode_gps_demo/libcanard"]
64 - path = src/drivers/uavcannode_gps_demo/libcanard
65 - url = https://github.com/UAVCAN/libcanard.git
66 -[submodule "src/drivers/uavcan_v1/legacy_data_types"]
67 - path = src/drivers/uavcan_v1/legacy_data_types
68 - url = https://github.com/PX4/public_regulated_data_types.git
69 - branch = legacy
1 -language: cpp
2 -
3 -git:
4 - depth: 100
5 - submodules: false
6 -
7 -matrix:
8 - fast_finish: true
9 - include:
10 - - os: linux
11 - dist: xenial
12 - # In order to stay under the coverity rate limit, we only run this weekly
13 - # and not on push which is configured in travis-ci settings.
14 - if: branch = master
15 -
16 -before_install:
17 - - echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
18 -
19 -install:
20 - - export PATH=$HOME/.local/bin:$PATH
21 - - pip install --user --upgrade pip
22 - - pip install --user -r Tools/setup/requirements.txt
23 -
24 -script:
25 - - make
26 -
27 -addons:
28 - coverity_scan:
29 - project:
30 - name: "PX4/Firmware"
31 - description: "Build submitted via Travis CI"
32 - notification_email: ci@px4.io
33 - build_command_prepend: "make distclean"
34 - build_command: "make px4_sitl_default"
35 - branch_pattern: coverity_scan
1 -.cortex-debug.peripherals.state.json
2 -.cortex-debug.registers.state.json
3 -compile_commands.json
4 -
5 -# generated by cmake
6 -launch.json
7 -
8 -# C/C++ extension does some local caching in this folder
9 -ipch/
10 -
11 -browse.vc.db*
1 -{
2 - "configurations": [
3 - {
4 - "name": "PX4",
5 - "includePath": [
6 - "${workspaceFolder}/**"
7 - ],
8 - "defines": [],
9 - "macFrameworkPath": [],
10 - "configurationProvider": "ms-vscode.cmake-tools",
11 - "cppStandard": "c++14",
12 - "cStandard": "c11"
13 - }
14 - ],
15 - "version": 4
16 -}
...\ No newline at end of file ...\ No newline at end of file
1 -[
2 - {
3 - "name": "PX4 detect"
4 - }
5 -]
...\ No newline at end of file ...\ No newline at end of file
1 -CONFIG:
2 - default: px4_sitl_default
3 - choices:
4 - px4_sitl_default:
5 - short: px4_sitl
6 - buildType: RelWithDebInfo
7 - settings:
8 - CONFIG: px4_sitl_default
9 - px4_sitl_replay:
10 - short: px4_sitl_replay
11 - buildType: RelWithDebInfo
12 - settings:
13 - CONFIG: px4_sitl_replay
14 - px4_sitl_test:
15 - short: px4_sitl_test
16 - buildType: RelWithDebInfo
17 - settings:
18 - CONFIG: px4_sitl_test
19 - px4_io-v2_default:
20 - short: px4_io-v2
21 - buildType: MinSizeRel
22 - settings:
23 - CONFIG: px4_io-v2_default
24 - px4_fmu-v2_default:
25 - short: px4_fmu-v2
26 - buildType: MinSizeRel
27 - settings:
28 - CONFIG: px4_fmu-v2_default
29 - px4_fmu-v3_default:
30 - short: px4_fmu-v3
31 - buildType: MinSizeRel
32 - settings:
33 - CONFIG: px4_fmu-v3_default
34 - px4_fmu-v4_default:
35 - short: px4_fmu-v4
36 - buildType: MinSizeRel
37 - settings:
38 - CONFIG: px4_fmu-v4_default
39 - px4_fmu-v4pro_default:
40 - short: px4_fmu-v4pro
41 - buildType: MinSizeRel
42 - settings:
43 - CONFIG: px4_fmu-v4pro_default
44 - px4_fmu-v5_default:
45 - short: px4_fmu-v5
46 - buildType: MinSizeRel
47 - settings:
48 - CONFIG: px4_fmu-v5_default
49 - px4_fmu-v5x_default:
50 - short: px4_fmu-v5x
51 - buildType: MinSizeRel
52 - settings:
53 - CONFIG: px4_fmu-v5x_default
54 - airmind_mindpx-v2_default:
55 - short: airmind_mindpx-v2
56 - buildType: MinSizeRel
57 - settings:
58 - CONFIG: airmind_mindpx-v2_default
59 - ark_can-flow_default:
60 - short: ark_can-flow_default
61 - buildType: MinSizeRel
62 - settings:
63 - CONFIG: ark_can-flow_default
64 - ark_can-flow_canbootloader:
65 - short: ark_can-flow_canbootloader
66 - buildType: MinSizeRel
67 - settings:
68 - CONFIG: ark_can-flow_canbootloader
69 - ark_can-gps_default:
70 - short: ark_can-gps_default
71 - buildType: MinSizeRel
72 - settings:
73 - CONFIG: ark_can-gps_default
74 - ark_can-gps_canbootloader:
75 - short: ark_can-gps_canbootloader
76 - buildType: MinSizeRel
77 - settings:
78 - CONFIG: ark_can-gps_canbootloader
79 - av_x-v1_default:
80 - short: av_x-v1
81 - buildType: MinSizeRel
82 - settings:
83 - CONFIG: av_x-v1_default
84 - bitcraze_crazyflie_default:
85 - short: bitcraze_crazyflie
86 - buildType: MinSizeRel
87 - settings:
88 - CONFIG: bitcraze_crazyflie_default
89 - cuav_can-gps-v1_default:
90 - short: cuav_can-gps-v1_default
91 - buildType: MinSizeRel
92 - settings:
93 - CONFIG: cuav_can-gps-v1_default
94 - cuav_can-gps-v1_canbootloader:
95 - short: cuav_can-gps-v1_canbootloader
96 - buildType: MinSizeRel
97 - settings:
98 - CONFIG: cuav_can-gps-v1_canbootloader
99 - cuav_nora_default:
100 - short: cuav_nora
101 - buildType: MinSizeRel
102 - settings:
103 - CONFIG: cuav_nora_default
104 - cuav_x7pro_default:
105 - short: cuav_x7pro
106 - buildType: MinSizeRel
107 - settings:
108 - CONFIG: cuav_x7pro_default
109 - cubepilot_cubeorange_test:
110 - short: cubepilot_cubeorange
111 - buildType: MinSizeRel
112 - settings:
113 - CONFIG: cubepilot_orange_test
114 - emlid_navio2_default:
115 - short: emlid_navio2
116 - buildType: MinSizeRel
117 - settings:
118 - CONFIG: emlid_navio2_default
119 - freefly_can-rtk-gps_default:
120 - short: freefly_can-rtk-gps_default
121 - buildType: MinSizeRel
122 - settings:
123 - CONFIG: freefly_can-rtk-gps_default
124 - freefly_can-rtk-gps_canbootloader:
125 - short: freefly_can-rtk-gps_canbootloader
126 - buildType: MinSizeRel
127 - settings:
128 - CONFIG: freefly_can-rtk-gps_canbootloader
129 - holybro_can-gps-v1_canbootloader:
130 - short: holybro_can-gps-v1_canbootloader
131 - buildType: MinSizeRel
132 - settings:
133 - CONFIG: holybro_can-gps-v1_canbootloader
134 - holybro_can-gps-v1_default:
135 - short: holybro_can-gps-v1_default
136 - buildType: MinSizeRel
137 - settings:
138 - CONFIG: holybro_can-gps-v1_default
139 - holybro_durandal-v1_default:
140 - short: holybro_durandal-v1
141 - buildType: MinSizeRel
142 - settings:
143 - CONFIG: holybro_durandal-v1_default
144 - modalai_fc-v1_default:
145 - short: modalai_fc-v1
146 - buildType: MinSizeRel
147 - settings:
148 - CONFIG: modalai_fc-v1_default
149 - modalai_fc-v2_default:
150 - short: modalai_fc-v2
151 - buildType: MinSizeRel
152 - settings:
153 - CONFIG: modalai_fc-v2_default
154 - mro_ctrl-zero-f7_default:
155 - short: mro_ctrl-zero-f7
156 - buildType: MinSizeRel
157 - settings:
158 - CONFIG: mro_ctrl-zero-f7_default
159 - mro_pixracerpro_bootloader:
160 - short: mro_pixracerpro_bootloader
161 - buildType: MinSizeRel
162 - settings:
163 - CONFIG: mro_pixracerpro_bootloader
164 - mro_pixracerpro_default:
165 - short: mro_pixracerpro_default
166 - buildType: MinSizeRel
167 - settings:
168 - CONFIG: mro_pixracerpro_default
169 - mro_x21-777_default:
170 - short: mro_x2.1-777
171 - buildType: MinSizeRel
172 - settings:
173 - CONFIG: mro_x21-777_default
174 - nxp_fmuk66-v3_default:
175 - short: nxp_fmuk66-v3
176 - buildType: MinSizeRel
177 - settings:
178 - CONFIG: nxp_fmuk66-v3_default
1 -{
2 - // See http://go.microsoft.com/fwlink/?LinkId=827846
3 - // for the documentation about the extensions.json format
4 - "recommendations": [
5 - "chiehyu.vscode-astyle",
6 - "dan-c-underwood.arm",
7 - "fredericbonnet.cmake-test-adapter",
8 - "github.vscode-pull-request-github",
9 - "marus25.cortex-debug",
10 - "ms-azuretools.vscode-docker",
11 - "ms-iot.vscode-ros",
12 - "ms-python.python",
13 - "ms-vscode.cmake-tools",
14 - "ms-vscode.cpptools",
15 - "ms-vscode.cpptools-extension-pack",
16 - "redhat.vscode-yaml",
17 - "streetsidesoftware.code-spell-checker",
18 - "twxs.cmake",
19 - "uavcan.dsdl",
20 - "wholroyd.jinja",
21 - "zixuanwang.linkerscript"
22 - ]
23 -}
1 -{
2 - "astyle.astylerc": "${workspaceFolder}/Tools/astyle/astylerc",
3 - "astyle.c.enable": true,
4 - "astyle.cpp.enable": true,
5 - "breadcrumbs.enabled": true,
6 - "C_Cpp.autoAddFileAssociations": false,
7 - "C_Cpp.clang_format_fallbackStyle": "none",
8 - "C_Cpp.default.browse.limitSymbolsToIncludedHeaders": true,
9 - "C_Cpp.default.cppStandard": "c++14",
10 - "C_Cpp.default.cStandard": "c11",
11 - "C_Cpp.formatting": "Disabled",
12 - "C_Cpp.intelliSenseEngine": "Default",
13 - "C_Cpp.vcpkg.enabled": false,
14 - "C_Cpp.workspaceParsingPriority": "low",
15 - "cmake.buildBeforeRun": true,
16 - "cmake.buildDirectory": "${workspaceFolder}/build/${variant:CONFIG}",
17 - "cmake.buildTask": true,
18 - "cmake.configureOnOpen": true,
19 - "cmake.ctest.parallelJobs": 1,
20 - "cmake.skipConfigureIfCachePresent": true,
21 - "cmakeExplorer.buildDir": "${workspaceFolder}/build/px4_sitl_test",
22 - "cmakeExplorer.parallelJobs": 1,
23 - "cmakeExplorer.suiteDelimiter": "-",
24 - "cortex-debug.enableTelemetry": false,
25 - "cSpell.allowCompoundWords": true,
26 - "cSpell.diagnosticLevel": "Hint",
27 - "cSpell.showStatus": false,
28 - "cSpell.words": [
29 - "acro",
30 - "nuttx",
31 - "esc"
32 - ],
33 - "debug.toolBarLocation": "docked",
34 - "editor.acceptSuggestionOnEnter": "off",
35 - "editor.defaultFormatter": "chiehyu.vscode-astyle",
36 - "editor.dragAndDrop": false,
37 - "editor.insertSpaces": false,
38 - "editor.minimap.maxColumn": 120,
39 - "editor.minimap.renderCharacters": false,
40 - "editor.minimap.showSlider": "always",
41 - "editor.suggest.localityBonus": true,
42 - "editor.tabSize": 8,
43 - "editor.wordWrapColumn": 120,
44 - "explorer.openEditors.visible": 0,
45 - "files.insertFinalNewline": true,
46 - "files.trimTrailingWhitespace": true,
47 - "files.watcherExclude": {
48 - "**/build/**": true
49 - },
50 - "git.detectSubmodulesLimit": 20,
51 - "git.ignoreLimitWarning": true,
52 - "githubPullRequests.defaultMergeMethod": "squash",
53 - "githubPullRequests.telemetry.enabled": false,
54 - "files.associations": {
55 - "*.jinja": "jinja",
56 - "algorithm": "cpp",
57 - "array": "cpp",
58 - "atomic": "cpp",
59 - "bitset": "cpp",
60 - "cctype": "cpp",
61 - "cfenv": "cpp",
62 - "chrono": "cpp",
63 - "cinttypes": "cpp",
64 - "clocale": "cpp",
65 - "cmath": "cpp",
66 - "codecvt": "cpp",
67 - "complex": "cpp",
68 - "condition_variable": "cpp",
69 - "csignal": "cpp",
70 - "cstdarg": "cpp",
71 - "cstddef": "cpp",
72 - "cstdint": "cpp",
73 - "cstdio": "cpp",
74 - "cstdlib": "cpp",
75 - "cstring": "cpp",
76 - "ctime": "cpp",
77 - "cwchar": "cpp",
78 - "cwctype": "cpp",
79 - "deque": "cpp",
80 - "exception": "cpp",
81 - "forward_list": "cpp",
82 - "fstream": "cpp",
83 - "functional": "cpp",
84 - "future": "cpp",
85 - "hash_map": "cpp",
86 - "hash_set": "cpp",
87 - "initializer_list": "cpp",
88 - "iomanip": "cpp",
89 - "iosfwd": "cpp",
90 - "iostream": "cpp",
91 - "istream": "cpp",
92 - "iterator": "cpp",
93 - "limits": "cpp",
94 - "list": "cpp",
95 - "map": "cpp",
96 - "memory": "cpp",
97 - "memory_resource": "cpp",
98 - "mutex": "cpp",
99 - "new": "cpp",
100 - "numeric": "cpp",
101 - "optional": "cpp",
102 - "ostream": "cpp",
103 - "random": "cpp",
104 - "ratio": "cpp",
105 - "regex": "cpp",
106 - "set": "cpp",
107 - "sstream": "cpp",
108 - "stdexcept": "cpp",
109 - "streambuf": "cpp",
110 - "string": "cpp",
111 - "string_view": "cpp",
112 - "strstream": "cpp",
113 - "system_error": "cpp",
114 - "thread": "cpp",
115 - "tuple": "cpp",
116 - "type_traits": "cpp",
117 - "typeindex": "cpp",
118 - "typeinfo": "cpp",
119 - "unordered_map": "cpp",
120 - "unordered_set": "cpp",
121 - "utility": "cpp",
122 - "valarray": "cpp",
123 - "variant": "cpp",
124 - "vector": "cpp"
125 - },
126 - "search.exclude": {
127 - "${workspaceFolder}/build": true
128 - },
129 - "search.showLineNumbers": true,
130 - "telemetry.enableTelemetry": false,
131 - "terminal.integrated.copyOnSelection": true,
132 - "terminal.integrated.rightClickBehavior": "paste",
133 - "terminal.integrated.scrollback": 5000,
134 - "window.title": "${dirty} ${activeEditorMedium}${separator}${rootName}",
135 - "workbench.editor.highlightModifiedTabs": true,
136 - "workbench.enableExperiments": false,
137 - "workbench.settings.enableNaturalLanguageSearch": false,
138 - "yaml.schemas": {
139 - "${workspaceFolder}/validation/module_schema.yaml": "${workspaceFolder}/src/modules/*/module.yaml"
140 - }
141 -}
1 -{
2 - // See https://go.microsoft.com/fwlink/?LinkId=733558
3 - // for the documentation about the tasks.json format
4 - "version": "2.0.0",
5 - "tasks": [
6 - {
7 - "label": "build",
8 - "type": "shell",
9 - "command": "/bin/bash",
10 - "args": [
11 - "-c",
12 - "${command:cmake.tasksBuildCommand}"
13 - ],
14 - "options": {
15 - "cwd": "${command:cmake.buildDirectory}"
16 - },
17 - "group": {
18 - "kind": "build",
19 - "isDefault": true,
20 - },
21 - "problemMatcher": {
22 - "base": "$gcc",
23 - "fileLocation": ["relative", "${command:cmake.buildDirectory}"]
24 - },
25 - "presentation":{
26 - "echo": false,
27 - "showReuseMessage": false,
28 - "clear": true,
29 - "panel": "shared",
30 - "group": "build"
31 - }
32 - },
33 - {
34 - "label": "test",
35 - "type": "shell",
36 - "command": "make tests",
37 - "options": {
38 - "cwd": "${workspaceFolder}"
39 - },
40 - "group": {
41 - "kind": "test",
42 - "isDefault": true,
43 - },
44 - "presentation":{
45 - "echo": true,
46 - "showReuseMessage": false,
47 - "clear": false,
48 - "panel": "shared",
49 - "group": "test"
50 - }
51 - },
52 - {
53 - "label": "jmavsim build",
54 - "type": "shell",
55 - "command": "ant create_run_jar copy_res",
56 - "options": {
57 - "cwd": "${workspaceFolder}/Tools/jMAVSim"
58 - },
59 - "problemMatcher": [],
60 - "presentation":{
61 - "echo": true,
62 - "reveal": "never",
63 - "focus": false,
64 - "panel": "shared",
65 - "showReuseMessage": false,
66 - "clear": false,
67 - }
68 - },
69 - {
70 - "label": "jmavsim",
71 - "type": "shell",
72 - "dependsOn": "jmavsim build",
73 - "command": "java -Djava.ext.dirs= -jar jmavsim_run.jar -r 250 -lockstep -tcp localhost:4560 -qgc",
74 - "options": {
75 - "cwd": "${workspaceFolder}/Tools/jMAVSim/out/production",
76 - "env": {
77 - "PX4_SIM_SPEED_FACTOR": "1"
78 - }
79 - },
80 - "isBackground": true,
81 - "presentation": {
82 - "echo": true,
83 - "reveal": "never",
84 - "focus": false,
85 - "panel": "shared",
86 - "showReuseMessage": false,
87 - "clear": false
88 - },
89 - "problemMatcher": [
90 - {
91 - "pattern": [
92 - {
93 - "regexp": ".",
94 - "file": 1,
95 - "location": 2,
96 - "message": 3
97 - }
98 - ],
99 - "background": {
100 - "activeOnStart": true,
101 - "beginsPattern": ".",
102 - "endsPattern": ".",
103 - }
104 - }
105 - ]
106 - },
107 - {
108 - "label": "jmavsim kill",
109 - "type": "shell",
110 - "command": "kill $(ps aux | grep jmavsim | grep -v 'grep' | awk '{print $2}')",
111 - "presentation": {
112 - "echo": false,
113 - "reveal": "never",
114 - "focus": false,
115 - "panel": "shared",
116 - "showReuseMessage": false,
117 - "clear": false
118 - },
119 - "problemMatcher": []
120 - },
121 - {
122 - "label": "gazebo build",
123 - "type": "shell",
124 - "command": "make px4_sitl_default sitl_gazebo",
125 - "options": {
126 - "cwd": "${workspaceFolder}"
127 - },
128 - "problemMatcher": [],
129 - "presentation":{
130 - "echo": true,
131 - "reveal": "always",
132 - "focus": false,
133 - "panel": "shared",
134 - "showReuseMessage": false,
135 - "clear": false,
136 - }
137 - },
138 - {
139 - "label": "gazebo start",
140 - "type": "shell",
141 - "dependsOn": "gazebo build",
142 - "options": {
143 - "cwd": "${workspaceFolder}",
144 - "env": {
145 - "GAZEBO_PLUGIN_PATH": "${workspaceFolder}/build/px4_sitl_default/build_gazebo",
146 - "GAZEBO_MODEL_PATH": "${workspaceFolder}/Tools/sitl_gazebo/models",
147 - "PX4_SIM_SPEED_FACTOR": "1"
148 - }
149 - },
150 - "command": "gzserver --verbose ${workspaceFolder}/Tools/sitl_gazebo/worlds/${input:gazeboWorld}.world",
151 - "isBackground": true,
152 - "presentation": {
153 - "echo": true,
154 - "reveal": "never",
155 - "focus": false,
156 - "panel": "shared",
157 - "showReuseMessage": false,
158 - "clear": false
159 - },
160 - "problemMatcher": [
161 - {
162 - "pattern": [
163 - {
164 - "regexp": ".",
165 - "file": 1,
166 - "location": 2,
167 - "message": 3
168 - }
169 - ],
170 - "background": {
171 - "activeOnStart": true,
172 - "beginsPattern": ".",
173 - "endsPattern": ".",
174 - }
175 - }
176 - ]
177 - },
178 - {
179 - "label": "gazebo",
180 - "type": "shell",
181 - "dependsOn": "gazebo start",
182 - "options": {
183 - "cwd": "${workspaceFolder}",
184 - "env": {
185 - "GAZEBO_PLUGIN_PATH": "${workspaceFolder}/build/px4_sitl_default/build_gazebo",
186 - "GAZEBO_MODEL_PATH": "${workspaceFolder}/Tools/sitl_gazebo/models",
187 - "PX4_SIM_SPEED_FACTOR": "1"
188 - }
189 - },
190 - "command": "gz model --verbose --spawn-file=${workspaceFolder}/Tools/sitl_gazebo/models/${input:vehicleModel}/${input:vehicleModel}.sdf --model-name=${input:vehicleModel} -x 1.01 -y 0.98 -z 0.83",
191 - "isBackground": false,
192 - "presentation": {
193 - "echo": true,
194 - "reveal": "never",
195 - "focus": false,
196 - "panel": "shared",
197 - "showReuseMessage": false,
198 - "clear": false
199 - },
200 - "problemMatcher": [
201 - {
202 - "pattern": [
203 - {
204 - "regexp": ".",
205 - "file": 1,
206 - "location": 2,
207 - "message": 3
208 - }
209 - ],
210 - "background": {
211 - "activeOnStart": true,
212 - "beginsPattern": ".",
213 - "endsPattern": ".",
214 - }
215 - }
216 - ]
217 - },
218 - {
219 - "label": "gazebo client",
220 - "type": "shell",
221 - "dependsOn": "gazebo build",
222 - "options": {
223 - "cwd": "${workspaceFolder}",
224 - "env": {
225 - "GAZEBO_PLUGIN_PATH": "${workspaceFolder}/build/px4_sitl_default/build_gazebo",
226 - "GAZEBO_MODEL_PATH": "${workspaceFolder}/Tools/sitl_gazebo/models",
227 - "PX4_SIM_SPEED_FACTOR": "1"
228 - }
229 - },
230 - "command": "gzclient --verbose",
231 - "isBackground": true,
232 - "presentation": {
233 - "echo": true,
234 - "reveal": "never",
235 - "focus": false,
236 - "panel": "shared",
237 - "showReuseMessage": false,
238 - "clear": false
239 - },
240 - "problemMatcher": [
241 - {
242 - "pattern": [
243 - {
244 - "regexp": ".",
245 - "file": 1,
246 - "location": 2,
247 - "message": 3
248 - }
249 - ],
250 - "background": {
251 - "activeOnStart": true,
252 - "beginsPattern": ".",
253 - "endsPattern": ".",
254 - }
255 - }
256 - ]
257 - },
258 - {
259 - "label": "gazebo kill",
260 - "type": "shell",
261 - "command": "killall gzserver",
262 - "presentation": {
263 - "echo": true,
264 - "reveal": "silent",
265 - "focus": false,
266 - "panel": "shared",
267 - "showReuseMessage": false,
268 - "clear": false
269 - },
270 - "problemMatcher": [],
271 - "dependsOn":["px4_sitl_cleanup"]
272 - },
273 - {
274 - "label": "px4_sitl_cleanup",
275 - "type": "shell",
276 - "command": "rm -rfv /tmp/px4*",
277 - "presentation": {
278 - "echo": true,
279 - "reveal": "silent",
280 - "focus": false,
281 - "panel": "shared",
282 - "showReuseMessage": false,
283 - "clear": false
284 - },
285 - "problemMatcher": [],
286 - "dependsOn":["px4_kill"]
287 - },
288 - {
289 - "label": "px4_kill",
290 - "type": "shell",
291 - "command": "killall px4 || true",
292 - "presentation": {
293 - "echo": true,
294 - "reveal": "silent",
295 - "focus": false,
296 - "panel": "shared",
297 - "showReuseMessage": false,
298 - "clear": false
299 - },
300 - "problemMatcher": []
301 - },
302 - {
303 - "label": "mavlink shell",
304 - "type": "shell",
305 - "command": "./Tools/mavlink_shell.py",
306 - "options": {
307 - "cwd": "${workspaceFolder}"
308 - },
309 - "presentation": {
310 - "echo": true,
311 - "reveal": "always",
312 - "focus": true,
313 - "panel": "new",
314 - "showReuseMessage": false,
315 - "clear": false
316 - },
317 - "problemMatcher": []
318 - },
319 - {
320 - "label": "miniterm.py",
321 - "type": "shell",
322 - "command": "miniterm.py --raw - 57600",
323 - "options": {
324 - "cwd": "${workspaceFolder}"
325 - },
326 - "presentation": {
327 - "echo": true,
328 - "reveal": "always",
329 - "focus": true,
330 - "panel": "new",
331 - "showReuseMessage": false,
332 - "clear": false
333 - },
334 - "problemMatcher": []
335 - }
336 - ],
337 - "inputs": [
338 - {
339 - "type": "pickString",
340 - "id": "vehicleModel",
341 - "description": "gazebo model",
342 - "options": [
343 - "iris",
344 - "typhoon_h480",
345 - "plane",
346 - "plane_catapult",
347 - "plane_lidar",
348 - "standard_vtol",
349 - "tailsitter",
350 - "tiltrotor",
351 - "r1_rover",
352 - "boat"
353 - ],
354 - "default": "iris"
355 - },
356 - {
357 - "type": "pickString",
358 - "id": "gazeboWorld",
359 - "description": "gazebo world",
360 - "options": [
361 - "baylands",
362 - "empty",
363 - "ksql_airport",
364 - "mcmillan_airfield",
365 - "sonoma_raceway",
366 - "warehouse",
367 - "windy",
368 - "yosemite"
369 - ],
370 - "default": "empty"
371 - }
372 - ]
373 -}
1 -# This file is NOT licensed under the GPLv3, which is the license for the rest
2 -# of YouCompleteMe.
3 -#
4 -# Here's the license text for this file:
5 -#
6 -# This is free and unencumbered software released into the public domain.
7 -#
8 -# Anyone is free to copy, modify, publish, use, compile, sell, or
9 -# distribute this software, either in source code form or as a compiled
10 -# binary, for any purpose, commercial or non-commercial, and by any
11 -# means.
12 -#
13 -# In jurisdictions that recognize copyright laws, the author or authors
14 -# of this software dedicate any and all copyright interest in the
15 -# software to the public domain. We make this dedication for the benefit
16 -# of the public at large and to the detriment of our heirs and
17 -# successors. We intend this dedication to be an overt act of
18 -# relinquishment in perpetuity of all present and future rights to this
19 -# software under copyright law.
20 -#
21 -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24 -# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
25 -# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
26 -# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
27 -# OTHER DEALINGS IN THE SOFTWARE.
28 -#
29 -# For more information, please refer to <http://unlicense.org/>
30 -
31 -import os
32 -import ycm_core
33 -
34 -# These are the compilation flags that will be used in case there's no
35 -# compilation database set (by default, one is not set).
36 -# CHANGE THIS LIST OF FLAGS. YES, THIS IS THE DROID YOU HAVE BEEN LOOKING FOR.
37 -flags = [
38 -'-Wall',
39 -'-Wextra',
40 -'-Werror',
41 -#'-Wc++98-compat',
42 -'-Wno-long-long',
43 -'-Wno-variadic-macros',
44 -'-fexceptions',
45 -'-DNDEBUG',
46 -# You 100% do NOT need -DUSE_CLANG_COMPLETER in your flags; only the YCM
47 -# source code needs it.
48 -#'-DUSE_CLANG_COMPLETER',
49 -# THIS IS IMPORTANT! Without a "-std=<something>" flag, clang won't know which
50 -# language to use when compiling headers. So it will guess. Badly. So C++
51 -# headers will be compiled as C headers. You don't want that so ALWAYS specify
52 -# a "-std=<something>".
53 -# For a C project, you would set this to something like 'c99' instead of
54 -# 'c++14'.
55 -'-std=c++14',
56 -# ...and the same thing goes for the magic -x option which specifies the
57 -# language that the files to be compiled are written in. This is mostly
58 -# relevant for c++ headers.
59 -# For a C project, you would set this to 'c' instead of 'c++'.
60 -'-x',
61 -'c++',
62 -'-undef', # get rid of standard definitions to allow us to include arm math header
63 -'-I', os.path.join(os.path.expanduser("~"),'gcc-arm-none-eabi-4_7-2013q3/arm-none-eabi/include'),
64 -'-I', 'Build/px4_io-v2_default.build/nuttx-export/include/',
65 -'-I', './NuttX/nuttx/arch/arm/include',
66 -'-include', './src/include/visibility.h',
67 -'-I', './src',
68 -'-I', './src/modules',
69 -'-I', './src/include',
70 -'-I', './src/lib',
71 -'-I', './NuttX',
72 -]
73 -
74 -
75 -# Set this to the absolute path to the folder (NOT the file!) containing the
76 -# compile_commands.json file to use that instead of 'flags'. See here for
77 -# more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html
78 -#
79 -# Most projects will NOT need to set this to anything; you can just change the
80 -# 'flags' list of compilation flags. Notice that YCM itself uses that approach.
81 -compilation_database_folder = ''
82 -
83 -if os.path.exists( compilation_database_folder ):
84 - database = ycm_core.CompilationDatabase( compilation_database_folder )
85 -else:
86 - database = None
87 -
88 -SOURCE_EXTENSIONS = [ '.cpp', '.cxx', '.cc', '.c', '.m', '.mm' ]
89 -
90 -def DirectoryOfThisScript():
91 - return os.path.dirname( os.path.abspath( __file__ ) )
92 -
93 -
94 -def MakeRelativePathsInFlagsAbsolute( flags, working_directory ):
95 - if not working_directory:
96 - return list( flags )
97 - new_flags = []
98 - make_next_absolute = False
99 - path_flags = [ '-isystem', '-I', '-iquote', '--sysroot=' ]
100 - for flag in flags:
101 - new_flag = flag
102 -
103 - if make_next_absolute:
104 - make_next_absolute = False
105 - if not flag.startswith( '/' ):
106 - new_flag = os.path.join( working_directory, flag )
107 -
108 - for path_flag in path_flags:
109 - if flag == path_flag:
110 - make_next_absolute = True
111 - break
112 -
113 - if flag.startswith( path_flag ):
114 - path = flag[ len( path_flag ): ]
115 - new_flag = path_flag + os.path.join( working_directory, path )
116 - break
117 -
118 - if new_flag:
119 - new_flags.append( new_flag )
120 - return new_flags
121 -
122 -
123 -def IsHeaderFile( filename ):
124 - extension = os.path.splitext( filename )[ 1 ]
125 - return extension in [ '.h', '.hxx', '.hpp', '.hh' ]
126 -
127 -
128 -def GetCompilationInfoForFile( filename ):
129 - # The compilation_commands.json file generated by CMake does not have entries
130 - # for header files. So we do our best by asking the db for flags for a
131 - # corresponding source file, if any. If one exists, the flags for that file
132 - # should be good enough.
133 - if IsHeaderFile( filename ):
134 - basename = os.path.splitext( filename )[ 0 ]
135 - for extension in SOURCE_EXTENSIONS:
136 - replacement_file = basename + extension
137 - if os.path.exists( replacement_file ):
138 - compilation_info = database.GetCompilationInfoForFile(
139 - replacement_file )
140 - if compilation_info.compiler_flags_:
141 - return compilation_info
142 - return None
143 - return database.GetCompilationInfoForFile( filename )
144 -
145 -
146 -def FlagsForFile( filename, **kwargs ):
147 - if database:
148 - # Bear in mind that compilation_info.compiler_flags_ does NOT return a
149 - # python list, but a "list-like" StringVec object
150 - compilation_info = GetCompilationInfoForFile( filename )
151 - if not compilation_info:
152 - return None
153 -
154 - final_flags = MakeRelativePathsInFlagsAbsolute(
155 - compilation_info.compiler_flags_,
156 - compilation_info.compiler_working_dir_ )
157 -
158 - # NOTE: This is just for YouCompleteMe; it's highly likely that your project
159 - # does NOT need to remove the stdlib flag. DO NOT USE THIS IN YOUR
160 - # ycm_extra_conf IF YOU'RE NOT 100% SURE YOU NEED IT.
161 - #try:
162 - # final_flags.remove( '-stdlib=libc++' )
163 - #except ValueError:
164 - # pass
165 - else:
166 - relative_to = DirectoryOfThisScript()
167 - final_flags = MakeRelativePathsInFlagsAbsolute( flags, relative_to )
168 -
169 - return {
170 - 'flags': final_flags,
171 - 'do_cache': True
172 - }
1 ---ignore-dir=Documentation
1 -#!/usr/bin/env groovy
2 -
3 -pipeline {
4 - agent none
5 - stages {
6 -
7 - stage('Build') {
8 - steps {
9 - script {
10 - def build_nodes = [:]
11 - def docker_images = [
12 - armhf: "px4io/px4-dev-armhf:2021-04-29",
13 - arm64: "px4io/px4-dev-aarch64:2021-04-29",
14 - base: "px4io/px4-dev-base-bionic:2021-04-29",
15 - nuttx: "px4io/px4-dev-nuttx-focal:2021-04-29",
16 - snapdragon: "lorenzmeier/px4-dev-snapdragon:2020-04-01"
17 - ]
18 -
19 - def armhf_builds = [
20 - target: ["beaglebone_blue_default", "emlid_navio2_default", "px4_raspberrypi_default", "scumaker_pilotpi_default"],
21 - image: docker_images.armhf,
22 - archive: false
23 - ]
24 -
25 - def arm64_builds = [
26 - target: ["scumaker_pilotpi_arm64"],
27 - image: docker_images.arm64,
28 - archive: false
29 - ]
30 -
31 - def base_builds = [
32 - target: ["px4_sitl_rtps"],
33 - image: docker_images.base,
34 - archive: false
35 - ]
36 -
37 - def nuttx_builds_archive = [
38 - target: [
39 - "airmind_mindpx-v2_default",
40 - "ark_can-flow_canbootloader",
41 - "ark_can-flow_default",
42 - "av_x-v1_default",
43 - "bitcraze_crazyflie_default",
44 - "bitcraze_crazyflie21_default",
45 - "cuav_can-gps-v1_canbootloader",
46 - "cuav_can-gps-v1_default",
47 - "cuav_nora_default",
48 - "cuav_x7pro_default",
49 - "cubepilot_cubeorange_default",
50 - "cubepilot_cubeyellow_default",
51 - "freefly_can-rtk-gps_canbootloader",
52 - "freefly_can-rtk-gps_default",
53 - "holybro_can-gps-v1_canbootloader",
54 - "holybro_can-gps-v1_default",
55 - "holybro_durandal-v1_default",
56 - "holybro_kakutef7_default",
57 - "holybro_pix32v5_default",
58 - "modalai_fc-v1_default",
59 - "modalai_fc-v1_rtps",
60 - "modalai_fc-v2_default",
61 - "mro_ctrl-zero-f7_default",
62 - "mro_ctrl-zero-f7-oem_default",
63 - "mro_ctrl-zero-h7_default",
64 - "mro_ctrl-zero-h7-oem_default",
65 - "mro_pixracerpro_default",
66 - "mro_x21-777_default",
67 - "mro_x21_default",
68 - "nxp_fmuk66-e_default",
69 - "nxp_fmuk66-e_rtps",
70 - "nxp_fmuk66-e_socketcan",
71 - "nxp_fmuk66-v3_default",
72 - "nxp_fmuk66-v3_rtps",
73 - "nxp_fmuk66-v3_socketcan",
74 - "nxp_fmurt1062-v1_default",
75 - "nxp_ucans32k146_default",
76 - "nxp_ucans32k146_canbootloader",
77 - "omnibus_f4sd_default",
78 - "px4_fmu-v2_default",
79 - "px4_fmu-v2_fixedwing",
80 - "px4_fmu-v2_multicopter",
81 - "px4_fmu-v2_rover",
82 - "px4_fmu-v3_default",
83 - "px4_fmu-v4_cannode",
84 - "px4_fmu-v4_default",
85 - "px4_fmu-v4pro_default",
86 - "px4_fmu-v5_ctrlalloc",
87 - "px4_fmu-v5_debug",
88 - "px4_fmu-v5_default",
89 - "px4_fmu-v5_fixedwing",
90 - "px4_fmu-v5_multicopter",
91 - "px4_fmu-v5_optimized",
92 - "px4_fmu-v5_rover",
93 - "px4_fmu-v5_rtps",
94 - "px4_fmu-v5_stackcheck",
95 - "px4_fmu-v5_uavcanv0periph",
96 - "px4_fmu-v5_uavcanv1",
97 - "px4_fmu-v5x_base_phy_DP83848C",
98 - "px4_fmu-v5x_default",
99 - "px4_fmu-v6u_default",
100 - "px4_fmu-v6x_default",
101 - "px4_io-v2_default",
102 - "spracing_h7extreme_default",
103 - "uvify_core_default"
104 - ],
105 - image: docker_images.nuttx,
106 - archive: true
107 - ]
108 -
109 - def snapdragon_builds = [
110 - target: ["atlflight_eagle_qurt", "atlflight_eagle_default"],
111 - image: docker_images.snapdragon,
112 - archive: false
113 - ]
114 -
115 - def docker_builds = [
116 - armhf_builds, base_builds, nuttx_builds_archive//, snapdragon_builds
117 - ]
118 -
119 - for (def build_type = 0; build_type < docker_builds.size(); build_type++) {
120 - for (def build_target = 0; build_target < docker_builds[build_type].target.size(); build_target++) {
121 - build_nodes.put(docker_builds[build_type].target[build_target],
122 - createBuildNode(docker_builds[build_type].archive, docker_builds[build_type].image, docker_builds[build_type].target[build_target])
123 - )
124 - }
125 - }
126 -
127 - parallel build_nodes
128 -
129 - } // script
130 - } // steps
131 - } // stage Build
132 -
133 - // TODO: actually upload artifacts to S3
134 - // stage('S3 Upload') {
135 - // agent {
136 - // docker { image 'px4io/px4-dev-base-focal:2021-04-29' }
137 - // }
138 - // options {
139 - // skipDefaultCheckout()
140 - // }
141 - // when {
142 - // anyOf {
143 - // branch 'master'
144 - // branch 'beta'
145 - // branch 'stable'
146 - // branch 'pr-jenkins' // for testing
147 - // }
148 - // }
149 - // steps {
150 - // sh 'echo "uploading to S3"'
151 - // }
152 - // }
153 -
154 - } // stages
155 - environment {
156 - CCACHE_DIR = '/tmp/ccache'
157 - CI = true
158 - }
159 - options {
160 - buildDiscarder(logRotator(numToKeepStr: '5', artifactDaysToKeepStr: '14'))
161 - timeout(time: 90, unit: 'MINUTES')
162 - }
163 -}
164 -
165 -def createBuildNode(Boolean archive, String docker_image, String target) {
166 - return {
167 -
168 - // TODO: fix the snapdragon image
169 - bypass_entrypoint = ''
170 - if (docker_image == 'lorenzmeier/px4-dev-snapdragon:2020-04-01') {
171 - bypass_entrypoint = ' --entrypoint=""'
172 - }
173 -
174 - node {
175 - docker.withRegistry('https://registry.hub.docker.com', 'docker_hub_dagar') {
176 - docker.image(docker_image).inside('-e CCACHE_BASEDIR=${WORKSPACE} -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' + bypass_entrypoint) {
177 - stage(target) {
178 - try {
179 - sh('export')
180 - checkout(scm)
181 - sh('make distclean')
182 - sh('git fetch --tags')
183 - sh('ccache -s')
184 - sh('make ' + target)
185 - sh('ccache -s')
186 - sh('make sizes')
187 - if (archive) {
188 - archiveArtifacts(allowEmptyArchive: false, artifacts: 'build/*/*.px4, build/*/*.elf, build/*/*.bin', fingerprint: true, onlyIfSuccessful: true)
189 - }
190 - sh('make ' + target + ' package')
191 - archiveArtifacts(allowEmptyArchive: true, artifacts: 'build/*/*.tar.bz2', fingerprint: true, onlyIfSuccessful: true)
192 - archiveArtifacts(allowEmptyArchive: true, artifacts: 'build/*/*.deb', fingerprint: true, onlyIfSuccessful: true)
193 - }
194 - catch (exc) {
195 - throw (exc)
196 - }
197 - finally {
198 - sh('make distclean')
199 - }
200 - }
201 - }
202 - }
203 - }
204 - }
205 -}
1 -#!/usr/bin/env groovy
2 -
3 -pipeline {
4 - agent none
5 - stages {
6 - stage('Hardware Test') {
7 -
8 - parallel {
9 -
10 - stage("cubepilot_cubeorange_test") {
11 - stages {
12 - stage("build cubepilot_cubeorange_test") {
13 - agent {
14 - docker {
15 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
16 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
17 - }
18 - }
19 - steps {
20 - checkout scm
21 - sh 'export'
22 - sh 'make distclean'
23 - sh 'ccache -s'
24 - sh 'git fetch --tags'
25 - sh 'make cubepilot_cubeorange_test'
26 - sh 'make sizes'
27 - sh 'ccache -s'
28 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'cubepilot_cubeorange_test'
29 - }
30 - post {
31 - always {
32 - sh 'make distclean'
33 - }
34 - }
35 - } // stage build
36 - stage("test") {
37 - agent {
38 - label 'cubepilot_cubeorange'
39 - }
40 - stages {
41 - stage("flash") {
42 - steps {
43 - sh 'export'
44 - sh 'find /dev/serial'
45 - unstash 'cubepilot_cubeorange_test'
46 - // flash board and watch bootup
47 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cubepilot_cubeorange_test/cubepilot_cubeorange_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
48 - }
49 - }
50 - stage("configure") {
51 - steps {
52 - // configure
53 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
54 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 2000"'
55 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
56 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
57 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
58 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
59 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
60 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
61 - }
62 - }
63 - stage("status") {
64 - steps {
65 - statusFTDI()
66 - }
67 - }
68 - stage("tests") {
69 - steps {
70 - // run tests
71 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
72 - }
73 - }
74 - stage("reset") {
75 - steps {
76 - cleanupFTDI()
77 - }
78 - }
79 - }
80 - } // stage test
81 - }
82 - }
83 -
84 - stage("cuav_x7pro_test") {
85 - stages {
86 - stage("build cuav_x7pro_test") {
87 - agent {
88 - docker {
89 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
90 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
91 - }
92 - }
93 - steps {
94 - checkout scm
95 - sh 'export'
96 - sh 'make distclean'
97 - sh 'ccache -s'
98 - sh 'git fetch --tags'
99 - sh 'make cuav_x7pro_test'
100 - sh 'make sizes'
101 - sh 'ccache -s'
102 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'cuav_x7pro_test'
103 - }
104 - post {
105 - always {
106 - sh 'make distclean'
107 - }
108 - }
109 - } // stage build
110 - stage("test") {
111 - agent {
112 - label 'cuav_x7pro'
113 - }
114 - stages {
115 - stage("flash") {
116 - steps {
117 - sh 'export'
118 - sh 'find /dev/serial'
119 - unstash 'cuav_x7pro_test'
120 - // flash board and watch bootup
121 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cuav_x7pro_test/cuav_x7pro_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
122 - }
123 - }
124 - stage("configure") {
125 - steps {
126 - // configure
127 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
128 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
129 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
130 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
131 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
132 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
133 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
134 - }
135 - }
136 - stage("status") {
137 - steps {
138 - statusFTDI()
139 - }
140 - }
141 - stage("tests") {
142 - steps {
143 - // run tests
144 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
145 - }
146 - }
147 - stage("reset") {
148 - steps {
149 - cleanupFTDI()
150 - }
151 - }
152 - }
153 - } // stage test
154 - }
155 - }
156 -
157 - stage("px4_fmu-v3_test") {
158 - stages {
159 - stage("build px4_fmu-v3_test") {
160 - agent {
161 - docker {
162 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
163 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
164 - }
165 - }
166 - steps {
167 - checkout scm
168 - sh 'export'
169 - sh 'make distclean'
170 - sh 'ccache -s'
171 - sh 'git fetch --tags'
172 - sh 'make px4_fmu-v3_test'
173 - sh 'make sizes'
174 - sh 'ccache -s'
175 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v3_test'
176 - }
177 - post {
178 - always {
179 - sh 'make distclean'
180 - }
181 - }
182 - } // stage build
183 - stage("test") {
184 - agent {
185 - label 'px4_fmu-v3'
186 - }
187 - stages {
188 - stage("flash") {
189 - steps {
190 - sh 'export'
191 - sh 'find /dev/serial'
192 - unstash 'px4_fmu-v3_test'
193 - // flash board and watch bootup
194 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v3_test/px4_fmu-v3_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
195 - }
196 - }
197 - stage("configure") {
198 - steps {
199 - // configure
200 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
201 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard
202 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
203 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
204 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
205 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
206 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
207 - }
208 - }
209 - stage("status") {
210 - steps {
211 - statusFTDI()
212 - }
213 - }
214 - stage("tests") {
215 - steps {
216 - // run tests
217 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
218 - }
219 - }
220 - stage("reset") {
221 - steps {
222 - cleanupFTDI()
223 - }
224 - }
225 - }
226 - } // stage test
227 - }
228 - }
229 -
230 - stage("px4_fmu-v4_test") {
231 - stages {
232 - stage("build px4_fmu-v4_test") {
233 - agent {
234 - docker {
235 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
236 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
237 - }
238 - }
239 - steps {
240 - checkout scm
241 - sh 'export'
242 - sh 'make distclean'
243 - sh 'ccache -s'
244 - sh 'git fetch --tags'
245 - sh 'make px4_fmu-v4_test'
246 - sh 'make sizes'
247 - sh 'ccache -s'
248 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v4_test'
249 - }
250 - post {
251 - always {
252 - sh 'make distclean'
253 - }
254 - }
255 - } // stage build
256 - stage("test") {
257 - agent {
258 - label 'px4_fmu-v4'
259 - }
260 - stages {
261 - stage("flash") {
262 - steps {
263 - sh 'export'
264 - sh 'find /dev/serial'
265 - unstash 'px4_fmu-v4_test'
266 - // flash board and watch bootup
267 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4_test/px4_fmu-v4_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
268 - }
269 - }
270 - stage("configure") {
271 - steps {
272 - // configure
273 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
274 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
275 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
276 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
277 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
278 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
279 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
280 - }
281 - }
282 - stage("status") {
283 - steps {
284 - statusFTDI()
285 - }
286 - }
287 - stage("tests") {
288 - steps {
289 - // run tests
290 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
291 - }
292 - }
293 - stage("reset") {
294 - steps {
295 - cleanupFTDI()
296 - }
297 - }
298 - }
299 - } // stage test
300 - }
301 - }
302 -
303 - stage("px4_fmu-v4pro_test") {
304 - stages {
305 - stage("build px4_fmu-v4pro_test") {
306 - agent {
307 - docker {
308 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
309 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
310 - }
311 - }
312 - steps {
313 - checkout scm
314 - sh 'export'
315 - sh 'make distclean'
316 - sh 'ccache -s'
317 - sh 'git fetch --tags'
318 - sh 'make px4_fmu-v4pro_test'
319 - sh 'make sizes'
320 - sh 'ccache -s'
321 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v4pro_test'
322 - }
323 - post {
324 - always {
325 - sh 'make distclean'
326 - }
327 - }
328 - } // stage build
329 - stage("test") {
330 - agent {
331 - label 'px4_fmu-v4pro'
332 - }
333 - stages {
334 - stage("flash") {
335 - steps {
336 - sh 'export'
337 - sh 'find /dev/serial'
338 - unstash 'px4_fmu-v4pro_test'
339 - // flash board and watch bootup
340 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4pro_test/px4_fmu-v4pro_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
341 - }
342 - }
343 - stage("configure") {
344 - steps {
345 - // configure
346 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
347 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard
348 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
349 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
350 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
351 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
352 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
353 - }
354 - }
355 - stage("status") {
356 - steps {
357 - statusFTDI()
358 - }
359 - }
360 - stage("tests") {
361 - steps {
362 - // run tests
363 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
364 - }
365 - }
366 - stage("reset") {
367 - steps {
368 - cleanupFTDI()
369 - }
370 - }
371 - }
372 - } // stage test
373 - }
374 - }
375 -
376 - stage("px4_fmu-v5_test") {
377 - stages {
378 - stage("build px4_fmu-v5_test") {
379 - agent {
380 - docker {
381 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
382 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
383 - }
384 - }
385 - steps {
386 - checkout scm
387 - sh 'export'
388 - sh 'make distclean'
389 - sh 'ccache -s'
390 - sh 'git fetch --tags'
391 - sh 'make px4_fmu-v5_test'
392 - sh 'make sizes'
393 - sh 'ccache -s'
394 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v5_test'
395 - }
396 - post {
397 - always {
398 - sh 'make distclean'
399 - }
400 - }
401 - } // stage build
402 - stage("test") {
403 - agent {
404 - label 'px4_fmu-v5'
405 - }
406 - stages {
407 - stage("flash") {
408 - steps {
409 - sh 'export'
410 - sh 'find /dev/serial'
411 - unstash 'px4_fmu-v5_test'
412 - // flash board and watch bootup
413 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_test/px4_fmu-v5_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
414 - }
415 - }
416 - stage("configure") {
417 - steps {
418 - // configure
419 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
420 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
421 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
422 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
423 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
424 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
425 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
426 - }
427 - }
428 - stage("status") {
429 - steps {
430 - statusFTDI()
431 - }
432 - }
433 - stage("tests") {
434 - steps {
435 - // run tests
436 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
437 - }
438 - }
439 - stage("reset") {
440 - steps {
441 - cleanupFTDI()
442 - }
443 - }
444 - }
445 - } // stage test
446 - }
447 - }
448 -
449 - stage("px4_fmu-v5_debug") {
450 - stages {
451 - stage("build px4_fmu-v5_debug") {
452 - agent {
453 - docker {
454 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
455 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
456 - }
457 - }
458 - steps {
459 - checkout scm
460 - sh 'export'
461 - sh 'make distclean'
462 - sh 'ccache -s'
463 - sh 'git fetch --tags'
464 - sh 'make px4_fmu-v5_debug'
465 - sh 'make sizes'
466 - sh 'ccache -s'
467 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v5_debug'
468 - }
469 - post {
470 - always {
471 - sh 'make distclean'
472 - }
473 - }
474 - } // stage build
475 - stage("test") {
476 - agent {
477 - label 'px4_fmu-v5'
478 - }
479 - stages {
480 - stage("flash") {
481 - steps {
482 - sh 'export'
483 - sh 'find /dev/serial'
484 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001" || true' // generic multicopter
485 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250" || true'
486 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save" || true'
487 - unstash 'px4_fmu-v5_debug'
488 - // flash board and watch bootup
489 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_debug/px4_fmu-v5_debug.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
490 - }
491 - }
492 - stage("configure") {
493 - steps {
494 - // configure
495 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
496 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250"' // limit cpu usage
497 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
498 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
499 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
500 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
501 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
502 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
503 - }
504 - }
505 - stage("status") {
506 - steps {
507 - statusFTDI()
508 - }
509 - }
510 - stage("tests") {
511 - steps {
512 - // run tests
513 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
514 - }
515 - }
516 - stage("reset") {
517 - steps {
518 - cleanupFTDI()
519 - }
520 - }
521 - }
522 - } // stage test
523 - }
524 - }
525 -
526 - stage("px4_fmu-v5_optimized") {
527 - stages {
528 - stage("build px4_fmu-v5_optimized") {
529 - agent {
530 - docker {
531 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
532 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
533 - }
534 - }
535 - steps {
536 - checkout scm
537 - sh 'export'
538 - sh 'make distclean'
539 - sh 'ccache -s'
540 - sh 'git fetch --tags'
541 - sh 'make px4_fmu-v5_optimized'
542 - sh 'make sizes'
543 - sh 'ccache -s'
544 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v5_optimized'
545 - }
546 - post {
547 - always {
548 - sh 'make distclean'
549 - }
550 - }
551 - } // stage build
552 - stage("test") {
553 - agent {
554 - label 'px4_fmu-v5'
555 - }
556 - stages {
557 - stage("flash") {
558 - steps {
559 - sh 'export'
560 - sh 'find /dev/serial'
561 - unstash 'px4_fmu-v5_optimized'
562 - // flash board and watch bootup
563 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_optimized/px4_fmu-v5_optimized.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
564 - }
565 - }
566 - stage("configure") {
567 - steps {
568 - // configure
569 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
570 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
571 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
572 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
573 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
574 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
575 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
576 - }
577 - }
578 - stage("status") {
579 - steps {
580 - statusFTDI()
581 - }
582 - }
583 - stage("tests") {
584 - steps {
585 - // run tests
586 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
587 - }
588 - }
589 - stage("reset") {
590 - steps {
591 - cleanupFTDI()
592 - }
593 - }
594 - }
595 - } // stage test
596 - }
597 - }
598 -
599 - stage("px4_fmu-v5_stackcheck") {
600 - stages {
601 - stage("build px4_fmu-v5_stackcheck") {
602 - agent {
603 - docker {
604 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
605 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
606 - }
607 - }
608 - steps {
609 - checkout scm
610 - sh 'export'
611 - sh 'make distclean'
612 - sh 'ccache -s'
613 - sh 'git fetch --tags'
614 - sh 'make px4_fmu-v5_stackcheck'
615 - sh 'make sizes'
616 - sh 'ccache -s'
617 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v5_stackcheck'
618 - }
619 - post {
620 - always {
621 - sh 'make distclean'
622 - }
623 - }
624 - } // stage build
625 - stage("test") {
626 - agent {
627 - label 'px4_fmu-v5'
628 - }
629 - stages {
630 - stage("flash") {
631 - steps {
632 - sh 'export'
633 - sh 'find /dev/serial'
634 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001" || true' // generic multicopter
635 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250" || true'
636 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save" || true'
637 - unstash 'px4_fmu-v5_stackcheck'
638 - // flash board and watch bootup
639 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_stackcheck/px4_fmu-v5_stackcheck.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
640 - }
641 - }
642 - stage("configure") {
643 - steps {
644 - // configure
645 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
646 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250"' // limit cpu usage
647 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_0_CONFIG 0"' // limit cpu usage
648 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
649 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
650 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
651 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
652 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
653 - }
654 - }
655 - stage("status") {
656 - steps {
657 - statusFTDI()
658 - }
659 - }
660 - stage("tests") {
661 - steps {
662 - // run tests
663 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
664 - }
665 - }
666 - stage("reset") {
667 - steps {
668 - cleanupFTDI()
669 - }
670 - }
671 - }
672 - } // stage test
673 - }
674 - }
675 -
676 - stage("modalai_fc-v1_test") {
677 - stages {
678 - stage("build modalai_fc-v1_test") {
679 - agent {
680 - docker {
681 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
682 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
683 - }
684 - }
685 - steps {
686 - checkout scm
687 - sh 'export'
688 - sh 'make distclean'
689 - sh 'ccache -s'
690 - sh 'git fetch --tags'
691 - sh 'make modalai_fc-v1_test'
692 - sh 'make sizes'
693 - sh 'ccache -s'
694 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'modalai_fc-v1_test'
695 - }
696 - post {
697 - always {
698 - sh 'make distclean'
699 - }
700 - }
701 - } // stage build
702 - stage("test") {
703 - agent {
704 - label 'modalai_fc-v1'
705 - }
706 - stages {
707 - stage("flash") {
708 - steps {
709 - sh 'export'
710 - sh 'find /dev/serial'
711 - unstash 'modalai_fc-v1_test'
712 - // flash board and watch bootup
713 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/modalai_fc-v1_test/modalai_fc-v1_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
714 - }
715 - }
716 - stage("configure") {
717 - steps {
718 - // configure
719 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
720 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
721 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
722 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
723 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
724 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
725 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
726 - }
727 - }
728 - stage("status") {
729 - steps {
730 - statusFTDI()
731 - }
732 - }
733 - stage("tests") {
734 - steps {
735 - // run tests
736 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
737 - }
738 - }
739 - stage("reset") {
740 - steps {
741 - cleanupFTDI()
742 - }
743 - }
744 - }
745 - } // stage test
746 - }
747 - }
748 -
749 - stage("holybro_durandal-v1_test") {
750 - stages {
751 - stage("build holybro_durandal-v1_test") {
752 - agent {
753 - docker {
754 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
755 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
756 - }
757 - }
758 - steps {
759 - checkout scm
760 - sh 'export'
761 - sh 'make distclean'
762 - sh 'ccache -s'
763 - sh 'git fetch --tags'
764 - sh 'make holybro_durandal-v1_test'
765 - sh 'make sizes'
766 - sh 'ccache -s'
767 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'holybro_durandal-v1_test'
768 - }
769 - post {
770 - always {
771 - sh 'make distclean'
772 - }
773 - }
774 - } // stage build
775 - stage("test") {
776 - agent {
777 - label 'holybro_durandal-v1'
778 - }
779 - stages {
780 - stage("flash") {
781 - steps {
782 - sh 'export'
783 - sh 'find /dev/serial'
784 - unstash 'holybro_durandal-v1_test'
785 - // flash board and watch bootup
786 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/holybro_durandal-v1_test/holybro_durandal-v1_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
787 - }
788 - }
789 - stage("configure") {
790 - steps {
791 - // configure
792 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
793 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
794 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
795 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
796 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
797 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
798 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
799 - }
800 - }
801 - stage("status") {
802 - steps {
803 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "dshot status"'
804 - statusFTDI()
805 - }
806 - }
807 - stage("tests") {
808 - steps {
809 - // run tests
810 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*`'
811 - }
812 - }
813 - stage("reset") {
814 - steps {
815 - cleanupFTDI()
816 - }
817 - }
818 - }
819 - } // stage test
820 - }
821 - }
822 -
823 - stage("nxp_fmuk66-v3_test") {
824 - stages {
825 - stage("build nxp_fmuk66-v3_test") {
826 - agent {
827 - docker {
828 - image 'px4io/px4-dev-nuttx-focal:2021-04-29'
829 - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
830 - }
831 - }
832 - steps {
833 - checkout scm
834 - sh 'export'
835 - sh 'make distclean'
836 - sh 'ccache -s'
837 - sh 'git fetch --tags'
838 - sh 'make nxp_fmuk66-v3_test'
839 - sh 'make sizes'
840 - sh 'ccache -s'
841 - stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'nxp_fmuk66-v3_test'
842 - }
843 - post {
844 - always {
845 - sh 'make distclean'
846 - }
847 - }
848 - } // stage build
849 - stage("test") {
850 - agent {
851 - label 'nxp_fmuk66-v3'
852 - }
853 - stages {
854 - stage("flash") {
855 - steps {
856 - sh 'export'
857 - sh 'find /dev/serial'
858 - unstash 'nxp_fmuk66-v3_test'
859 - // flash board and watch bootup
860 - sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/nxp_fmuk66-v3_test/nxp_fmuk66-v3_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
861 - }
862 - }
863 - stage("configure") {
864 - steps {
865 - // configure
866 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
867 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
868 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
869 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
870 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
871 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
872 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
873 - }
874 - }
875 - stage("status") {
876 - steps {
877 - statusFTDI()
878 - }
879 - }
880 - stage("tests") {
881 - steps {
882 - // run tests
883 - sh './Tools/HIL/run_tests.py --device `find /dev/serial -name *usb-*` || true' // allow failure due to intermittent serial console issues
884 - }
885 - }
886 - stage("reset") {
887 - steps {
888 - cleanupFTDI()
889 - }
890 - }
891 - }
892 - } // stage test
893 - }
894 - }
895 -
896 - } // parallel
897 - } // stage Hardware Test
898 - } // stages
899 - environment {
900 - CCACHE_DIR = '/tmp/ccache'
901 - CI = true
902 - }
903 - options {
904 - buildDiscarder(logRotator(numToKeepStr: '30', artifactDaysToKeepStr: '60'))
905 - timeout(time: 120, unit: 'MINUTES')
906 - skipDefaultCheckout()
907 - }
908 -}
909 -
910 -void statusFTDI() {
911 - // run logger
912 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger on"'
913 - // status commands
914 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "free"'
915 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "work_queue status"'
916 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "board_adc test"'
917 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander check"'
918 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander status"'
919 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander calibrate accel quick; sleep 2; param show CAL_ACC*"'
920 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander calibrate gyro; sleep 2; param show CAL_GYRO*"'
921 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander calibrate level; sleep 2; param show SENS_BOARD*"'
922 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander calibrate mag quick; sleep 2; param show CAL_MAG*"'
923 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "dataman status"'
924 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "df"'
925 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "dmesg"'
926 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "gps status"'
927 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "gyro_calibration status; param show CAL_GYRO*"'
928 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener adc_report"'
929 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener battery_status"'
930 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener cpuload"'
931 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_attitude"'
932 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_event_flags"'
933 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_local_position"'
934 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_selector_status"'
935 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_sensor_bias"'
936 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_status"'
937 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener estimator_status_flags"'
938 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener logger_status"'
939 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener parameter_update"'
940 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener px4io_status"'
941 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_accel"'
942 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_accel_fifo"'
943 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_baro"'
944 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_combined"'
945 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gps"'
946 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gyro"'
947 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gyro_fifo"'
948 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_mag"'
949 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_selection"'
950 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensors_status_imu"'
951 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener system_power"'
952 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener telemetry_status"'
953 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_air_data"'
954 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_angular_acceleration"'
955 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_angular_velocity"'
956 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_attitude"'
957 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_gps_position"'
958 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_imu"'
959 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_imu_status"'
960 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_local_position"'
961 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_magnetometer"'
962 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_status"'
963 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_status_flags"'
964 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger status"'
965 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /"'
966 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /dev"'
967 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /etc"'
968 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /obj"'
969 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ls /proc"'
970 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "cat /proc/meminfo"'
971 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "cat /proc/uptime"'
972 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mavlink status streams"'
973 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mavlink status"'
974 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mount"'
975 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mtd status"'
976 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
977 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
978 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "perf latency"'
979 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "perf"'
980 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ps"'
981 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "pwm info -d /dev/pwm_output0"'
982 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "pwm info -d /dev/pwm_output1"'
983 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "pwm_out status"'
984 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io status"'
985 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sd_bench -r 2"'
986 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "sensors status"'
987 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener cpuload; top once; listener cpuload"'
988 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb status"'
989 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "uorb top -1 -a"'
990 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ver all"'
991 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "work_queue status"'
992 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "gyro_calibration status; param show CAL_GYRO*"'
993 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "ekf2 status"'
994 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "free"'
995 - // stop logger
996 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger off"'
997 -}
998 -
999 -void cleanupFTDI() {
1000 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "commander stop"'
1001 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mavlink stop-all"'
1002 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "navigator stop"'
1003 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "dataman stop"'
1004 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "logger off"'
1005 -
1006 - // wipe sdcard
1007 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "umount /fs/microsd"'
1008 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mkfatfs /dev/mmcsd0"'
1009 -
1010 - // drop any uncommited hardfaults
1011 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "hardfault_log rearm"'
1012 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "hardfault_log reset"'
1013 -
1014 - // erase mtd
1015 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mtd readtest"'
1016 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mtd rwtest"'
1017 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "mtd erase"'
1018 -
1019 - // disable buzzer and cleanup storage
1020 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param reset_all"'
1021 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"'
1022 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SDLOG_DIRS_MAX 1"'
1023 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
1024 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
1025 -
1026 - // reboot
1027 - sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true'
1028 -}
1 ----
2 -Checks: '*,
3 - -android*,
4 - -bugprone-integer-division,
5 - -cert-dcl50-cpp,
6 - -cert-env33-c,
7 - -cert-err34-c,
8 - -cert-err58-cpp,
9 - -cert-msc30-c,
10 - -cert-msc50-cpp,
11 - -clang-analyzer-core.CallAndMessage,
12 - -clang-analyzer-core.NullDereference,
13 - -clang-analyzer-core.UndefinedBinaryOperatorResult,
14 - -clang-analyzer-core.uninitialized.Assign,
15 - -clang-analyzer-core.VLASize,
16 - -clang-analyzer-cplusplus.NewDelete,
17 - -clang-analyzer-cplusplus.NewDeleteLeaks,
18 - -clang-analyzer-deadcode.DeadStores,
19 - -clang-analyzer-optin.cplusplus.VirtualCall,
20 - -clang-analyzer-optin.performance.Padding,
21 - -clang-analyzer-security.insecureAPI.strcpy,
22 - -clang-analyzer-unix.API,
23 - -clang-analyzer-unix.cstring.BadSizeArg,
24 - -clang-analyzer-unix.Malloc,
25 - -clang-analyzer-unix.MallocSizeof,
26 - -cppcoreguidelines-c-copy-assignment-signature,
27 - -cppcoreguidelines-interfaces-global-init,
28 - -cppcoreguidelines-no-malloc,
29 - -cppcoreguidelines-owning-memory,
30 - -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
31 - -cppcoreguidelines-pro-bounds-constant-array-index,
32 - -cppcoreguidelines-pro-bounds-pointer-arithmetic,
33 - -cppcoreguidelines-pro-type-const-cast,
34 - -cppcoreguidelines-pro-type-cstyle-cast,
35 - -cppcoreguidelines-pro-type-member-init,
36 - -cppcoreguidelines-pro-type-reinterpret-cast,
37 - -cppcoreguidelines-pro-type-union-access,
38 - -cppcoreguidelines-pro-type-vararg,
39 - -cppcoreguidelines-special-member-functions,
40 - -fuchsia-default-arguments,
41 - -fuchsia-overloaded-operator,
42 - -google-build-using-namespace,
43 - -google-explicit-constructor,
44 - -google-global-names-in-headers,
45 - -google-readability-casting,
46 - -google-readability-function-size,
47 - -google-readability-namespace-comments,
48 - -google-readability-todo,
49 - -google-runtime-int,
50 - -google-runtime-references,
51 - -hicpp-deprecated-headers,
52 - -hicpp-explicit-conversions,
53 - -hicpp-function-size,
54 - -hicpp-member-init,
55 - -hicpp-no-array-decay,
56 - -hicpp-no-assembler,
57 - -hicpp-no-malloc,
58 - -hicpp-signed-bitwise,
59 - -hicpp-special-member-functions,
60 - -hicpp-use-auto,
61 - -hicpp-use-equals-default,
62 - -hicpp-use-equals-delete,
63 - -hicpp-use-override,
64 - -hicpp-vararg,
65 - -llvm-header-guard,
66 - -llvm-include-order,
67 - -llvm-namespace-comment,
68 - -misc-incorrect-roundings,
69 - -misc-macro-parentheses,
70 - -misc-misplaced-widening-cast,
71 - -misc-redundant-expression,
72 - -misc-unconventional-assign-operator,
73 - -misc-unused-parameters,
74 - -modernize-deprecated-headers,
75 - -modernize-loop-convert,
76 - -modernize-pass-by-value,
77 - -modernize-return-braced-init-list,
78 - -modernize-use-auto,
79 - -modernize-use-bool-literals,
80 - -modernize-use-default-member-init,
81 - -modernize-use-equals-default,
82 - -modernize-use-equals-delete,
83 - -modernize-use-override,
84 - -modernize-use-using,
85 - -performance-inefficient-string-concatenation,
86 - -readability-avoid-const-params-in-decls,
87 - -readability-container-size-empty,
88 - -readability-else-after-return,
89 - -readability-function-size,
90 - -readability-implicit-bool-cast,
91 - -readability-implicit-bool-conversion,
92 - -readability-inconsistent-declaration-parameter-name,
93 - -readability-named-parameter,
94 - -readability-non-const-parameter,
95 - -readability-redundant-declaration,
96 - -readability-static-accessed-through-instance,
97 - -readability-static-definition-in-anonymous-namespace,
98 - '
99 -WarningsAsErrors: '*'
100 -CheckOptions:
101 - - key: google-readability-function-size.BranchThreshold
102 - value: '600'
103 - - key: google-readability-function-size.LineThreshold
104 - value: '4000'
105 - - key: google-readability-function-size.StatementThreshold
106 - value: '4000'
107 -...
1 -// For format details, see https://aka.ms/vscode-remote/devcontainer.json or this file's README at:
2 -// https://github.com/microsoft/vscode-dev-containers/tree/v0.134.0/containers/cpp
3 -{
4 - "name": "px4-dev-nuttx",
5 - "image": "px4io/px4-dev-nuttx-focal:2021-04-29",
6 -
7 - "runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ],
8 -
9 - // Set *default* container specific settings.json values on container create.
10 - "settings": {
11 - "terminal.integrated.shell.linux": "/bin/bash"
12 - },
13 -
14 - // Add the IDs of extensions you want installed when the container is created.
15 - "extensions": [
16 - "chiehyu.vscode-astyle",
17 - "dan-c-underwood.arm",
18 - "fredericbonnet.cmake-test-adapter",
19 - "github.vscode-pull-request-github",
20 - "marus25.cortex-debug",
21 - "ms-azuretools.vscode-docker",
22 - "ms-iot.vscode-ros",
23 - "ms-python.python",
24 - "ms-vscode.cmake-tools",
25 - "ms-vscode.cpptools",
26 - "ms-vscode.cpptools-extension-pack",
27 - "redhat.vscode-yaml",
28 - "streetsidesoftware.code-spell-checker",
29 - "twxs.cmake",
30 - "uavcan.dsdl",
31 - "wholroyd.jinja",
32 - "zixuanwang.linkerscript"
33 - ],
34 -
35 - "containerUser": "user",
36 - "containerEnv": {
37 - "LOCAL_USER_ID": "${localEnv:UID}"
38 - },
39 -
40 - // Use 'forwardPorts' to make a list of ports inside the container available locally.
41 - "forwardPorts": [14556],
42 -}
1 -* text=auto eol=lf
2 -
3 -*.cmake text eol=lf
4 -*.c text eol=lf
5 -*.cc text eol=lf
6 -*.cpp text eol=lf
7 -*.h text eol=lf
8 -*.hh text eol=lf
9 -*.hpp text eol=lf
10 -*.hxx text eol=lf
11 -*.S text eol=lf
12 -
13 -*.ipynb text eol=lf
14 -*.m text eol=lf
15 -*.mat binary
16 -*.py text eol=lf
17 -
18 -*.java text eol=lf
19 -*.jar binary
20 -*.xml text eol=lf
21 -
22 -# PX4 mixers, msgs, etc
23 -*.bin binary
24 -*.mix text eol=lf
25 -*.msg text eol=lf
26 -*.config text eol=lf
27 -*.sdf text eol=lf
28 -*.uavcan text eol=lf
29 -
30 -# NuttX
31 -Makefile.* text eol=lf
32 -*.defs text eol=lf
33 -*.ld text eol=lf
34 -
35 -*.csv text eol=lf
36 -*.md text eol=lf
37 -*.txt text eol=lf
38 -
39 -# Scripts
40 -*.bash text eol=lf
41 -*.sh text eol=lf
42 -*.zsh text eol=lf
43 -# These are explicitly windows files and should use crlf
44 -*.ps1 text eol=crlf
45 -*.{cmd,[cC][mM][dD]} text eol=crlf
46 -*.{bat,[bB][aA][tT]} text eol=crlf
47 -
48 -# Serialisation
49 -*.json text eol=lf
50 -*.toml text eol=lf
51 -*.xml text eol=lf
52 -*.yaml text eol=lf
53 -*.yml text eol=lf
54 -
55 -# Graphics
56 -*.png binary
57 -*.jpg binary
58 -*.jpeg binary
59 -*.gif binary
60 -*.tif binary
61 -*.tiff binary
62 -*.ico binary
63 -*.pdf binary
64 -# SVG treated as an asset (binary) by default.
65 -*.svg text eol=lf
66 -
67 -# Text files where line endings should be preserved
68 -*.patch -text
69 -
70 -# Archives
71 -*.7z binary
72 -*.gz binary
73 -*.tar binary
74 -*.tgz binary
75 -*.zip binary
76 -
77 -# everything else
78 -.gitattributes text eol=lf
79 -.gitignore text eol=lf
80 -Makefile text eol=lf
1 ----
2 -name: Bug report
3 -about: Create a report to help us improve
4 -
5 ----
6 -
7 -**Describe the bug**
8 -A clear and concise description of the bug.
9 -
10 -**To Reproduce**
11 -Steps to reproduce the behavior:
12 -1. Drone switched on '...'
13 -2. Uploaded mission '....' (attach QGC mission file)
14 -3. Took off '....'
15 -4. See error
16 -
17 -**Expected behavior**
18 -A clear and concise description of what you expected to happen.
19 -
20 -**Log Files and Screenshots**
21 -*Always* provide a link to the flight log file:
22 -- Download the flight log file from the vehicle ([tutorial](https://docs.px4.io/master/en/getting_started/flight_reporting.html)).
23 -- Share the link to a log showing the problem on [PX4 Flight Review](http://logs.px4.io/).
24 -
25 -Add screenshots to help explain your problem.
26 -
27 -**Drone (please complete the following information):**
28 -- Describe the type of drone.
29 -- Photo of the IMU / autopilot setup if possible.
30 -
31 -**Additional context**
32 -Add any other context about the problem here.
1 ----
2 -name: 🚀 Feature Request
3 -about: Suggest an idea for this project
4 -
5 ----
6 -
7 -For general questions please use [PX4 Discuss](http://discuss.px4.io/) or [Slack](http://slack.px4.io/).
8 -
9 -**Describe problem solved by the proposed feature**
10 -A clear and concise description of the problem, if any, this feature will solve. E.g. I'm always frustrated when ...
11 -
12 -**Describe your preferred solution**
13 -A clear and concise description of what you want to happen.
14 -
15 -**Describe possible alternatives**
16 -A clear and concise description of alternative solutions or features you've considered.
17 -
18 -**Additional context**
19 -Add any other context or screenshots for the feature request here.
1 ----
2 -name: ⛔ Support Question
3 -about: See [PX4 Discuss](http://discuss.px4.io/) for questions about using PX4.
4 -
5 ----
6 -
7 -We use GitHub issues only to discuss PX4 bugs and new features. For
8 -questions about using PX4 or related components, please use [PX4 Discuss](http://discuss.px4.io/).
9 -
10 -Thanks!
1 ----
2 -name: ⛔ Documentation Issue
3 -about: See https://github.com/PX4/Devguide for documentation issues
4 -
5 ----
6 -
7 -PX4 has dedicated repositories for developer documentation (https://github.com/PX4/Devguide) and user documentation (https://github.com/PX4/px4_user_guide).
8 -
9 -Thanks!
1 -# Number of days of inactivity before an issue becomes stale
2 -daysUntilStale: 90
3 -# Number of days of inactivity before a stale issue is closed, or `false` to disable
4 -daysUntilClose: false
5 -# Issues with these labels will never be considered stale
6 -exemptLabels:
7 - - pinned
8 -# Label to use when marking an issue as stale
9 -staleLabel: stale
10 -# Comment to post when marking an issue as stale. Set to `false` to disable
11 -markComment: >
12 - This issue has been automatically marked as stale because it has not had
13 - recent activity. Thank you for your contributions.
14 -# Comment to post when closing a stale issue. Set to `false` to disable
15 -closeComment: false
1 -name: Checks
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - strategy:
15 - fail-fast: false
16 - matrix:
17 - check: [
18 - "check_format",
19 - "tests",
20 - "tests_coverage",
21 - "px4_fmu-v2_default stack_check",
22 - "validate_module_configs",
23 - "shellcheck_all",
24 - "NO_NINJA_BUILD=1 px4_fmu-v5_default",
25 - "NO_NINJA_BUILD=1 px4_sitl_default",
26 - "airframe_metadata",
27 - "module_documentation",
28 - "parameters_metadata",
29 - ]
30 - container:
31 - image: px4io/px4-dev-nuttx-focal:2021-04-29
32 - options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
33 - steps:
34 - - uses: actions/checkout@v1
35 - with:
36 - token: ${{ secrets.ACCESS_TOKEN }}
37 -
38 - - name: Prepare ccache timestamp
39 - id: ccache_cache_timestamp
40 - shell: cmake -P {0}
41 - run: |
42 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
43 - message("::set-output name=timestamp::${current_date}")
44 - - name: ccache cache files
45 - uses: actions/cache@v2
46 - with:
47 - path: ~/.ccache
48 - key: tests_${{matrix.ubuntu_release}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
49 - restore-keys: tests_${{matrix.ubuntu_release}}-ccache-
50 - - name: setup ccache
51 - run: |
52 - mkdir -p ~/.ccache
53 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
54 - echo "compression = true" >> ~/.ccache/ccache.conf
55 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
56 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
57 - ccache -s
58 - ccache -z
59 - - name: check environment
60 - run: |
61 - export
62 - ulimit -a
63 - - name: ${{matrix.check}}
64 - run: make ${{matrix.check}}
65 - - name: upload coverage
66 - if: contains(matrix.check, 'coverage')
67 - uses: codecov/codecov-action@v1
68 - with:
69 - token: ${{ secrets.CODECOV_TOKEN }}
70 - flags: unittests
71 - file: coverage/lcov.info
1 -name: Clang Tidy
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - container: px4io/px4-dev-clang:2021-04-29
15 - steps:
16 - - uses: actions/checkout@v1
17 - with:
18 - token: ${{secrets.ACCESS_TOKEN}}
19 -
20 - - name: Prepare ccache timestamp
21 - id: ccache_cache_timestamp
22 - shell: cmake -P {0}
23 - run: |
24 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
25 - message("::set-output name=timestamp::${current_date}")
26 - - name: ccache cache files
27 - uses: actions/cache@v2
28 - with:
29 - path: ~/.ccache
30 - key: clang-tidy-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
31 - restore-keys: clang-tidy-ccache-
32 - - name: setup ccache
33 - run: |
34 - mkdir -p ~/.ccache
35 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
36 - echo "compression = true" >> ~/.ccache/ccache.conf
37 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
38 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
39 - ccache -s
40 - ccache -z
41 -
42 - - name: make clang-tidy-quiet
43 - run: |
44 - ccache -z
45 - make clang-tidy-quiet
46 - ccache -s
1 -name: Linux Targets
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - container: px4io/px4-dev-armhf:2021-04-29
15 - strategy:
16 - matrix:
17 - config: [
18 - beaglebone_blue_default,
19 - emlid_navio2_default,
20 - px4_raspberrypi_default,
21 - scumaker_pilotpi_default,
22 - ]
23 - steps:
24 - - uses: actions/checkout@v1
25 - with:
26 - token: ${{secrets.ACCESS_TOKEN}}
27 -
28 - - name: Prepare ccache timestamp
29 - id: ccache_cache_timestamp
30 - shell: cmake -P {0}
31 - run: |
32 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
33 - message("::set-output name=timestamp::${current_date}")
34 - - name: ccache cache files
35 - uses: actions/cache@v2
36 - with:
37 - path: ~/.ccache
38 - key: ${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
39 - restore-keys: ${{matrix.config}}-ccache-
40 - - name: setup ccache
41 - run: |
42 - mkdir -p ~/.ccache
43 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
44 - echo "compression = true" >> ~/.ccache/ccache.conf
45 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
46 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
47 - ccache -s
48 - ccache -z
49 -
50 - - name: make ${{matrix.config}}
51 - run: make ${{matrix.config}}
52 - - name: ccache post-run
53 - run: ccache -s
1 -name: Linux ARM64 Targets
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - container: px4io/px4-dev-aarch64:2021-04-29
15 - strategy:
16 - matrix:
17 - config: [
18 - scumaker_pilotpi_arm64,
19 - ]
20 - steps:
21 - - uses: actions/checkout@v1
22 - with:
23 - token: ${{secrets.ACCESS_TOKEN}}
24 -
25 - - name: Prepare ccache timestamp
26 - id: ccache_cache_timestamp
27 - shell: cmake -P {0}
28 - run: |
29 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
30 - message("::set-output name=timestamp::${current_date}")
31 - - name: ccache cache files
32 - uses: actions/cache@v2
33 - with:
34 - path: ~/.ccache
35 - key: ${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
36 - restore-keys: ${{matrix.config}}-ccache-
37 - - name: setup ccache
38 - run: |
39 - mkdir -p ~/.ccache
40 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
41 - echo "compression = true" >> ~/.ccache/ccache.conf
42 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
43 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
44 - ccache -s
45 - ccache -z
46 -
47 - - name: make ${{matrix.config}}
48 - run: make ${{matrix.config}}
49 - - name: ccache post-run
50 - run: ccache -s
1 -name: MacOS build
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: macos-10.15
14 - strategy:
15 - matrix:
16 - config: [
17 - px4_fmu-v5_default,
18 - px4_sitl
19 - #tests, # includes px4_sitl
20 - ]
21 - steps:
22 - - uses: actions/checkout@v1
23 - with:
24 - token: ${{secrets.ACCESS_TOKEN}}
25 -
26 - - name: setup
27 - run: ./Tools/setup/macos.sh; ./Tools/setup/macos.sh
28 -
29 - - name: Prepare ccache timestamp
30 - id: ccache_cache_timestamp
31 - shell: cmake -P {0}
32 - run: |
33 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
34 - message("::set-output name=timestamp::${current_date}")
35 - - name: ccache cache files
36 - uses: actions/cache@v2
37 - with:
38 - path: ~/.ccache
39 - key: macos_${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
40 - restore-keys: macos_${{matrix.config}}-ccache-
41 - - name: setup ccache
42 - run: |
43 - mkdir -p ~/.ccache
44 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
45 - echo "compression = true" >> ~/.ccache/ccache.conf
46 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
47 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
48 - ccache -s
49 - ccache -z
50 -
51 - - name: make ${{matrix.config}}
52 - run: |
53 - ccache -z
54 - make ${{matrix.config}}
55 - ccache -s
1 -name: Nuttx Targets
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - container: px4io/px4-dev-nuttx-focal:2021-04-29
15 - strategy:
16 - matrix:
17 - config: [
18 - airmind_mindpx-v2_default,
19 - ark_can-flow_canbootloader,
20 - ark_can-flow_debug,
21 - ark_can-flow_default,
22 - ark_can-gps_canbootloader,
23 - ark_can-gps_debug,
24 - ark_can-gps_default,
25 - av_x-v1_default,
26 - bitcraze_crazyflie21_default,
27 - bitcraze_crazyflie_default,
28 - cuav_can-gps-v1_canbootloader,
29 - cuav_can-gps-v1_debug,
30 - cuav_can-gps-v1_default,
31 - cuav_nora_default,
32 - cuav_x7pro_default,
33 - cubepilot_cubeorange_default,
34 - cubepilot_cubeorange_test,
35 - cubepilot_cubeyellow_default,
36 - cubepilot_cubeyellow_test,
37 - cubepilot_io-v2_default,
38 - freefly_can-rtk-gps_canbootloader,
39 - freefly_can-rtk-gps_default,
40 - holybro_can-gps-v1_canbootloader,
41 - holybro_can-gps-v1_debug,
42 - holybro_can-gps-v1_default,
43 - holybro_durandal-v1_default,
44 - holybro_kakutef7_default,
45 - holybro_pix32v5_default,
46 - modalai_fc-v1_default,
47 - modalai_fc-v1_rtps,
48 - modalai_fc-v2_default,
49 - mro_ctrl-zero-f7-oem_default,
50 - mro_ctrl-zero-f7_default,
51 - mro_ctrl-zero-h7-oem_default,
52 - mro_ctrl-zero-h7_default,
53 - mro_pixracerpro_default,
54 - mro_x21-777_default,
55 - mro_x21_default,
56 - nxp_fmuk66-e_default,
57 - nxp_fmuk66-e_rtps,
58 - nxp_fmuk66-e_socketcan,
59 - nxp_fmuk66-v3_default,
60 - nxp_fmuk66-v3_rtps,
61 - nxp_fmuk66-v3_socketcan,
62 - nxp_fmurt1062-v1_default,
63 - nxp_ucans32k146_canbootloader,
64 - nxp_ucans32k146_default,
65 - omnibus_f4sd_default,
66 - px4_fmu-v2_default,
67 - px4_fmu-v2_fixedwing,
68 - px4_fmu-v2_multicopter,
69 - px4_fmu-v2_rover,
70 - px4_fmu-v3_default,
71 - px4_fmu-v4_cannode,
72 - px4_fmu-v4_default,
73 - px4_fmu-v4pro_default,
74 - px4_fmu-v5_ctrlalloc,
75 - px4_fmu-v5_debug,
76 - px4_fmu-v5_default,
77 - px4_fmu-v5_fixedwing,
78 - px4_fmu-v5_multicopter,
79 - px4_fmu-v5_optimized,
80 - px4_fmu-v5_rover,
81 - px4_fmu-v5_rtps,
82 - px4_fmu-v5_stackcheck,
83 - px4_fmu-v5_uavcanv0periph,
84 - px4_fmu-v5_uavcanv1,
85 - px4_fmu-v5x_base_phy_DP83848C,
86 - px4_fmu-v5x_default,
87 - px4_fmu-v6u_default,
88 - px4_fmu-v6x_default,
89 - px4_io-v2_default,
90 - spracing_h7extreme_default,
91 - uvify_core_default
92 - ]
93 - steps:
94 - - uses: actions/checkout@v1
95 - with:
96 - token: ${{secrets.ACCESS_TOKEN}}
97 -
98 - - name: Prepare ccache timestamp
99 - id: ccache_cache_timestamp
100 - shell: cmake -P {0}
101 - run: |
102 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
103 - message("::set-output name=timestamp::${current_date}")
104 - - name: ccache cache files
105 - uses: actions/cache@v2
106 - with:
107 - path: ~/.ccache
108 - key: ${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
109 - restore-keys: ${{matrix.config}}-ccache-
110 - - name: setup ccache
111 - run: |
112 - mkdir -p ~/.ccache
113 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
114 - echo "compression = true" >> ~/.ccache/ccache.conf
115 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
116 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
117 - ccache -s
118 - ccache -z
119 -
120 - - name: make ${{matrix.config}}
121 - run: make ${{matrix.config}}
122 - - name: make ${{matrix.config}} bloaty_compileunits
123 - run: make ${{matrix.config}} bloaty_compileunits || true
124 - - name: make ${{matrix.config}} bloaty_inlines
125 - run: make ${{matrix.config}} bloaty_inlines || true
126 - - name: make ${{matrix.config}} bloaty_segments
127 - run: make ${{matrix.config}} bloaty_segments || true
128 - - name: make ${{matrix.config}} bloaty_symbols
129 - run: make ${{matrix.config}} bloaty_symbols || true
130 - - name: make ${{matrix.config}} bloaty_templates
131 - run: make ${{matrix.config}} bloaty_templates || true
132 - - name: make ${{matrix.config}} bloaty_ram
133 - run: make ${{matrix.config}} bloaty_ram || true
134 - - name: make ${{matrix.config}} bloaty_compare_master
135 - run: make ${{matrix.config}} bloaty_compare_master || true
136 - - name: ccache post-run
137 - run: ccache -s
138 -
139 - - name: Upload px4 package
140 - uses: actions/upload-artifact@v1
141 - with:
142 - name: px4_package_${{matrix.config}}
143 - path: build/${{matrix.config}}/${{matrix.config}}.px4
1 -name: NuttX UAVCAN firmware
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - container: px4io/px4-dev-nuttx-focal:2021-04-29
15 - strategy:
16 - matrix:
17 - config: [
18 - ark_can-flow_default,
19 - cuav_can-gps-v1_default,
20 - freefly_can-rtk-gps_default,
21 - holybro_can-gps-v1_default,
22 - #nxp_ucans32k146_default,
23 - px4_fmu-v4_cannode
24 - ]
25 - steps:
26 - - uses: actions/checkout@v1
27 - with:
28 - token: ${{secrets.ACCESS_TOKEN}}
29 -
30 - - name: Prepare ccache timestamp
31 - id: ccache_cache_timestamp
32 - shell: cmake -P {0}
33 - run: |
34 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
35 - message("::set-output name=timestamp::${current_date}")
36 - - name: ccache cache files
37 - uses: actions/cache@v2
38 - with:
39 - path: ~/.ccache
40 - key: ${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
41 - restore-keys: ${{matrix.config}}-ccache-
42 - - name: setup ccache
43 - run: |
44 - mkdir -p ~/.ccache
45 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
46 - echo "compression = true" >> ~/.ccache/ccache.conf
47 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
48 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
49 - ccache -s
50 - ccache -z
51 -
52 - - name: make ${{matrix.config}}
53 - run: make ${{matrix.config}}
54 -
55 - - name: ccache post-run
56 - run: ccache -s
57 -
58 - - name: Upload px4 package
59 - uses: actions/upload-artifact@v2
60 - with:
61 - name: px4_cannode_${{matrix.config}}
62 - path: build/${{matrix.config}}/*.uavcan.bin
1 -name: Deploy metadata for all targets
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - - 'release/*'
8 - - 'pr-metadata-test'
9 -
10 -jobs:
11 - enumerate_targets:
12 - runs-on: ubuntu-latest
13 - outputs:
14 - matrix: ${{ steps.set-matrix.outputs.matrix }}
15 - steps:
16 - - uses: actions/checkout@v1
17 - with:
18 - token: ${{secrets.ACCESS_TOKEN}}
19 - - id: set-matrix
20 - run: echo "::set-output name=matrix::$(./Tools/generate_board_targets_json.py)"
21 - build:
22 - runs-on: ubuntu-latest
23 - needs: enumerate_targets
24 - strategy:
25 - matrix: ${{fromJson(needs.enumerate_targets.outputs.matrix)}}
26 - container: px4io/px4-dev-${{ matrix.container }}:2021-04-29
27 - steps:
28 - - uses: actions/checkout@v1
29 - with:
30 - token: ${{secrets.ACCESS_TOKEN}}
31 -
32 - - name: Prepare ccache timestamp
33 - id: ccache_cache_timestamp
34 - shell: cmake -P {0}
35 - run: |
36 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
37 - message("::set-output name=timestamp::${current_date}")
38 - - name: ccache cache files
39 - uses: actions/cache@v2
40 - with:
41 - path: ~/.ccache
42 - key: ${{matrix.target}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
43 - restore-keys: ${{matrix.target}}-ccache-
44 - - name: setup ccache
45 - run: |
46 - mkdir -p ~/.ccache
47 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
48 - echo "compression = true" >> ~/.ccache/ccache.conf
49 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
50 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
51 - ccache -s
52 - ccache -z
53 -
54 - - name: make ${{matrix.target}}
55 - run: make ${{matrix.target}}
56 - - name: ccache post-run
57 - run: ccache -s
58 -
59 - - name: parameter metadata
60 - run: |
61 - make ${{matrix.target}} ver_gen
62 - ./src/lib/version/get_git_tag_or_branch_version.sh build/${{ matrix.target }} >> $GITHUB_ENV
63 - cd build/${{ matrix.target }}
64 - mkdir _metadata || true
65 - cp parameters.* _metadata
66 -
67 - - uses: jakejarvis/s3-sync-action@master
68 - with:
69 - args: --acl public-read
70 - env:
71 - AWS_S3_BUCKET: 'px4-travis'
72 - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
73 - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
74 - AWS_REGION: 'us-west-1'
75 - SOURCE_DIR: 'build/${{ matrix.target }}/_metadata/'
76 - DEST_DIR: 'Firmware/${{ env.version }}/${{ matrix.target }}/'
77 -
1 -name: MAVROS Mission Tests
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - strategy:
15 - fail-fast: false
16 - matrix:
17 - config:
18 - - {vehicle: "iris", mission: "MC_mission_box", build_type: "RelWithDebInfo"}
19 - - {vehicle: "rover", mission: "rover_mission_1", build_type: "RelWithDebInfo"}
20 - #- {vehicle: "plane", mission: "FW_mission_1", build_type: "RelWithDebInfo"}
21 - #- {vehicle: "plane_catapult",mission: "FW_mission_1", build_type: "RelWithDebInfo"}
22 - #- {vehicle: "standard_vtol", mission: "VTOL_mission_1", build_type: "Coverage"}
23 - #- {vehicle: "standard_vtol", mission: "VTOL_mission_1", build_type: "AddressSanitizer"}
24 - #- {vehicle: "tailsitter", mission: "VTOL_mission_1", build_type: "RelWithDebInfo"}
25 - #- {vehicle: "tiltrotor", mission: "VTOL_mission_1", build_type: "RelWithDebInfo"}
26 -
27 - container:
28 - image: px4io/px4-dev-ros-melodic:2021-04-29
29 - options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
30 - steps:
31 - - uses: actions/checkout@v1
32 - with:
33 - token: ${{ secrets.ACCESS_TOKEN }}
34 -
35 - - name: Prepare ccache timestamp
36 - id: ccache_cache_timestamp
37 - shell: cmake -P {0}
38 - run: |
39 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
40 - message("::set-output name=timestamp::${current_date}")
41 - - name: ccache cache files
42 - uses: actions/cache@v2
43 - with:
44 - path: ~/.ccache
45 - key: sitl_tests-${{matrix.config.build_type}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
46 - restore-keys: sitl_tests-${{matrix.config.build_type}}-ccache-
47 - - name: setup ccache
48 - run: |
49 - mkdir -p ~/.ccache
50 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
51 - echo "compression = true" >> ~/.ccache/ccache.conf
52 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
53 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
54 - ccache -s
55 - ccache -z
56 -
57 - - name: check environment
58 - run: |
59 - export
60 - ulimit -a
61 - - name: Build PX4 and sitl_gazebo
62 - env:
63 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
64 - run: |
65 - ccache -z
66 - make px4_sitl_default
67 - make px4_sitl_default sitl_gazebo
68 - ccache -s
69 -
70 - - name: Core dump settings
71 - run: |
72 - ulimit -c unlimited
73 - echo "`pwd`/%e.core" > /proc/sys/kernel/core_pattern
74 -
75 - - name: Run SITL tests
76 - env:
77 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
78 - run: |
79 - export
80 - ./test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=${{matrix.config.mission}} vehicle:=${{matrix.config.vehicle}}
81 -
82 - - name: Look at core files
83 - if: failure()
84 - run: gdb build/px4_sitl_default/bin/px4 px4.core -ex "thread apply all bt" -ex "quit"
85 - - name: Upload px4 coredump
86 - if: failure()
87 - uses: actions/upload-artifact@v2-preview
88 - with:
89 - name: coredump
90 - path: px4.core
91 -
92 - - name: ecl EKF analysis
93 - if: always()
94 - run: ./Tools/ecl_ekf/process_logdata_ekf.py ~/.ros/log/*/*.ulg || true
95 -
96 - - name: Upload logs to flight review
97 - if: always()
98 - run: ./Tools/upload_log.py -q --description "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID}" --feedback "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID} ${GITHUB_REPOSITORY} ${GITHUB_REF}" --source CI ~/.ros/log/*/*.ulg
99 -
100 - - name: Upload px4 binary
101 - if: failure()
102 - uses: actions/upload-artifact@v2
103 - with:
104 - name: binary
105 - path: build/px4_sitl_default/bin/px4
106 -
107 - - name: Store PX4 log
108 - if: failure()
109 - uses: actions/upload-artifact@v2
110 - with:
111 - name: px4_log
112 - path: ~/.ros/log/*/*.ulg
113 -
114 - - name: Store ROS log
115 - if: failure()
116 - uses: actions/upload-artifact@v2
117 - with:
118 - name: ros_log
119 - path: ~/.ros/**/rostest-*.log
120 -
121 - # Report test coverage
122 - - name: Upload coverage
123 - if: contains(matrix.config.build_type, 'Coverage')
124 - run: |
125 - git config --global credential.helper "" # disable the keychain credential helper
126 - git config --global --add credential.helper store # enable the local store credential helper
127 - echo "https://x-access-token:${{ secrets.ACCESS_TOKEN }}@github.com" >> ~/.git-credentials # add credential
128 - git config --global url."https://github.com/".insteadof git@github.com: # credentials add credential
129 - mkdir -p coverage
130 - lcov --directory build/px4_sitl_default --base-directory build/px4_sitl_default --gcov-tool gcov --capture -o coverage/lcov.info
131 - - name: Upload coverage information to Codecov
132 - if: contains(matrix.config.build_type, 'Coverage')
133 - uses: codecov/codecov-action@v1
134 - with:
135 - token: ${{ secrets.CODECOV_TOKEN }}
136 - flags: mavros_mission
137 - file: coverage/lcov.info
1 -name: MAVROS Offboard Tests
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - strategy:
15 - fail-fast: false
16 - matrix:
17 - config:
18 - - {test_file: "mavros_posix_tests_offboard_posctl.test", vehicle: "iris", build_type: "RelWithDebInfo"}
19 - #- {test_file: "mavros_posix_tests_offboard_attctl.test", vehicle: "iris", build_type: "RelWithDebInfo"}
20 - #- {test_file: "mavros_posix_tests_offboard_rpyrt_ctl.test", vehicle: "iris", build_type: "RelWithDebInfo"}
21 -
22 - container:
23 - image: px4io/px4-dev-ros-melodic:2021-04-29
24 - options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
25 - steps:
26 - - uses: actions/checkout@v1
27 - with:
28 - token: ${{ secrets.ACCESS_TOKEN }}
29 -
30 - - name: Prepare ccache timestamp
31 - id: ccache_cache_timestamp
32 - shell: cmake -P {0}
33 - run: |
34 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
35 - message("::set-output name=timestamp::${current_date}")
36 - - name: ccache cache files
37 - uses: actions/cache@v2
38 - with:
39 - path: ~/.ccache
40 - key: sitl_tests-${{matrix.config.build_type}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
41 - restore-keys: sitl_tests-${{matrix.config.build_type}}-ccache-
42 - - name: setup ccache
43 - run: |
44 - mkdir -p ~/.ccache
45 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
46 - echo "compression = true" >> ~/.ccache/ccache.conf
47 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
48 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
49 - ccache -s
50 - ccache -z
51 -
52 - - name: check environment
53 - run: |
54 - export
55 - ulimit -a
56 - - name: Build PX4 and sitl_gazebo
57 - env:
58 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
59 - run: |
60 - ccache -z
61 - make px4_sitl_default
62 - make px4_sitl_default sitl_gazebo
63 - ccache -s
64 -
65 - - name: Core dump settings
66 - run: |
67 - ulimit -c unlimited
68 - echo "`pwd`/%e.core" > /proc/sys/kernel/core_pattern
69 -
70 - - name: Run SITL tests
71 - env:
72 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
73 - run: |
74 - export
75 - ./test/rostest_px4_run.sh ${{matrix.config.test_file}} vehicle:=${{matrix.config.vehicle}}
76 -
77 - - name: Look at core files
78 - if: failure()
79 - run: gdb build/px4_sitl_default/bin/px4 px4.core -ex "thread apply all bt" -ex "quit"
80 - - name: Upload px4 coredump
81 - if: failure()
82 - uses: actions/upload-artifact@v2-preview
83 - with:
84 - name: coredump
85 - path: px4.core
86 -
87 - - name: ecl EKF analysis
88 - if: always()
89 - run: ./Tools/ecl_ekf/process_logdata_ekf.py ~/.ros/log/*/*.ulg || true
90 -
91 - - name: Upload logs to flight review
92 - if: always()
93 - run: ./Tools/upload_log.py -q --description "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID}" --feedback "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID} ${GITHUB_REPOSITORY} ${GITHUB_REF}" --source CI ~/.ros/log/*/*.ulg
94 -
95 - - name: Upload px4 binary
96 - if: failure()
97 - uses: actions/upload-artifact@v2
98 - with:
99 - name: binary
100 - path: build/px4_sitl_default/bin/px4
101 -
102 - - name: Store PX4 log
103 - if: failure()
104 - uses: actions/upload-artifact@v2
105 - with:
106 - name: px4_log
107 - path: ~/.ros/log/*/*.ulg
108 -
109 - - name: Store ROS log
110 - if: failure()
111 - uses: actions/upload-artifact@v2
112 - with:
113 - name: ros_log
114 - path: ~/.ros/**/rostest-*.log
115 -
116 - # Report test coverage
117 - - name: Upload coverage
118 - if: contains(matrix.config.build_type, 'Coverage')
119 - run: |
120 - git config --global credential.helper "" # disable the keychain credential helper
121 - git config --global --add credential.helper store # enable the local store credential helper
122 - echo "https://x-access-token:${{ secrets.ACCESS_TOKEN }}@github.com" >> ~/.git-credentials # add credential
123 - git config --global url."https://github.com/".insteadof git@github.com: # credentials add credential
124 - mkdir -p coverage
125 - lcov --directory build/px4_sitl_default --base-directory build/px4_sitl_default --gcov-tool gcov --capture -o coverage/lcov.info
126 - - name: Upload coverage information to Codecov
127 - if: contains(matrix.config.build_type, 'Coverage')
128 - uses: codecov/codecov-action@v1
129 - with:
130 - token: ${{ secrets.CODECOV_TOKEN }}
131 - flags: mavros_offboard
132 - file: coverage/lcov.info
1 -name: Metadata
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - - 'release/*'
8 - - 'pr-metadata-test'
9 -
10 -jobs:
11 -
12 - airframe:
13 - runs-on: ubuntu-latest
14 - container: px4io/px4-dev-base-focal:2021-04-29
15 - steps:
16 - - uses: actions/checkout@v1
17 - with:
18 - token: ${{ secrets.ACCESS_TOKEN }}
19 -
20 - - name: airframe metadata
21 - run: |
22 - make airframe_metadata
23 - cd build/px4_sitl_default/docs
24 - ls -ls *
25 - # TODO: deploy to userguide gitbook and s3
26 -
27 - module:
28 - runs-on: ubuntu-latest
29 - container: px4io/px4-dev-base-focal:2021-04-29
30 - steps:
31 - - uses: actions/checkout@v1
32 - with:
33 - token: ${{ secrets.ACCESS_TOKEN }}
34 -
35 - - name: module documentation
36 - run: |
37 - make module_documentation
38 - cd build/px4_sitl_default/docs
39 - ls -ls *
40 - # TODO: deploy to userguide gitbook and s3
41 -
42 - parameter:
43 - runs-on: ubuntu-latest
44 - container: px4io/px4-dev-base-focal:2021-04-29
45 - steps:
46 - - uses: actions/checkout@v1
47 - with:
48 - token: ${{ secrets.ACCESS_TOKEN }}
49 -
50 - - name: parameter metadata
51 - run: |
52 - make parameters_metadata
53 - ./src/lib/version/get_git_tag_or_branch_version.sh build/px4_sitl_default >> $GITHUB_ENV
54 -
55 - - uses: jakejarvis/s3-sync-action@master
56 - with:
57 - args: --acl public-read
58 - env:
59 - AWS_S3_BUCKET: 'px4-travis'
60 - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
61 - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
62 - AWS_REGION: 'us-west-1'
63 - SOURCE_DIR: 'build/px4_sitl_default/docs/'
64 - DEST_DIR: 'Firmware/${{ env.version }}/_general/'
65 -
66 - uorb_graph:
67 - runs-on: ubuntu-latest
68 - container: px4io/px4-dev-nuttx-focal:2021-04-29
69 - steps:
70 - - uses: actions/checkout@v1
71 - with:
72 - token: ${{ secrets.ACCESS_TOKEN }}
73 -
74 - - name: uORB graph
75 - run: |
76 - make uorb_graphs
77 - cd Tools/uorb_graph
78 - ls -ls *
79 - # TODO: deploy graph_px4_sitl.json to S3 px4-travis:Firmware/master/
80 -
81 - micrortps_agent:
82 - runs-on: ubuntu-latest
83 - container: px4io/px4-dev-base-focal:2021-04-29
84 - steps:
85 - - uses: actions/checkout@v1
86 - with:
87 - token: ${{ secrets.ACCESS_TOKEN }}
88 -
89 - - name: microRTPS agent
90 - run: |
91 - make px4_sitl_rtps
92 - git clone https://github.com/PX4/micrortps_agent.git
93 - cp -R build/px4_sitl_rtps/src/modules/micrortps_bridge/micrortps_agent/* micrortps_agent
94 -
95 - ROS_msgs:
96 - runs-on: ubuntu-latest
97 - container: px4io/px4-dev-base-focal:2021-04-29
98 - steps:
99 - - uses: actions/checkout@v1
100 - with:
101 - token: ${{ secrets.ACCESS_TOKEN }}
102 -
103 - - name: PX4 ROS msgs
104 - run: |
105 - git clone https://github.com/PX4/px4_msgs.git
106 - python3 msg/tools/uorb_to_ros_msgs.py msg/ px4_msgs/msg/
107 -
108 - ROS2_bridge:
109 - runs-on: ubuntu-latest
110 - container: px4io/px4-dev-base-focal:2021-04-29
111 - steps:
112 - - uses: actions/checkout@v1
113 - with:
114 - token: ${{ secrets.ACCESS_TOKEN }}
115 -
116 - - name: PX4 ROS2 bridge
117 - run: |
118 - git clone https://github.com/PX4/px4_ros_com.git
119 - ./msg/tools/uorb_to_ros_rtps_ids.py -i msg/tools/uorb_rtps_message_ids.yaml -o px4_ros_com/templates/uorb_rtps_message_ids.yaml
1 -name: Python CI Checks
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - steps:
15 - - uses: actions/checkout@v1
16 - with:
17 - token: ${{ secrets.ACCESS_TOKEN }}
18 - - name: Install Python3
19 - run: sudo apt-get install python3 python3-setuptools python3-pip -y
20 - - name: Install tools
21 - run: pip3 install --user mypy flake8
22 - - name: Check MAVSDK test scripts with mypy
23 - run: $HOME/.local/bin/mypy --strict test/mavsdk_tests/*.py
24 - - name: Check MAVSDK test scripts with flake8
25 - run: $HOME/.local/bin/flake8 test/mavsdk_tests/*.py
1 -name: SITL Tests
2 -
3 -on:
4 - push:
5 - branches:
6 - - 'master'
7 - pull_request:
8 - branches:
9 - - '*'
10 -
11 -jobs:
12 - build:
13 - runs-on: ubuntu-latest
14 - strategy:
15 - fail-fast: false
16 - matrix:
17 - config:
18 - - {latitude: "59.617693", longitude: "-151.145316", altitude: "48", build_type: "RelWithDebInfo", model: "iris" } # Alaska
19 - - {latitude: "-38.071235", longitude: "145.281220", altitude: "31", build_type: "RelWithDebInfo", model: "standard_vtol" } # Australia
20 - - {latitude: "29.660316", longitude: "-82.316658", altitude: "30", build_type: "RelWithDebInfo", model: "tailsitter" } # Florida
21 - - {latitude: "47.397742", longitude: "8.545594", altitude: "488", build_type: "Coverage", model: "standard_vtol" } # Zurich
22 - container:
23 - image: px4io/px4-dev-simulation-focal:2021-04-29
24 - options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
25 - steps:
26 - - uses: actions/checkout@v1
27 - with:
28 - token: ${{ secrets.ACCESS_TOKEN }}
29 -
30 - - name: Download MAVSDK
31 - run: wget "https://github.com/mavlink/MAVSDK/releases/download/v$(cat test/mavsdk_tests/MAVSDK_VERSION)/mavsdk_$(cat test/mavsdk_tests/MAVSDK_VERSION)_ubuntu20.04_amd64.deb"
32 - - name: Install MAVSDK
33 - run: dpkg -i "mavsdk_$(cat test/mavsdk_tests/MAVSDK_VERSION)_ubuntu20.04_amd64.deb"
34 -
35 - - name: Prepare ccache timestamp
36 - id: ccache_cache_timestamp
37 - shell: cmake -P {0}
38 - run: |
39 - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
40 - message("::set-output name=timestamp::${current_date}")
41 - - name: ccache cache files
42 - uses: actions/cache@v2
43 - with:
44 - path: ~/.ccache
45 - key: sitl_tests-${{matrix.config.build_type}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
46 - restore-keys: sitl_tests-${{matrix.config.build_type}}-ccache-
47 - - name: setup ccache
48 - run: |
49 - mkdir -p ~/.ccache
50 - echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
51 - echo "compression = true" >> ~/.ccache/ccache.conf
52 - echo "compression_level = 5" >> ~/.ccache/ccache.conf
53 - echo "max_size = 100M" >> ~/.ccache/ccache.conf
54 - ccache -s
55 - ccache -z
56 -
57 - - name: check environment
58 - env:
59 - PX4_HOME_LAT: ${{matrix.config.latitude}}
60 - PX4_HOME_LON: ${{matrix.config.longitude}}
61 - PX4_HOME_ALT: ${{matrix.config.altitude}}
62 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
63 - run: |
64 - export
65 - ulimit -a
66 - - name: Build PX4
67 - env:
68 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
69 - run: make px4_sitl_default
70 - - name: ccache post-run px4/firmware
71 - run: ccache -s
72 - - name: Build SITL Gazebo
73 - env:
74 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
75 - run: make px4_sitl_default sitl_gazebo
76 - - name: ccache post-run sitl_gazebo
77 - run: ccache -s
78 - - name: Build MAVSDK tests
79 - env:
80 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
81 - DONT_RUN: 1
82 - run: make px4_sitl_default gazebo mavsdk_tests
83 - - name: ccache post-run mavsdk_tests
84 - run: ccache -s
85 -
86 - - name: Core dump settings
87 - run: |
88 - ulimit -c unlimited
89 - echo "`pwd`/%e.core" > /proc/sys/kernel/core_pattern
90 -
91 - - name: Run SITL tests
92 - env:
93 - PX4_HOME_LAT: ${{matrix.config.latitude}}
94 - PX4_HOME_LON: ${{matrix.config.longitude}}
95 - PX4_HOME_ALT: ${{matrix.config.altitude}}
96 - PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
97 - run: test/mavsdk_tests/mavsdk_test_runner.py --speed-factor 20 --abort-early --model ${{matrix.config.model}} --upload test/mavsdk_tests/configs/sitl.json
98 -
99 - - name: Look at core files
100 - if: failure()
101 - run: gdb build/px4_sitl_default/bin/px4 px4.core -ex "thread apply all bt" -ex "quit"
102 - - name: Upload px4 coredump
103 - if: failure()
104 - uses: actions/upload-artifact@v2-preview
105 - with:
106 - name: coredump
107 - path: px4.core
108 -
109 - - name: Upload px4 binary
110 - if: failure()
111 - uses: actions/upload-artifact@v2-preview
112 - with:
113 - name: binary
114 - path: build/px4_sitl_default/bin/px4
115 -
116 - # Report test coverage
117 - - name: Upload coverage
118 - if: contains(matrix.config.build_type, 'Coverage')
119 - run: |
120 - git config --global credential.helper "" # disable the keychain credential helper
121 - git config --global --add credential.helper store # enable the local store credential helper
122 - echo "https://x-access-token:${{ secrets.ACCESS_TOKEN }}@github.com" >> ~/.git-credentials # add credential
123 - git config --global url."https://github.com/".insteadof git@github.com: # credentials add credential
124 - mkdir -p coverage
125 - lcov --directory build/px4_sitl_default --base-directory build/px4_sitl_default --gcov-tool gcov --capture -o coverage/lcov.info
126 - - name: Upload coverage information to Codecov
127 - if: contains(matrix.config.build_type, 'Coverage')
128 - uses: codecov/codecov-action@v1
129 - with:
130 - token: ${{ secrets.CODECOV_TOKEN }}
131 - flags: mavsdk
132 - file: coverage/lcov.info
1 -# How to install:
2 -# gem install github_changelog_generator
3 -# How to run:
4 -# github_changelog_generator -u PX4 -p Firmware
5 -# Description:
6 -# The following params are sensible defaults for the PX4 project,
7 -# if you want to do a changelog before a release you need to update since-tag and future-releases,
8 -
9 -# Params:
10 -# github_changelog_generator --help for all options
11 -
12 -# max-issues
13 -# max threshold for github api queries
14 -# make sure you set your CHANGELOG_GITHUB_TOKEN before
15 -# running
16 -max-issues=1500
17 -
18 -# exclude-tags-regex
19 -# excludes release candidates
20 -exclude-tags-regex=rc[0-9]{1,}|beta[0-9]{1,}
21 -
22 -# since-tag
23 -# version of last stable release
24 -# you need to change this depending on what you need
25 -# if you want a changelog between versions this is the lowest version
26 -since-tag=1.6.5
27 -
28 -# future-release
29 -# version you are about to release
30 -# if you want a changelog between a version and all unreleased changes grouped as a release
31 -# eg: v1.6.5 to v1.7.0
32 -future-release=v1.7.0
33 -
1 -*.dSYM
2 -*.o
3 -*.gch
4 -*.pyc
5 -*~
6 -.*.swp
7 -.context
8 -.cproject
9 -.DS_Store
10 -.gdbinit
11 -.gdb_history
12 -.project
13 -.settings
14 -.swp
15 -.~lock.*
16 -Testing/
17 -Packages/*
18 -build/*
19 -build_*/
20 -cscope.out
21 -cscope.in.out
22 -cscope.po.out
23 -Firmware.sublime-workspace
24 -user.sublime*
25 -/Documentation/doxy.log
26 -/Documentation/html/
27 -/Documentation/doxygen*objdb*tmp
28 -.tags
29 -tags
30 -.tags_sorted_by_file
31 -.pydevproject
32 -.ropeproject
33 -*.orig
34 -Firmware.zip
35 -*.generated.h
36 -.vagrant
37 -*.pretty
38 -xcode
39 -rootfs/
40 -*.autosave
41 -CMakeLists.txt.user
42 -GPATH
43 -GRTAGS
44 -GTAGS
45 -*.creator
46 -*.creator.user
47 -*.files
48 -*.includes
49 -
50 -# CLion ignores
51 -.idea
52 -cmake-build-*/
53 -
54 -posix-configs/SITL/init/test/*_generated
55 -
56 -/airframes.md
57 -/airframes.xml
58 -/parameters.md
59 -/parameters.xml
60 -/modules
61 -/msg/ros/*.msg
62 -
63 -*.gcov
64 -.coverage
65 -.coverage.*
66 -
67 -# KDevelop ignores
68 -.kdev4/*
69 -*.kdev4
70 -
71 -# cmake in tree (ninja)
72 -.ninja_deps
73 -.ninja_log
74 -bin/
75 -build.ninja
76 -cmake_install.cmake
77 -CMakeCache.txt
78 -CMakeFiles
79 -compile_commands.json
80 -CPackConfig.cmake
81 -CPackSourceConfig.cmake
82 -CTestTestfile.cmake
83 -external/
84 -rules.ninja
85 -
86 -# in tree build
87 -**/*.a
88 -**/*.px4mod
89 -**/*.stamp
90 -/coverage*
91 -/functional-*
92 -/generated_params/
93 -/googletest-*/
94 -/logs
95 -/mavsdk_tests
96 -/test_mixer_multirotor
97 -/unit-*
98 -/uORB/
99 -DartConfiguration.tcl
100 -msg/tmp/
101 -msg/topics_sources/
102 -platforms/posix/apps.cpp
103 -platforms/posix/apps.h
104 -src/lib/version/build_git_version.h
105 -src/modules/simulator/simulator_config.h
106 -src/systemcmds/topic_listener/listener_generated.cpp
107 -
108 -# SITL
109 -dataman
110 -eeprom/
1 -[submodule "mavlink/include/mavlink/v2.0"]
2 - path = mavlink/include/mavlink/v2.0
3 - url = https://github.com/mavlink/c_library_v2.git
4 - branch = master
5 -[submodule "src/drivers/uavcan/libuavcan"]
6 - path = src/drivers/uavcan/libuavcan
7 - url = https://github.com/PX4/libuavcan.git
8 - branch = px4
9 -[submodule "Tools/jMAVSim"]
10 - path = Tools/jMAVSim
11 - url = https://github.com/PX4/jMAVSim.git
12 - branch = master
13 -[submodule "Tools/sitl_gazebo"]
14 - path = Tools/sitl_gazebo
15 - url = https://github.com/PX4/PX4-SITL_gazebo.git
16 - branch = master
17 -[submodule "src/lib/matrix"]
18 - path = src/lib/matrix
19 - url = https://github.com/PX4/PX4-Matrix.git
20 - branch = master
21 -[submodule "src/lib/ecl"]
22 - path = src/lib/ecl
23 - url = https://github.com/PX4/PX4-ECL.git
24 - branch = master
25 -[submodule "boards/atlflight/cmake_hexagon"]
26 - path = boards/atlflight/cmake_hexagon
27 - url = https://github.com/PX4/cmake_hexagon.git
28 - branch = px4
29 -[submodule "src/drivers/gps/devices"]
30 - path = src/drivers/gps/devices
31 - url = https://github.com/PX4/PX4-GPSDrivers.git
32 - branch = master
33 -[submodule "src/modules/micrortps_bridge/micro-CDR"]
34 - path = src/modules/micrortps_bridge/micro-CDR
35 - url = https://github.com/PX4/Micro-CDR.git
36 - branch = master
37 -[submodule "platforms/nuttx/NuttX/nuttx"]
38 - path = platforms/nuttx/NuttX/nuttx
39 - url = https://github.com/PX4/NuttX.git
40 - branch = px4_firmware_nuttx-10.0.0+
41 -[submodule "platforms/nuttx/NuttX/apps"]
42 - path = platforms/nuttx/NuttX/apps
43 - url = https://github.com/PX4/NuttX-apps.git
44 - branch = px4_firmware_nuttx-10.0.0+
45 -[submodule "platforms/qurt/dspal"]
46 - path = platforms/qurt/dspal
47 - url = https://github.com/ATLFlight/dspal.git
48 -[submodule "Tools/flightgear_bridge"]
49 - path = Tools/flightgear_bridge
50 - url = https://github.com/PX4/PX4-FlightGear-Bridge.git
51 -[submodule "Tools/jsbsim_bridge"]
52 - path = Tools/jsbsim_bridge
53 - url = https://github.com/PX4/px4-jsbsim-bridge.git
54 -[submodule "src/drivers/uavcan_v1/libcanard"]
55 - path = src/drivers/uavcan_v1/libcanard
56 - url = https://github.com/UAVCAN/libcanard.git
57 -[submodule "src/drivers/uavcan_v1/public_regulated_data_types"]
58 - path = src/drivers/uavcan_v1/public_regulated_data_types
59 - url = https://github.com/UAVCAN/public_regulated_data_types.git
60 -[submodule "src/drivers/uavcannode_gps_demo/public_regulated_data_types"]
61 - path = src/drivers/uavcannode_gps_demo/public_regulated_data_types
62 - url = https://github.com/UAVCAN/public_regulated_data_types.git
63 -[submodule "src/drivers/uavcannode_gps_demo/libcanard"]
64 - path = src/drivers/uavcannode_gps_demo/libcanard
65 - url = https://github.com/UAVCAN/libcanard.git
66 -[submodule "src/drivers/uavcan_v1/legacy_data_types"]
67 - path = src/drivers/uavcan_v1/legacy_data_types
68 - url = https://github.com/PX4/public_regulated_data_types.git
69 - branch = legacy
1 -language: cpp
2 -
3 -git:
4 - depth: 100
5 - submodules: false
6 -
7 -matrix:
8 - fast_finish: true
9 - include:
10 - - os: linux
11 - dist: xenial
12 - # In order to stay under the coverity rate limit, we only run this weekly
13 - # and not on push which is configured in travis-ci settings.
14 - if: branch = master
15 -
16 -before_install:
17 - - echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
18 -
19 -install:
20 - - export PATH=$HOME/.local/bin:$PATH
21 - - pip install --user --upgrade pip
22 - - pip install --user -r Tools/setup/requirements.txt
23 -
24 -script:
25 - - make
26 -
27 -addons:
28 - coverity_scan:
29 - project:
30 - name: "PX4/Firmware"
31 - description: "Build submitted via Travis CI"
32 - notification_email: ci@px4.io
33 - build_command_prepend: "make distclean"
34 - build_command: "make px4_sitl_default"
35 - branch_pattern: coverity_scan
1 -.cortex-debug.peripherals.state.json
2 -.cortex-debug.registers.state.json
3 -compile_commands.json
4 -
5 -# generated by cmake
6 -launch.json
7 -
8 -# C/C++ extension does some local caching in this folder
9 -ipch/
10 -
11 -browse.vc.db*
1 -{
2 - "configurations": [
3 - {
4 - "name": "PX4",
5 - "includePath": [
6 - "${workspaceFolder}/**"
7 - ],
8 - "defines": [],
9 - "macFrameworkPath": [],
10 - "configurationProvider": "ms-vscode.cmake-tools",
11 - "cppStandard": "c++14",
12 - "cStandard": "c11"
13 - }
14 - ],
15 - "version": 4
16 -}
...\ No newline at end of file ...\ No newline at end of file
1 -[
2 - {
3 - "name": "PX4 detect"
4 - }
5 -]
...\ No newline at end of file ...\ No newline at end of file
1 -CONFIG:
2 - default: px4_sitl_default
3 - choices:
4 - px4_sitl_default:
5 - short: px4_sitl
6 - buildType: RelWithDebInfo
7 - settings:
8 - CONFIG: px4_sitl_default
9 - px4_sitl_replay:
10 - short: px4_sitl_replay
11 - buildType: RelWithDebInfo
12 - settings:
13 - CONFIG: px4_sitl_replay
14 - px4_sitl_test:
15 - short: px4_sitl_test
16 - buildType: RelWithDebInfo
17 - settings:
18 - CONFIG: px4_sitl_test
19 - px4_io-v2_default:
20 - short: px4_io-v2
21 - buildType: MinSizeRel
22 - settings:
23 - CONFIG: px4_io-v2_default
24 - px4_fmu-v2_default:
25 - short: px4_fmu-v2
26 - buildType: MinSizeRel
27 - settings:
28 - CONFIG: px4_fmu-v2_default
29 - px4_fmu-v3_default:
30 - short: px4_fmu-v3
31 - buildType: MinSizeRel
32 - settings:
33 - CONFIG: px4_fmu-v3_default
34 - px4_fmu-v4_default:
35 - short: px4_fmu-v4
36 - buildType: MinSizeRel
37 - settings:
38 - CONFIG: px4_fmu-v4_default
39 - px4_fmu-v4pro_default:
40 - short: px4_fmu-v4pro
41 - buildType: MinSizeRel
42 - settings:
43 - CONFIG: px4_fmu-v4pro_default
44 - px4_fmu-v5_default:
45 - short: px4_fmu-v5
46 - buildType: MinSizeRel
47 - settings:
48 - CONFIG: px4_fmu-v5_default
49 - px4_fmu-v5x_default:
50 - short: px4_fmu-v5x
51 - buildType: MinSizeRel
52 - settings:
53 - CONFIG: px4_fmu-v5x_default
54 - airmind_mindpx-v2_default:
55 - short: airmind_mindpx-v2
56 - buildType: MinSizeRel
57 - settings:
58 - CONFIG: airmind_mindpx-v2_default
59 - ark_can-flow_default:
60 - short: ark_can-flow_default
61 - buildType: MinSizeRel
62 - settings:
63 - CONFIG: ark_can-flow_default
64 - ark_can-flow_canbootloader:
65 - short: ark_can-flow_canbootloader
66 - buildType: MinSizeRel
67 - settings:
68 - CONFIG: ark_can-flow_canbootloader
69 - ark_can-gps_default:
70 - short: ark_can-gps_default
71 - buildType: MinSizeRel
72 - settings:
73 - CONFIG: ark_can-gps_default
74 - ark_can-gps_canbootloader:
75 - short: ark_can-gps_canbootloader
76 - buildType: MinSizeRel
77 - settings:
78 - CONFIG: ark_can-gps_canbootloader
79 - av_x-v1_default:
80 - short: av_x-v1
81 - buildType: MinSizeRel
82 - settings:
83 - CONFIG: av_x-v1_default
84 - bitcraze_crazyflie_default:
85 - short: bitcraze_crazyflie
86 - buildType: MinSizeRel
87 - settings:
88 - CONFIG: bitcraze_crazyflie_default
89 - cuav_can-gps-v1_default:
90 - short: cuav_can-gps-v1_default
91 - buildType: MinSizeRel
92 - settings:
93 - CONFIG: cuav_can-gps-v1_default
94 - cuav_can-gps-v1_canbootloader:
95 - short: cuav_can-gps-v1_canbootloader
96 - buildType: MinSizeRel
97 - settings:
98 - CONFIG: cuav_can-gps-v1_canbootloader
99 - cuav_nora_default:
100 - short: cuav_nora
101 - buildType: MinSizeRel
102 - settings:
103 - CONFIG: cuav_nora_default
104 - cuav_x7pro_default:
105 - short: cuav_x7pro
106 - buildType: MinSizeRel
107 - settings:
108 - CONFIG: cuav_x7pro_default
109 - cubepilot_cubeorange_test:
110 - short: cubepilot_cubeorange
111 - buildType: MinSizeRel
112 - settings:
113 - CONFIG: cubepilot_orange_test
114 - emlid_navio2_default:
115 - short: emlid_navio2
116 - buildType: MinSizeRel
117 - settings:
118 - CONFIG: emlid_navio2_default
119 - freefly_can-rtk-gps_default:
120 - short: freefly_can-rtk-gps_default
121 - buildType: MinSizeRel
122 - settings:
123 - CONFIG: freefly_can-rtk-gps_default
124 - freefly_can-rtk-gps_canbootloader:
125 - short: freefly_can-rtk-gps_canbootloader
126 - buildType: MinSizeRel
127 - settings:
128 - CONFIG: freefly_can-rtk-gps_canbootloader
129 - holybro_can-gps-v1_canbootloader:
130 - short: holybro_can-gps-v1_canbootloader
131 - buildType: MinSizeRel
132 - settings:
133 - CONFIG: holybro_can-gps-v1_canbootloader
134 - holybro_can-gps-v1_default:
135 - short: holybro_can-gps-v1_default
136 - buildType: MinSizeRel
137 - settings:
138 - CONFIG: holybro_can-gps-v1_default
139 - holybro_durandal-v1_default:
140 - short: holybro_durandal-v1
141 - buildType: MinSizeRel
142 - settings:
143 - CONFIG: holybro_durandal-v1_default
144 - modalai_fc-v1_default:
145 - short: modalai_fc-v1
146 - buildType: MinSizeRel
147 - settings:
148 - CONFIG: modalai_fc-v1_default
149 - modalai_fc-v2_default:
150 - short: modalai_fc-v2
151 - buildType: MinSizeRel
152 - settings:
153 - CONFIG: modalai_fc-v2_default
154 - mro_ctrl-zero-f7_default:
155 - short: mro_ctrl-zero-f7
156 - buildType: MinSizeRel
157 - settings:
158 - CONFIG: mro_ctrl-zero-f7_default
159 - mro_pixracerpro_bootloader:
160 - short: mro_pixracerpro_bootloader
161 - buildType: MinSizeRel
162 - settings:
163 - CONFIG: mro_pixracerpro_bootloader
164 - mro_pixracerpro_default:
165 - short: mro_pixracerpro_default
166 - buildType: MinSizeRel
167 - settings:
168 - CONFIG: mro_pixracerpro_default
169 - mro_x21-777_default:
170 - short: mro_x2.1-777
171 - buildType: MinSizeRel
172 - settings:
173 - CONFIG: mro_x21-777_default
174 - nxp_fmuk66-v3_default:
175 - short: nxp_fmuk66-v3
176 - buildType: MinSizeRel
177 - settings:
178 - CONFIG: nxp_fmuk66-v3_default
1 -{
2 - // See http://go.microsoft.com/fwlink/?LinkId=827846
3 - // for the documentation about the extensions.json format
4 - "recommendations": [
5 - "chiehyu.vscode-astyle",
6 - "dan-c-underwood.arm",
7 - "fredericbonnet.cmake-test-adapter",
8 - "github.vscode-pull-request-github",
9 - "marus25.cortex-debug",
10 - "ms-azuretools.vscode-docker",
11 - "ms-iot.vscode-ros",
12 - "ms-python.python",
13 - "ms-vscode.cmake-tools",
14 - "ms-vscode.cpptools",
15 - "ms-vscode.cpptools-extension-pack",
16 - "redhat.vscode-yaml",
17 - "streetsidesoftware.code-spell-checker",
18 - "twxs.cmake",
19 - "uavcan.dsdl",
20 - "wholroyd.jinja",
21 - "zixuanwang.linkerscript"
22 - ]
23 -}
1 -{
2 - "astyle.astylerc": "${workspaceFolder}/Tools/astyle/astylerc",
3 - "astyle.c.enable": true,
4 - "astyle.cpp.enable": true,
5 - "breadcrumbs.enabled": true,
6 - "C_Cpp.autoAddFileAssociations": false,
7 - "C_Cpp.clang_format_fallbackStyle": "none",
8 - "C_Cpp.default.browse.limitSymbolsToIncludedHeaders": true,
9 - "C_Cpp.default.cppStandard": "c++14",
10 - "C_Cpp.default.cStandard": "c11",
11 - "C_Cpp.formatting": "Disabled",
12 - "C_Cpp.intelliSenseEngine": "Default",
13 - "C_Cpp.vcpkg.enabled": false,
14 - "C_Cpp.workspaceParsingPriority": "low",
15 - "cmake.buildBeforeRun": true,
16 - "cmake.buildDirectory": "${workspaceFolder}/build/${variant:CONFIG}",
17 - "cmake.buildTask": true,
18 - "cmake.configureOnOpen": true,
19 - "cmake.ctest.parallelJobs": 1,
20 - "cmake.skipConfigureIfCachePresent": true,
21 - "cmakeExplorer.buildDir": "${workspaceFolder}/build/px4_sitl_test",
22 - "cmakeExplorer.parallelJobs": 1,
23 - "cmakeExplorer.suiteDelimiter": "-",
24 - "cortex-debug.enableTelemetry": false,
25 - "cSpell.allowCompoundWords": true,
26 - "cSpell.diagnosticLevel": "Hint",
27 - "cSpell.showStatus": false,
28 - "cSpell.words": [
29 - "acro",
30 - "nuttx",
31 - "esc"
32 - ],
33 - "debug.toolBarLocation": "docked",
34 - "editor.acceptSuggestionOnEnter": "off",
35 - "editor.defaultFormatter": "chiehyu.vscode-astyle",
36 - "editor.dragAndDrop": false,
37 - "editor.insertSpaces": false,
38 - "editor.minimap.maxColumn": 120,
39 - "editor.minimap.renderCharacters": false,
40 - "editor.minimap.showSlider": "always",
41 - "editor.suggest.localityBonus": true,
42 - "editor.tabSize": 8,
43 - "editor.wordWrapColumn": 120,
44 - "explorer.openEditors.visible": 0,
45 - "files.insertFinalNewline": true,
46 - "files.trimTrailingWhitespace": true,
47 - "files.watcherExclude": {
48 - "**/build/**": true
49 - },
50 - "git.detectSubmodulesLimit": 20,
51 - "git.ignoreLimitWarning": true,
52 - "githubPullRequests.defaultMergeMethod": "squash",
53 - "githubPullRequests.telemetry.enabled": false,
54 - "files.associations": {
55 - "*.jinja": "jinja",
56 - "algorithm": "cpp",
57 - "array": "cpp",
58 - "atomic": "cpp",
59 - "bitset": "cpp",
60 - "cctype": "cpp",
61 - "cfenv": "cpp",
62 - "chrono": "cpp",
63 - "cinttypes": "cpp",
64 - "clocale": "cpp",
65 - "cmath": "cpp",
66 - "codecvt": "cpp",
67 - "complex": "cpp",
68 - "condition_variable": "cpp",
69 - "csignal": "cpp",
70 - "cstdarg": "cpp",
71 - "cstddef": "cpp",
72 - "cstdint": "cpp",
73 - "cstdio": "cpp",
74 - "cstdlib": "cpp",
75 - "cstring": "cpp",
76 - "ctime": "cpp",
77 - "cwchar": "cpp",
78 - "cwctype": "cpp",
79 - "deque": "cpp",
80 - "exception": "cpp",
81 - "forward_list": "cpp",
82 - "fstream": "cpp",
83 - "functional": "cpp",
84 - "future": "cpp",
85 - "hash_map": "cpp",
86 - "hash_set": "cpp",
87 - "initializer_list": "cpp",
88 - "iomanip": "cpp",
89 - "iosfwd": "cpp",
90 - "iostream": "cpp",
91 - "istream": "cpp",
92 - "iterator": "cpp",
93 - "limits": "cpp",
94 - "list": "cpp",
95 - "map": "cpp",
96 - "memory": "cpp",
97 - "memory_resource": "cpp",
98 - "mutex": "cpp",
99 - "new": "cpp",
100 - "numeric": "cpp",
101 - "optional": "cpp",
102 - "ostream": "cpp",
103 - "random": "cpp",
104 - "ratio": "cpp",
105 - "regex": "cpp",
106 - "set": "cpp",
107 - "sstream": "cpp",
108 - "stdexcept": "cpp",
109 - "streambuf": "cpp",
110 - "string": "cpp",
111 - "string_view": "cpp",
112 - "strstream": "cpp",
113 - "system_error": "cpp",
114 - "thread": "cpp",
115 - "tuple": "cpp",
116 - "type_traits": "cpp",
117 - "typeindex": "cpp",
118 - "typeinfo": "cpp",
119 - "unordered_map": "cpp",
120 - "unordered_set": "cpp",
121 - "utility": "cpp",
122 - "valarray": "cpp",
123 - "variant": "cpp",
124 - "vector": "cpp"
125 - },
126 - "search.exclude": {
127 - "${workspaceFolder}/build": true
128 - },
129 - "search.showLineNumbers": true,
130 - "telemetry.enableTelemetry": false,
131 - "terminal.integrated.copyOnSelection": true,
132 - "terminal.integrated.rightClickBehavior": "paste",
133 - "terminal.integrated.scrollback": 5000,
134 - "window.title": "${dirty} ${activeEditorMedium}${separator}${rootName}",
135 - "workbench.editor.highlightModifiedTabs": true,
136 - "workbench.enableExperiments": false,
137 - "workbench.settings.enableNaturalLanguageSearch": false,
138 - "yaml.schemas": {
139 - "${workspaceFolder}/validation/module_schema.yaml": "${workspaceFolder}/src/modules/*/module.yaml"
140 - }
141 -}
1 -{
2 - // See https://go.microsoft.com/fwlink/?LinkId=733558
3 - // for the documentation about the tasks.json format
4 - "version": "2.0.0",
5 - "tasks": [
6 - {
7 - "label": "build",
8 - "type": "shell",
9 - "command": "/bin/bash",
10 - "args": [
11 - "-c",
12 - "${command:cmake.tasksBuildCommand}"
13 - ],
14 - "options": {
15 - "cwd": "${command:cmake.buildDirectory}"
16 - },
17 - "group": {
18 - "kind": "build",
19 - "isDefault": true,
20 - },
21 - "problemMatcher": {
22 - "base": "$gcc",
23 - "fileLocation": ["relative", "${command:cmake.buildDirectory}"]
24 - },
25 - "presentation":{
26 - "echo": false,
27 - "showReuseMessage": false,
28 - "clear": true,
29 - "panel": "shared",
30 - "group": "build"
31 - }
32 - },
33 - {
34 - "label": "test",
35 - "type": "shell",
36 - "command": "make tests",
37 - "options": {
38 - "cwd": "${workspaceFolder}"
39 - },
40 - "group": {
41 - "kind": "test",
42 - "isDefault": true,
43 - },
44 - "presentation":{
45 - "echo": true,
46 - "showReuseMessage": false,
47 - "clear": false,
48 - "panel": "shared",
49 - "group": "test"
50 - }
51 - },
52 - {
53 - "label": "jmavsim build",
54 - "type": "shell",
55 - "command": "ant create_run_jar copy_res",
56 - "options": {
57 - "cwd": "${workspaceFolder}/Tools/jMAVSim"
58 - },
59 - "problemMatcher": [],
60 - "presentation":{
61 - "echo": true,
62 - "reveal": "never",
63 - "focus": false,
64 - "panel": "shared",
65 - "showReuseMessage": false,
66 - "clear": false,
67 - }
68 - },
69 - {
70 - "label": "jmavsim",
71 - "type": "shell",
72 - "dependsOn": "jmavsim build",
73 - "command": "java -Djava.ext.dirs= -jar jmavsim_run.jar -r 250 -lockstep -tcp localhost:4560 -qgc",
74 - "options": {
75 - "cwd": "${workspaceFolder}/Tools/jMAVSim/out/production",
76 - "env": {
77 - "PX4_SIM_SPEED_FACTOR": "1"
78 - }
79 - },
80 - "isBackground": true,
81 - "presentation": {
82 - "echo": true,
83 - "reveal": "never",
84 - "focus": false,
85 - "panel": "shared",
86 - "showReuseMessage": false,
87 - "clear": false
88 - },
89 - "problemMatcher": [
90 - {
91 - "pattern": [
92 - {
93 - "regexp": ".",
94 - "file": 1,
95 - "location": 2,
96 - "message": 3
97 - }
98 - ],
99 - "background": {
100 - "activeOnStart": true,
101 - "beginsPattern": ".",
102 - "endsPattern": ".",
103 - }
104 - }
105 - ]
106 - },
107 - {
108 - "label": "jmavsim kill",
109 - "type": "shell",
110 - "command": "kill $(ps aux | grep jmavsim | grep -v 'grep' | awk '{print $2}')",
111 - "presentation": {
112 - "echo": false,
113 - "reveal": "never",
114 - "focus": false,
115 - "panel": "shared",
116 - "showReuseMessage": false,
117 - "clear": false
118 - },
119 - "problemMatcher": []
120 - },
121 - {
122 - "label": "gazebo build",
123 - "type": "shell",
124 - "command": "make px4_sitl_default sitl_gazebo",
125 - "options": {
126 - "cwd": "${workspaceFolder}"
127 - },
128 - "problemMatcher": [],
129 - "presentation":{
130 - "echo": true,
131 - "reveal": "always",
132 - "focus": false,
133 - "panel": "shared",
134 - "showReuseMessage": false,
135 - "clear": false,
136 - }
137 - },
138 - {
139 - "label": "gazebo start",
140 - "type": "shell",
141 - "dependsOn": "gazebo build",
142 - "options": {
143 - "cwd": "${workspaceFolder}",
144 - "env": {
145 - "GAZEBO_PLUGIN_PATH": "${workspaceFolder}/build/px4_sitl_default/build_gazebo",
146 - "GAZEBO_MODEL_PATH": "${workspaceFolder}/Tools/sitl_gazebo/models",
147 - "PX4_SIM_SPEED_FACTOR": "1"
148 - }
149 - },
150 - "command": "gzserver --verbose ${workspaceFolder}/Tools/sitl_gazebo/worlds/${input:gazeboWorld}.world",
151 - "isBackground": true,
152 - "presentation": {
153 - "echo": true,
154 - "reveal": "never",
155 - "focus": false,
156 - "panel": "shared",
157 - "showReuseMessage": false,
158 - "clear": false
159 - },
160 - "problemMatcher": [
161 - {
162 - "pattern": [
163 - {
164 - "regexp": ".",
165 - "file": 1,
166 - "location": 2,
167 - "message": 3
168 - }
169 - ],
170 - "background": {
171 - "activeOnStart": true,
172 - "beginsPattern": ".",
173 - "endsPattern": ".",
174 - }
175 - }
176 - ]
177 - },
178 - {
179 - "label": "gazebo",
180 - "type": "shell",
181 - "dependsOn": "gazebo start",
182 - "options": {
183 - "cwd": "${workspaceFolder}",
184 - "env": {
185 - "GAZEBO_PLUGIN_PATH": "${workspaceFolder}/build/px4_sitl_default/build_gazebo",
186 - "GAZEBO_MODEL_PATH": "${workspaceFolder}/Tools/sitl_gazebo/models",
187 - "PX4_SIM_SPEED_FACTOR": "1"
188 - }
189 - },
190 - "command": "gz model --verbose --spawn-file=${workspaceFolder}/Tools/sitl_gazebo/models/${input:vehicleModel}/${input:vehicleModel}.sdf --model-name=${input:vehicleModel} -x 1.01 -y 0.98 -z 0.83",
191 - "isBackground": false,
192 - "presentation": {
193 - "echo": true,
194 - "reveal": "never",
195 - "focus": false,
196 - "panel": "shared",
197 - "showReuseMessage": false,
198 - "clear": false
199 - },
200 - "problemMatcher": [
201 - {
202 - "pattern": [
203 - {
204 - "regexp": ".",
205 - "file": 1,
206 - "location": 2,
207 - "message": 3
208 - }
209 - ],
210 - "background": {
211 - "activeOnStart": true,
212 - "beginsPattern": ".",
213 - "endsPattern": ".",
214 - }
215 - }
216 - ]
217 - },
218 - {
219 - "label": "gazebo client",
220 - "type": "shell",
221 - "dependsOn": "gazebo build",
222 - "options": {
223 - "cwd": "${workspaceFolder}",
224 - "env": {
225 - "GAZEBO_PLUGIN_PATH": "${workspaceFolder}/build/px4_sitl_default/build_gazebo",
226 - "GAZEBO_MODEL_PATH": "${workspaceFolder}/Tools/sitl_gazebo/models",
227 - "PX4_SIM_SPEED_FACTOR": "1"
228 - }
229 - },
230 - "command": "gzclient --verbose",
231 - "isBackground": true,
232 - "presentation": {
233 - "echo": true,
234 - "reveal": "never",
235 - "focus": false,
236 - "panel": "shared",
237 - "showReuseMessage": false,
238 - "clear": false
239 - },
240 - "problemMatcher": [
241 - {
242 - "pattern": [
243 - {
244 - "regexp": ".",
245 - "file": 1,
246 - "location": 2,
247 - "message": 3
248 - }
249 - ],
250 - "background": {
251 - "activeOnStart": true,
252 - "beginsPattern": ".",
253 - "endsPattern": ".",
254 - }
255 - }
256 - ]
257 - },
258 - {
259 - "label": "gazebo kill",
260 - "type": "shell",
261 - "command": "killall gzserver",
262 - "presentation": {
263 - "echo": true,
264 - "reveal": "silent",
265 - "focus": false,
266 - "panel": "shared",
267 - "showReuseMessage": false,
268 - "clear": false
269 - },
270 - "problemMatcher": [],
271 - "dependsOn":["px4_sitl_cleanup"]
272 - },
273 - {
274 - "label": "px4_sitl_cleanup",
275 - "type": "shell",
276 - "command": "rm -rfv /tmp/px4*",
277 - "presentation": {
278 - "echo": true,
279 - "reveal": "silent",
280 - "focus": false,
281 - "panel": "shared",
282 - "showReuseMessage": false,
283 - "clear": false
284 - },
285 - "problemMatcher": [],
286 - "dependsOn":["px4_kill"]
287 - },
288 - {
289 - "label": "px4_kill",
290 - "type": "shell",
291 - "command": "killall px4 || true",
292 - "presentation": {
293 - "echo": true,
294 - "reveal": "silent",
295 - "focus": false,
296 - "panel": "shared",
297 - "showReuseMessage": false,
298 - "clear": false
299 - },
300 - "problemMatcher": []
301 - },
302 - {
303 - "label": "mavlink shell",
304 - "type": "shell",
305 - "command": "./Tools/mavlink_shell.py",
306 - "options": {
307 - "cwd": "${workspaceFolder}"
308 - },
309 - "presentation": {
310 - "echo": true,
311 - "reveal": "always",
312 - "focus": true,
313 - "panel": "new",
314 - "showReuseMessage": false,
315 - "clear": false
316 - },
317 - "problemMatcher": []
318 - },
319 - {
320 - "label": "miniterm.py",
321 - "type": "shell",
322 - "command": "miniterm.py --raw - 57600",
323 - "options": {
324 - "cwd": "${workspaceFolder}"
325 - },
326 - "presentation": {
327 - "echo": true,
328 - "reveal": "always",
329 - "focus": true,
330 - "panel": "new",
331 - "showReuseMessage": false,
332 - "clear": false
333 - },
334 - "problemMatcher": []
335 - }
336 - ],
337 - "inputs": [
338 - {
339 - "type": "pickString",
340 - "id": "vehicleModel",
341 - "description": "gazebo model",
342 - "options": [
343 - "iris",
344 - "typhoon_h480",
345 - "plane",
346 - "plane_catapult",
347 - "plane_lidar",
348 - "standard_vtol",
349 - "tailsitter",
350 - "tiltrotor",
351 - "r1_rover",
352 - "boat"
353 - ],
354 - "default": "iris"
355 - },
356 - {
357 - "type": "pickString",
358 - "id": "gazeboWorld",
359 - "description": "gazebo world",
360 - "options": [
361 - "baylands",
362 - "empty",
363 - "ksql_airport",
364 - "mcmillan_airfield",
365 - "sonoma_raceway",
366 - "warehouse",
367 - "windy",
368 - "yosemite"
369 - ],
370 - "default": "empty"
371 - }
372 - ]
373 -}
1 -# This file is NOT licensed under the GPLv3, which is the license for the rest
2 -# of YouCompleteMe.
3 -#
4 -# Here's the license text for this file:
5 -#
6 -# This is free and unencumbered software released into the public domain.
7 -#
8 -# Anyone is free to copy, modify, publish, use, compile, sell, or
9 -# distribute this software, either in source code form or as a compiled
10 -# binary, for any purpose, commercial or non-commercial, and by any
11 -# means.
12 -#
13 -# In jurisdictions that recognize copyright laws, the author or authors
14 -# of this software dedicate any and all copyright interest in the
15 -# software to the public domain. We make this dedication for the benefit
16 -# of the public at large and to the detriment of our heirs and
17 -# successors. We intend this dedication to be an overt act of
18 -# relinquishment in perpetuity of all present and future rights to this
19 -# software under copyright law.
20 -#
21 -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24 -# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
25 -# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
26 -# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
27 -# OTHER DEALINGS IN THE SOFTWARE.
28 -#
29 -# For more information, please refer to <http://unlicense.org/>
30 -
31 -import os
32 -import ycm_core
33 -
34 -# These are the compilation flags that will be used in case there's no
35 -# compilation database set (by default, one is not set).
36 -# CHANGE THIS LIST OF FLAGS. YES, THIS IS THE DROID YOU HAVE BEEN LOOKING FOR.
37 -flags = [
38 -'-Wall',
39 -'-Wextra',
40 -'-Werror',
41 -#'-Wc++98-compat',
42 -'-Wno-long-long',
43 -'-Wno-variadic-macros',
44 -'-fexceptions',
45 -'-DNDEBUG',
46 -# You 100% do NOT need -DUSE_CLANG_COMPLETER in your flags; only the YCM
47 -# source code needs it.
48 -#'-DUSE_CLANG_COMPLETER',
49 -# THIS IS IMPORTANT! Without a "-std=<something>" flag, clang won't know which
50 -# language to use when compiling headers. So it will guess. Badly. So C++
51 -# headers will be compiled as C headers. You don't want that so ALWAYS specify
52 -# a "-std=<something>".
53 -# For a C project, you would set this to something like 'c99' instead of
54 -# 'c++14'.
55 -'-std=c++14',
56 -# ...and the same thing goes for the magic -x option which specifies the
57 -# language that the files to be compiled are written in. This is mostly
58 -# relevant for c++ headers.
59 -# For a C project, you would set this to 'c' instead of 'c++'.
60 -'-x',
61 -'c++',
62 -'-undef', # get rid of standard definitions to allow us to include arm math header
63 -'-I', os.path.join(os.path.expanduser("~"),'gcc-arm-none-eabi-4_7-2013q3/arm-none-eabi/include'),
64 -'-I', 'Build/px4_io-v2_default.build/nuttx-export/include/',
65 -'-I', './NuttX/nuttx/arch/arm/include',
66 -'-include', './src/include/visibility.h',
67 -'-I', './src',
68 -'-I', './src/modules',
69 -'-I', './src/include',
70 -'-I', './src/lib',
71 -'-I', './NuttX',
72 -]
73 -
74 -
75 -# Set this to the absolute path to the folder (NOT the file!) containing the
76 -# compile_commands.json file to use that instead of 'flags'. See here for
77 -# more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html
78 -#
79 -# Most projects will NOT need to set this to anything; you can just change the
80 -# 'flags' list of compilation flags. Notice that YCM itself uses that approach.
81 -compilation_database_folder = ''
82 -
83 -if os.path.exists( compilation_database_folder ):
84 - database = ycm_core.CompilationDatabase( compilation_database_folder )
85 -else:
86 - database = None
87 -
88 -SOURCE_EXTENSIONS = [ '.cpp', '.cxx', '.cc', '.c', '.m', '.mm' ]
89 -
90 -def DirectoryOfThisScript():
91 - return os.path.dirname( os.path.abspath( __file__ ) )
92 -
93 -
94 -def MakeRelativePathsInFlagsAbsolute( flags, working_directory ):
95 - if not working_directory:
96 - return list( flags )
97 - new_flags = []
98 - make_next_absolute = False
99 - path_flags = [ '-isystem', '-I', '-iquote', '--sysroot=' ]
100 - for flag in flags:
101 - new_flag = flag
102 -
103 - if make_next_absolute:
104 - make_next_absolute = False
105 - if not flag.startswith( '/' ):
106 - new_flag = os.path.join( working_directory, flag )
107 -
108 - for path_flag in path_flags:
109 - if flag == path_flag:
110 - make_next_absolute = True
111 - break
112 -
113 - if flag.startswith( path_flag ):
114 - path = flag[ len( path_flag ): ]
115 - new_flag = path_flag + os.path.join( working_directory, path )
116 - break
117 -
118 - if new_flag:
119 - new_flags.append( new_flag )
120 - return new_flags
121 -
122 -
123 -def IsHeaderFile( filename ):
124 - extension = os.path.splitext( filename )[ 1 ]
125 - return extension in [ '.h', '.hxx', '.hpp', '.hh' ]
126 -
127 -
128 -def GetCompilationInfoForFile( filename ):
129 - # The compilation_commands.json file generated by CMake does not have entries
130 - # for header files. So we do our best by asking the db for flags for a
131 - # corresponding source file, if any. If one exists, the flags for that file
132 - # should be good enough.
133 - if IsHeaderFile( filename ):
134 - basename = os.path.splitext( filename )[ 0 ]
135 - for extension in SOURCE_EXTENSIONS:
136 - replacement_file = basename + extension
137 - if os.path.exists( replacement_file ):
138 - compilation_info = database.GetCompilationInfoForFile(
139 - replacement_file )
140 - if compilation_info.compiler_flags_:
141 - return compilation_info
142 - return None
143 - return database.GetCompilationInfoForFile( filename )
144 -
145 -
146 -def FlagsForFile( filename, **kwargs ):
147 - if database:
148 - # Bear in mind that compilation_info.compiler_flags_ does NOT return a
149 - # python list, but a "list-like" StringVec object
150 - compilation_info = GetCompilationInfoForFile( filename )
151 - if not compilation_info:
152 - return None
153 -
154 - final_flags = MakeRelativePathsInFlagsAbsolute(
155 - compilation_info.compiler_flags_,
156 - compilation_info.compiler_working_dir_ )
157 -
158 - # NOTE: This is just for YouCompleteMe; it's highly likely that your project
159 - # does NOT need to remove the stdlib flag. DO NOT USE THIS IN YOUR
160 - # ycm_extra_conf IF YOU'RE NOT 100% SURE YOU NEED IT.
161 - #try:
162 - # final_flags.remove( '-stdlib=libc++' )
163 - #except ValueError:
164 - # pass
165 - else:
166 - relative_to = DirectoryOfThisScript()
167 - final_flags = MakeRelativePathsInFlagsAbsolute( flags, relative_to )
168 -
169 - return {
170 - 'flags': final_flags,
171 - 'do_cache': True
172 - }