diff --git a/Jenkinsfile b/Jenkinsfile index 256d655b355929ea8fd1c88a7b32d6998e465b8b..24eb2133d751c6375160b0bb56d5b47be0bb719d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -77,6 +77,28 @@ pipeline { builds["eagle (linux)"] = createBuildNodeDockerLogin(docker_snapdragon, 'docker_hub_dagar', 'posix_eagle_default') builds["eagle (qurt)"] = createBuildNodeDockerLogin(docker_snapdragon, 'docker_hub_dagar', 'qurt_eagle_default') + // posix_sitl_default with package + builds["sitl"] = { + node { + stage("Build Test sitl") { + docker.image(docker_ros).inside('-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw -e HOME=$WORKSPACE') { + stage("sitl") { + checkout scm + sh "export" + sh "make distclean" + sh "ccache -z" + sh "make posix_sitl_default" + sh "ccache -s" + sh "make posix_sitl_default sitl_gazebo" + sh "make posix_sitl_default package" + stash name: "px4_sitl_package", includes: "build/posix_sitl_default/*.zip" + sh "make distclean" + } + } + } + } + } + // MAC OS posix_sitl_default builds["sitl (OSX)"] = { node("mac") { @@ -286,15 +308,17 @@ pipeline { steps { sh 'export' sh 'make distclean; rm -rf .ros; rm -rf .gazebo' - sh 'git fetch --tags' - sh 'make posix_sitl_default' - sh 'make posix_sitl_default sitl_gazebo' - sh './test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=vtol_new_1 vehicle:=standard_vtol' - sh './Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' + unstash 'px4_sitl_package' + sh 'unzip build/posix_sitl_default/px4-posix_sitl_default*.zip' + sh 'mv px4-posix_sitl_default*/bin/px4 px4-posix_sitl_default*/share/px4/' + sh 'chmod +x px4-posix_sitl_default*/share/px4/px4' + sh 'chmod +x px4-posix_sitl_default*/share/px4/integrationtests/python_src/px4_it/mavros/mission_test.py' + sh 'bash px4-posix_sitl_default*/share/px4/test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=vtol_new_1 vehicle:=standard_vtol' + sh 'python px4-posix_sitl_default*/share/px4/Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' } post { always { - sh './Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' + sh 'python px4-posix_sitl_default*/share/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' archiveArtifacts '.ros/**/*.pdf' archiveArtifacts '.ros/**/*.csv' sh 'make distclean' @@ -317,15 +341,17 @@ pipeline { steps { sh 'export' sh 'make distclean; rm -rf .ros; rm -rf .gazebo' - sh 'git fetch --tags' - sh 'make posix_sitl_default' - sh 'make posix_sitl_default sitl_gazebo' - sh './test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=vtol_new_1 vehicle:=tailsitter' - sh './Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' + unstash 'px4_sitl_package' + sh 'unzip build/posix_sitl_default/px4-posix_sitl_default*.zip' + sh 'mv px4-posix_sitl_default*/bin/px4 px4-posix_sitl_default*/share/px4/' + sh 'chmod +x px4-posix_sitl_default*/share/px4/px4' + sh 'chmod +x px4-posix_sitl_default*/share/px4/integrationtests/python_src/px4_it/mavros/mission_test.py' + sh 'bash px4-posix_sitl_default*/share/px4/test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=vtol_new_1 vehicle:=tailsitter' + sh 'python px4-posix_sitl_default*/share/px4/Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' } post { always { - sh './Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' + sh 'python px4-posix_sitl_default*/share/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' archiveArtifacts '.ros/**/*.pdf' archiveArtifacts '.ros/**/*.csv' sh 'make distclean' @@ -348,15 +374,17 @@ pipeline { steps { sh 'export' sh 'make distclean; rm -rf .ros; rm -rf .gazebo' - sh 'git fetch --tags' - sh 'make posix_sitl_default' - sh 'make posix_sitl_default sitl_gazebo' - sh './test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=vtol_new_1 vehicle:=tiltrotor' - sh './Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' + unstash 'px4_sitl_package' + sh 'unzip build/posix_sitl_default/px4-posix_sitl_default*.zip' + sh 'mv px4-posix_sitl_default*/bin/px4 px4-posix_sitl_default*/share/px4/' + sh 'chmod +x px4-posix_sitl_default*/share/px4/px4' + sh 'chmod +x px4-posix_sitl_default*/share/px4/integrationtests/python_src/px4_it/mavros/mission_test.py' + sh 'bash px4-posix_sitl_default*/share/px4/test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=vtol_new_1 vehicle:=tiltrotor' + sh 'python px4-posix_sitl_default*/share/px4/Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' } post { always { - sh './Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' + sh 'python px4-posix_sitl_default*/share/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' archiveArtifacts '.ros/**/*.pdf' archiveArtifacts '.ros/**/*.csv' sh 'make distclean' @@ -379,15 +407,17 @@ pipeline { steps { sh 'export' sh 'make distclean; rm -rf .ros; rm -rf .gazebo' - sh 'git fetch --tags' - sh 'make posix_sitl_default' - sh 'make posix_sitl_default sitl_gazebo' - sh './test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=vtol_new_2 vehicle:=standard_vtol' - sh './Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' + unstash 'px4_sitl_package' + sh 'unzip build/posix_sitl_default/px4-posix_sitl_default*.zip' + sh 'mv px4-posix_sitl_default*/bin/px4 px4-posix_sitl_default*/share/px4/' + sh 'chmod +x px4-posix_sitl_default*/share/px4/px4' + sh 'chmod +x px4-posix_sitl_default*/share/px4/integrationtests/python_src/px4_it/mavros/mission_test.py' + sh 'bash px4-posix_sitl_default*/share/px4/test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=vtol_new_2 vehicle:=standard_vtol' + sh 'python px4-posix_sitl_default*/share/px4/Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' } post { always { - sh './Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' + sh 'python px4-posix_sitl_default*/share/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' archiveArtifacts '.ros/**/*.pdf' archiveArtifacts '.ros/**/*.csv' sh 'make distclean' @@ -410,15 +440,17 @@ pipeline { steps { sh 'export' sh 'make distclean; rm -rf .ros; rm -rf .gazebo' - sh 'git fetch --tags' - sh 'make posix_sitl_default' - sh 'make posix_sitl_default sitl_gazebo' - sh './test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=vtol_old_1 vehicle:=standard_vtol' - sh './Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' + unstash 'px4_sitl_package' + sh 'unzip build/posix_sitl_default/px4-posix_sitl_default*.zip' + sh 'mv px4-posix_sitl_default*/bin/px4 px4-posix_sitl_default*/share/px4/' + sh 'chmod +x px4-posix_sitl_default*/share/px4/px4' + sh 'chmod +x px4-posix_sitl_default*/share/px4/integrationtests/python_src/px4_it/mavros/mission_test.py' + sh 'bash px4-posix_sitl_default*/share/px4/test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=vtol_old_1 vehicle:=standard_vtol' + sh 'python px4-posix_sitl_default*/share/px4/Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' } post { always { - sh './Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' + sh 'python px4-posix_sitl_default*/share/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' archiveArtifacts '.ros/**/*.pdf' archiveArtifacts '.ros/**/*.csv' sh 'make distclean' @@ -441,15 +473,17 @@ pipeline { steps { sh 'export' sh 'make distclean; rm -rf .ros; rm -rf .gazebo' - sh 'git fetch --tags' - sh 'make posix_sitl_default' - sh 'make posix_sitl_default sitl_gazebo' - sh './test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=vtol_old_2 vehicle:=standard_vtol' - sh './Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' + unstash 'px4_sitl_package' + sh 'unzip build/posix_sitl_default/px4-posix_sitl_default*.zip' + sh 'mv px4-posix_sitl_default*/bin/px4 px4-posix_sitl_default*/share/px4/' + sh 'chmod +x px4-posix_sitl_default*/share/px4/px4' + sh 'chmod +x px4-posix_sitl_default*/share/px4/integrationtests/python_src/px4_it/mavros/mission_test.py' + sh 'bash px4-posix_sitl_default*/share/px4/test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=vtol_old_2 vehicle:=standard_vtol' + sh 'python px4-posix_sitl_default*/share/px4/Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' } post { always { - sh './Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' + sh 'python px4-posix_sitl_default*/share/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' archiveArtifacts '.ros/**/*.pdf' archiveArtifacts '.ros/**/*.csv' sh 'make distclean' @@ -472,15 +506,17 @@ pipeline { steps { sh 'export' sh 'make distclean; rm -rf .ros; rm -rf .gazebo' - sh 'git fetch --tags' - sh 'make posix_sitl_default' - sh 'make posix_sitl_default sitl_gazebo' - sh './test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=multirotor_box vehicle:=iris' - sh './Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' + unstash 'px4_sitl_package' + sh 'unzip build/posix_sitl_default/px4-posix_sitl_default*.zip' + sh 'mv px4-posix_sitl_default*/bin/px4 px4-posix_sitl_default*/share/px4/' + sh 'chmod +x px4-posix_sitl_default*/share/px4/px4' + sh 'chmod +x px4-posix_sitl_default*/share/px4/integrationtests/python_src/px4_it/mavros/mission_test.py' + sh 'bash px4-posix_sitl_default*/share/px4/test/rostest_px4_run.sh mavros_posix_test_mission.test mission:=multirotor_box vehicle:=iris' + sh 'python px4-posix_sitl_default*/share/px4/Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' } post { always { - sh './Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' + sh 'python px4-posix_sitl_default*/share/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' archiveArtifacts '.ros/**/*.pdf' archiveArtifacts '.ros/**/*.csv' sh 'make distclean' @@ -503,15 +539,17 @@ pipeline { steps { sh 'export' sh 'make distclean; rm -rf .ros; rm -rf .gazebo' - sh 'git fetch --tags' - sh 'make posix_sitl_default' - sh 'make posix_sitl_default sitl_gazebo' - sh './test/rostest_px4_run.sh mavros_posix_tests_offboard_attctl.test' - sh './Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' + unstash 'px4_sitl_package' + sh 'unzip build/posix_sitl_default/px4-posix_sitl_default*.zip' + sh 'mv px4-posix_sitl_default*/bin/px4 px4-posix_sitl_default*/share/px4/' + sh 'chmod +x px4-posix_sitl_default*/share/px4/px4' + sh 'chmod +x px4-posix_sitl_default*/share/px4/integrationtests/python_src/px4_it/mavros/mavros_offboard_attctl_test.py' + sh 'bash px4-posix_sitl_default*/share/px4/test/rostest_px4_run.sh mavros_posix_tests_offboard_attctl.test' + sh 'python px4-posix_sitl_default*/share/px4/Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' } post { always { - sh './Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' + sh 'python px4-posix_sitl_default*/share/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' archiveArtifacts '.ros/**/*.pdf' archiveArtifacts '.ros/**/*.csv' sh 'make distclean' @@ -534,15 +572,17 @@ pipeline { steps { sh 'export' sh 'make distclean; rm -rf .ros; rm -rf .gazebo' - sh 'git fetch --tags' - sh 'make posix_sitl_default' - sh 'make posix_sitl_default sitl_gazebo' - sh './test/rostest_px4_run.sh mavros_posix_tests_offboard_posctl.test' - sh './Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' + unstash 'px4_sitl_package' + sh 'unzip build/posix_sitl_default/px4-posix_sitl_default*.zip' + sh 'mv px4-posix_sitl_default*/bin/px4 px4-posix_sitl_default*/share/px4/' + sh 'chmod +x px4-posix_sitl_default*/share/px4/px4' + sh 'chmod +x px4-posix_sitl_default*/share/px4/integrationtests/python_src/px4_it/mavros/mavros_offboard_posctl_test.py' + sh 'bash px4-posix_sitl_default*/share/px4/test/rostest_px4_run.sh mavros_posix_tests_offboard_posctl.test' + sh 'python px4-posix_sitl_default*/share/px4/Tools/ecl_ekf/process_logdata_ekf.py `find . -name *.ulg -print -quit`' } post { always { - sh './Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' + sh 'python px4-posix_sitl_default*/share/px4/Tools/upload_log.py -q --description "${JOB_NAME}: ${STAGE_NAME}" --feedback "${JOB_NAME} ${CHANGE_TITLE} ${CHANGE_URL}" --source CI .ros/rootfs/fs/microsd/log/*/*.ulg' archiveArtifacts '.ros/**/*.pdf' archiveArtifacts '.ros/**/*.csv' sh 'make distclean' diff --git a/platforms/posix/CMakeLists.txt b/platforms/posix/CMakeLists.txt index 18dc510ca2a1f02ffb10a6a27514ccf2e4db8a1e..8f370176babc75adc1c3346e9a28200493a15d98 100644 --- a/platforms/posix/CMakeLists.txt +++ b/platforms/posix/CMakeLists.txt @@ -92,6 +92,77 @@ endif() # install # -install(TARGETS px4 DESTINATION ${CMAKE_INSTALL_BINDIR}) -install(DIRECTORY ${PROJECT_SOURCE_DIR}/ROMFS DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}) -install(DIRECTORY ${PROJECT_SOURCE_DIR}/posix-configs DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}) +# px4 app +install( + TARGETS + px4 + DESTINATION + ${CMAKE_INSTALL_BINDIR} + ) + +# px4 dirs +install( + DIRECTORY + ${PROJECT_SOURCE_DIR}/integrationtests + ${PROJECT_SOURCE_DIR}/launch + ${PROJECT_SOURCE_DIR}/posix-configs + ${PROJECT_SOURCE_DIR}/ROMFS + ${PROJECT_SOURCE_DIR}/test + DESTINATION + ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME} + ) + +# px4 files +install( + FILES + ${PROJECT_SOURCE_DIR}/CMakeLists.txt + ${PROJECT_SOURCE_DIR}/package.xml + DESTINATION + ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME} + ) + +# px4 Tools dirs +install( + DIRECTORY + ${PROJECT_SOURCE_DIR}/Tools/ecl_ekf + DESTINATION + ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/Tools + ) + +# px4 Tools files +install( + FILES + ${PROJECT_SOURCE_DIR}/Tools/setup_gazebo.bash + ${PROJECT_SOURCE_DIR}/Tools/upload_log.py + DESTINATION + ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/Tools + ) + +# sitl_gazebo built plugins +install( + DIRECTORY + ${PROJECT_SOURCE_DIR}/build/posix_sitl_default/build_gazebo + DESTINATION + ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/build/posix_sitl_default + FILES_MATCHING + PATTERN "CMakeFiles" EXCLUDE + PATTERN "*.so" + ) + +# sitl_gazebo dirs +install( + DIRECTORY + ${PROJECT_SOURCE_DIR}/Tools/sitl_gazebo/models + ${PROJECT_SOURCE_DIR}/Tools/sitl_gazebo/worlds + DESTINATION + ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/Tools/sitl_gazebo + ) + +# sitl_gazebo files +install( + FILES + ${PROJECT_SOURCE_DIR}/Tools/sitl_gazebo/CMakeLists.txt + ${PROJECT_SOURCE_DIR}/Tools/sitl_gazebo/package.xml + DESTINATION + ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/Tools/sitl_gazebo + ) \ No newline at end of file