From 33a4ebad86d70da3e1235118d8d338a1b1852920 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Fri, 15 Nov 2019 10:58:12 +0100 Subject: [PATCH 1/8] travis: add Linux builds for Ubuntu and Fedora --- .travis.yml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/.travis.yml b/.travis.yml index 985e682010..57a378173e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,6 +29,30 @@ matrix: - libjsoncpp-dev - libcurl4-openssl-dev - libtinyxml2-dev + - os: linux + name: "docker-ubuntu-1604" + services: + - docker + env: + - MATRIX_EVAL="BUILD_TARGET=deb-x64 && DOCKER_REPO=mavsdk/mavsdk-ubuntu-16.04" + - os: linux + name: "docker-ubuntu-1804" + services: + - docker + env: + - MATRIX_EVAL="BUILD_TARGET=deb-x64 && DOCKER_REPO=mavsdk/mavsdk-ubuntu-18.04" + - os: linux + name: "docker-fedora-29" + services: + - docker + env: + - MATRIX_EVAL="BUILD_TARGET=rpm-x64 && DOCKER_REPO=mavsdk/mavsdk-fedora-29" + - os: linux + name: "docker-fedora-30" + services: + - docker + env: + - MATRIX_EVAL="BUILD_TARGET=rpm-x64 && DOCKER_REPO=mavsdk/mavsdk-fedora-30" - os: linux name: "manylinux1-x64" services: @@ -96,6 +120,14 @@ script: cmake --build build -j 2; ./build/src/unit_tests_runner; fi +- if [[ "${BUILD_TARGET}" = "deb-x64" ]]; then + docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_BACKEND=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=./install -Bbuild/release -H.; + docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} cmake --build build/release --target install -- -j2; + fi +- if [[ "${BUILD_TARGET}" = "rpm-x64" ]]; then + docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_BACKEND=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=./install -Bbuild/release -H.; + docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} cmake --build build/release --target install -- -j2; + fi - if [[ "${BUILD_TARGET}" = "manylinux1-x64" ]]; then ./dockcross-manylinux1-x64 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=build/manylinux1-x64/install -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -j 2 -Bbuild/manylinux1-x64 -H.; ./dockcross-manylinux1-x64 cmake --build build/manylinux1-x64 -j 2 --target install; From 1f38e2350b2a27e28e7ac2f8e2dbad87e377bad8 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Fri, 15 Nov 2019 14:52:51 +0100 Subject: [PATCH 2/8] tools: fix url of MAVSDK website --- tools/create_packages.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/create_packages.sh b/tools/create_packages.sh index 0b76ddaec6..87ba9bde4b 100755 --- a/tools/create_packages.sh +++ b/tools/create_packages.sh @@ -38,7 +38,7 @@ common_args="--chdir ${working_dir}/install \ --name mavsdk \ --version ${version} \ --maintainer julian@oes.ch \ - --url https://sdk.dronecode.org \ + --url https://mavsdk.mavlink.io \ --license BSD-3-Clause \ --after-install ${working_dir}/run_ldconfig \ --after-remove ${working_dir}/run_ldconfig \ From e349478f9fc94b977e9cbfd8b721faee0aa38968 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Fri, 15 Nov 2019 14:54:32 +0100 Subject: [PATCH 3/8] travis: try to upload deb and rpms --- .travis.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 57a378173e..ee749a38d9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -96,6 +96,9 @@ install: - if [[ "${BUILD_TARGET}" = "coverage_build" ]]; then pip install --user cpp-coveralls; fi +- if [[ "${BUILD_TARGET}" = "deb-x64" ]] || [[ "${BUILD_TARGET}" = "rpm-x64" ]]; then + gem install fpm; + fi - if [[ "${BUILD_TARGET}" = "manylinux1-x64" ]]; then docker run --rm manylinux1-x64-custom > ./dockcross-manylinux1-x64; chmod +x ./dockcross-manylinux1-x64; @@ -173,6 +176,9 @@ before_deploy: - if ! [ "$BEFORE_DEPLOY_RUN" ]; then export BEFORE_DEPLOY_RUN=1; + if [[ "${BUILD_TARGET}" = "deb-x64" ]] || [[ "${BUILD_TARGET}" = "rpm-x64" ]]; then + tools/create_packages.sh install .; + fi; if [[ "${BUILD_TARGET}" = "manylinux1-x64" ]]; then mv build/manylinux1-x64/install/bin/mavsdk_server build/manylinux1-x64/install/bin/mavsdk_server_manylinux1-x64; fi; @@ -224,8 +230,8 @@ deploy: secure: hBX3pFWNZiDbz4yKnOjhLg3QS9Ubn1XePxSeIt2Btq5GzbomOPDCgpIFijBppliwj9oKc302EMnZSg2QWeAzFKn9UnmIflJ0E4iymYgwWdTJv+bSnYALJEmO8F6gF9FgRlPk8FCtZiECoTsa75w5TrEZKZpFpmzVYRiDu0eo6sEjW7UJPC0A2KSTXLrBCHSIZy/iasbGmuur4brG7NO0QdMOvDXvhsYfkXDRJFMTtTHvLiKJcqiunPfqARzf1H4x4iczRYscKu5Vn8Kmw3NANGkcIDvEj4ooih831EXxACRZw0VgycgNHOKRXKC9pZ4hLQMon+jxpQX+X8k/K5161oEkF/gCVKyFb31Pk/4Uwe81p1GJY2lAC7MDUxA98RKXhdvVYF2Cp44+IbF0YVoWRUtVAhknXRQ3Weg25kyVSu83q2nN2nZq2qGTnpNIbdN56s/F+uaFtipGEh+vmiv8rNUz+Z5MFrY2FQaSvBTFw9K4tNs9uc+VQd1bE7X5wh0yywEqUEw2nzqTB2xR+OubygUASbk2GLNdc254P0lrzCHbNM62Y7sRX06CM7hPlwhELEkVtUXZWJ0KuhQyLvRh3aPJ3Jj30EswTt/FGT1gzSP1FjjHBRZCK4P2D2rwJ5TMn2JrZKfPxmEd3kVmn6h80+gBbKgonGmZspd2SvPEI5g= file_glob: true file: - - "build/release/*.deb" - - "build/release/*.rpm" + - "*.deb" + - "*.rpm" on: repo: mavlink/MAVSDK tags: true From f45abcf52cb226b09531aba05835d7ec8176e5c8 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Sun, 17 Nov 2019 17:09:42 +0100 Subject: [PATCH 4/8] travis-ci: create package inside docker --- .travis.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index ee749a38d9..a98b16d94b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -126,10 +126,12 @@ script: - if [[ "${BUILD_TARGET}" = "deb-x64" ]]; then docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_BACKEND=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=./install -Bbuild/release -H.; docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} cmake --build build/release --target install -- -j2; + docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} tools/create_packages.sh ./install .; fi - if [[ "${BUILD_TARGET}" = "rpm-x64" ]]; then docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_BACKEND=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=./install -Bbuild/release -H.; docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} cmake --build build/release --target install -- -j2; + docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} tools/create_packages.sh ./install .; fi - if [[ "${BUILD_TARGET}" = "manylinux1-x64" ]]; then ./dockcross-manylinux1-x64 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=build/manylinux1-x64/install -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -j 2 -Bbuild/manylinux1-x64 -H.; @@ -175,10 +177,6 @@ after_success: before_deploy: - if ! [ "$BEFORE_DEPLOY_RUN" ]; then export BEFORE_DEPLOY_RUN=1; - - if [[ "${BUILD_TARGET}" = "deb-x64" ]] || [[ "${BUILD_TARGET}" = "rpm-x64" ]]; then - tools/create_packages.sh install .; - fi; if [[ "${BUILD_TARGET}" = "manylinux1-x64" ]]; then mv build/manylinux1-x64/install/bin/mavsdk_server build/manylinux1-x64/install/bin/mavsdk_server_manylinux1-x64; fi; From eff202a2952dc24c418a93763349062a475ef10f Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Mon, 18 Nov 2019 09:16:13 +0100 Subject: [PATCH 5/8] travis-ci: move PX4 SITL test over from Jenkins --- .travis.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.travis.yml b/.travis.yml index a98b16d94b..bd242f554c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,6 +29,12 @@ matrix: - libjsoncpp-dev - libcurl4-openssl-dev - libtinyxml2-dev + - os: linux + name: "docker-ubuntu-1804-PX4-SITL" + services: + - docker + env: + - MATRIX_EVAL="BUILD_TARGET=px4-sitl && DOCKER_REPO=mavsdk/mavsdk-ubuntu-18.04-px4-sitl" - os: linux name: "docker-ubuntu-1604" services: @@ -123,6 +129,11 @@ script: cmake --build build -j 2; ./build/src/unit_tests_runner; fi +- if [[ "${BUILD_TARGET}" = "px4-sitl" ]]; then + docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_BACKEND=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=./install -Bbuild/debug -H.; + docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} cmake --build build/debug --target install -- -j2; + docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} PX4_SIM_SPEED_FACTOR=10 AUTOSTART_SITL=1 PX4_FIRMWARE_DIR=/home/user/Firmware HEADLESS=1 build/debug/src/integration_tests/integration_tests_runner --gtest_filter="SitlTest.*"'; + fi - if [[ "${BUILD_TARGET}" = "deb-x64" ]]; then docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_BACKEND=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=./install -Bbuild/release -H.; docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} cmake --build build/release --target install -- -j2; From a68d02efeac3a770247881d8da12a34f2f787b22 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Mon, 18 Nov 2019 09:17:10 +0100 Subject: [PATCH 6/8] Remove Jenkinsfile Everything should be covered on travis-ci now. --- Jenkinsfile | 402 ---------------------------------------------------- 1 file changed, 402 deletions(-) delete mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index c79621544d..0000000000 --- a/Jenkinsfile +++ /dev/null @@ -1,402 +0,0 @@ -#!/usr/bin/env groovy - -pipeline { - agent none - - stages { - stage('Build') { - parallel { - - stage('Ubuntu 16.04 Debug') { - agent { - docker { - image 'mavsdk/mavsdk-ubuntu-16.04:2019-07-14' - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' - } - } - steps { - sh 'export' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - sh 'git submodule sync --recursive' - sh 'git submodule update --init --recursive --force' - sh 'ccache -z' - sh 'cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${WORKSPACE}/install -DENABLE_MAVLINK_PASSTHROUGH=ON -Bbuild/debug -H.' - sh 'make -Cbuild/debug install' - sh 'build/debug/src/unit_tests_runner' - sh 'build/debug/src/backend/test/unit_tests_backend' - sh 'cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="${WORKSPACE}/install;${WORKSPACE}/build/debug/third_party/install" -B./example/build -Hexample' - sh 'make -Cexample/build' - } - post { - always { - sh 'ccache -s' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - } - } - } - - stage('Ubuntu 16.04 Release') { - agent { - docker { - image 'mavsdk/mavsdk-ubuntu-16.04:2019-07-14' - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' - } - } - steps { - sh 'export' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - sh 'git submodule sync --recursive' - sh 'git submodule update --init --recursive --force' - sh 'ccache -z' - sh 'cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${WORKSPACE}/install -DENABLE_MAVLINK_PASSTHROUGH=ON -Bbuild/release -H.' - sh 'make -Cbuild/release install' - sh 'build/release/src/unit_tests_runner' - sh 'build/release/src/backend/test/unit_tests_backend' - sh 'cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="${WORKSPACE}/install;${WORKSPACE}/build/release/third_party/install" -B./example/build -Hexample' - sh 'make -Cexample/build' - } - post { - always { - sh 'ccache -s' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - } - } - } - - stage('Ubuntu 18.04 Debug') { - agent { - docker { - image 'mavsdk/mavsdk-ubuntu-18.04:2019-07-14' - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' - } - } - steps { - sh 'export' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - sh 'git submodule sync --recursive' - sh 'git submodule update --init --recursive --force' - sh 'ccache -z' - sh 'cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${WORKSPACE}/install -DENABLE_MAVLINK_PASSTHROUGH=ON -Bbuild/debug -H.' - sh 'make -Cbuild/debug install' - sh 'build/debug/src/unit_tests_runner' - sh 'build/debug/src/backend/test/unit_tests_backend' - sh 'cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="${WORKSPACE}/install;${WORKSPACE}/build/debug/third_party/install" -B./example/build -Hexample' - sh 'make -Cexample/build' - } - post { - always { - sh 'ccache -s' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - } - } - } - - stage('Ubuntu 18.04 Release') { - agent { - docker { - image 'mavsdk/mavsdk-ubuntu-18.04:2019-07-14' - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' - } - } - steps { - sh 'export' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - sh 'git submodule sync --recursive' - sh 'git submodule update --init --recursive --force' - sh 'ccache -z' - sh 'cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${WORKSPACE}/install -DENABLE_MAVLINK_PASSTHROUGH=ON -Bbuild/release -H.' - sh 'make -Cbuild/release install' - sh 'build/release/src/unit_tests_runner' - sh 'build/release/src/backend/test/unit_tests_backend' - sh 'cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="${WORKSPACE}/install;${WORKSPACE}/build/release/third_party/install" -B./example/build -Hexample' - sh 'make -Cexample/build' - } - post { - always { - sh 'ccache -s' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - } - } - } - - stage('Ubuntu 18.04 Debug PX4 SITL') { - agent { - docker { - image 'mavsdk/mavsdk-ubuntu-18.04-px4-sitl:2019-07-14' - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' - } - } - steps { - sh 'export' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - sh 'git submodule sync --recursive' - sh 'git submodule update --init --recursive --force' - sh 'ccache -z' - sh 'cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${WORKSPACE}/install -DENABLE_MAVLINK_PASSTHROUGH=ON -Bbuild/debug -H.' - sh 'make -Cbuild/debug install' - sh 'cp -r /home/user/Firmware `pwd`/Firmware' - sh 'HOME=`pwd` PX4_SIM_SPEED_FACTOR=10 AUTOSTART_SITL=1 PX4_FIRMWARE_DIR=`pwd`/Firmware HEADLESS=1 build/debug/src/integration_tests/integration_tests_runner --gtest_filter="SitlTest.*"' - } - post { - always { - sh 'ccache -s' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - } - } - } - - stage('Fedora 29 Debug') { - agent { - docker { - image 'mavsdk/mavsdk-fedora-29:2019-07-14' - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' - } - } - steps { - sh 'export' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - sh 'git submodule sync --recursive' - sh 'git submodule update --init --recursive --force' - sh 'ccache -z' - sh 'cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${WORKSPACE}/install -DENABLE_MAVLINK_PASSTHROUGH=ON -Bbuild/debug -H.' - sh 'make -Cbuild/debug install' - sh 'build/debug/src/unit_tests_runner' - sh 'build/debug/src/backend/test/unit_tests_backend' - sh 'cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="${WORKSPACE}/install;${WORKSPACE}/build/debug/third_party/install" -B./example/build -Hexample' - sh 'make -Cexample/build' - } - post { - always { - sh 'ccache -s' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - } - } - } - - stage('Fedora 29 Release') { - agent { - docker { - image 'mavsdk/mavsdk-fedora-29:2019-07-14' - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' - } - } - steps { - sh 'export' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - sh 'git submodule sync --recursive' - sh 'git submodule update --init --recursive --force' - sh 'ccache -z' - sh 'cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${WORKSPACE}/install -DENABLE_MAVLINK_PASSTHROUGH=ON -Bbuild/release -H.' - sh 'make -Cbuild/release install' - sh 'build/release/src/unit_tests_runner' - sh 'build/release/src/backend/test/unit_tests_backend' - sh 'cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="${WORKSPACE}/install;${WORKSPACE}/build/release/third_party/install" -B./example/build -Hexample' - sh 'make -Cexample/build' - } - post { - always { - sh 'ccache -s' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - } - } - } - - stage('Fedora 30 Debug') { - agent { - docker { - image 'mavsdk/mavsdk-fedora-30:2019-07-14' - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' - } - } - steps { - sh 'export' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - sh 'git submodule sync --recursive' - sh 'git submodule update --init --recursive --force' - sh 'ccache -z' - sh 'cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${WORKSPACE}/install -DENABLE_MAVLINK_PASSTHROUGH=ON -Bbuild/debug -H.' - sh 'make -Cbuild/debug install' - sh 'build/debug/src/unit_tests_runner' - sh 'build/debug/src/backend/test/unit_tests_backend' - sh 'cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="${WORKSPACE}/install;${WORKSPACE}/build/debug/third_party/install" -B./example/build -Hexample' - sh 'make -Cexample/build' - } - post { - always { - sh 'ccache -s' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - } - } - } - - stage('Fedora 30 Release') { - agent { - docker { - image 'mavsdk/mavsdk-fedora-30:2019-07-14' - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' - } - } - steps { - sh 'export' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - sh 'git submodule sync --recursive' - sh 'git submodule update --init --recursive --force' - sh 'ccache -z' - sh 'cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=${WORKSPACE}/install -DENABLE_MAVLINK_PASSTHROUGH=ON -Bbuild/release -H.' - sh 'make -Cbuild/release install' - sh 'build/release/src/unit_tests_runner' - sh 'build/release/src/backend/test/unit_tests_backend' - sh 'cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="${WORKSPACE}/install;${WORKSPACE}/build/release/third_party/install" -B./example/build -Hexample' - sh 'make -Cexample/build' - } - post { - always { - sh 'ccache -s' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - } - } - } - - stage('macOS Debug') { - agent { - label 'mac' - } - environment { - CCACHE_BASEDIR = "${env.WORKSPACE}" - } - steps { - sh 'export' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - sh 'git submodule sync --recursive' - sh 'git submodule update --init --recursive --force' - sh 'ccache -z' - sh 'cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=install -DENABLE_MAVLINK_PASSTHROUGH=ON -Bbuild/debug -H.' - sh 'make -Cbuild/debug install' - sh 'build/debug/src/unit_tests_runner' - sh 'build/debug/src/backend/test/unit_tests_backend' - sh 'cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="${WORKSPACE}/install;${WORKSPACE}/build/debug/third_party/install" -B./example/build -Hexample' - sh 'make -Cexample/build' - } - post { - always { - sh 'ccache -s' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - } - } - } - - stage('macOS Release') { - agent { - label 'mac' - } - environment { - CCACHE_BASEDIR = "${env.WORKSPACE}" - } - steps { - sh 'export' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - sh 'git submodule sync --recursive' - sh 'git submodule update --init --recursive --force' - sh 'ccache -z' - sh 'cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=install -DENABLE_MAVLINK_PASSTHROUGH=ON -Bbuild/release -H.' - sh 'make -Cbuild/release install' - sh 'build/release/src/unit_tests_runner' - sh 'build/release/src/backend/test/unit_tests_backend' - sh 'cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="${WORKSPACE}/install;${WORKSPACE}/build/release/third_party/install" -B./example/build -Hexample' - sh 'make -Cexample/build' - } - post { - always { - sh 'ccache -s' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - } - } - } - - } // parallel - } // Build - - stage('Test') { - parallel { - - stage('check style') { - agent { - docker { - image 'mavsdk/mavsdk-ubuntu-16.04:2019-07-14' - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' - } - } - steps { - sh 'export' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - sh '${WORKSPACE}/tools/fix_style.sh ${WORKSPACE}' - } - post { - always { - sh 'ccache -s' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - } - } - } - } // parallel - } // stage Test - - stage('Generate Docs') { - agent { - docker { - image 'mavsdk/mavsdk-ubuntu-16.04:2019-07-14' - args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw' - } - } - steps { - sh 'export' - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - sh 'git submodule sync --recursive' - sh 'git submodule update --init --recursive --force' - sh '${WORKSPACE}/tools/generate_docs.sh' - } - post { - always { - sh 'git submodule deinit -f .' - sh 'git clean -ff -x -d .' - } - } - } // stage Generate Docs - - } // stages - - environment { - CCACHE_DIR = '/tmp/ccache' - XDG_CACHE_HOME = '/tmp/.cache' // For go build cache. - } - - options { - buildDiscarder(logRotator(numToKeepStr: '10', artifactDaysToKeepStr: '30')) - timeout(time: 60, unit: 'MINUTES') - } -} From 29cd45f4efae8cbc123d6c5c06b1916992e24e59 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Mon, 18 Nov 2019 09:38:49 +0100 Subject: [PATCH 7/8] travis-ci: only on master/develop and version tags --- .travis.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.travis.yml b/.travis.yml index bd242f554c..606eb6ed94 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,11 @@ language: cpp +branches: + only: + - master + - develop + - /^v\d+\.\d+\.\d+$/ + matrix: fast_finish: true include: From f78f064d580c856d798554a76bfd67ed04b87bc7 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Mon, 18 Nov 2019 10:08:48 +0100 Subject: [PATCH 8/8] travis: use script to run SITL tests --- .travis.yml | 4 +--- tools/run-sitl-tests.sh | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) create mode 100755 tools/run-sitl-tests.sh diff --git a/.travis.yml b/.travis.yml index 606eb6ed94..c82e886075 100644 --- a/.travis.yml +++ b/.travis.yml @@ -136,9 +136,7 @@ script: ./build/src/unit_tests_runner; fi - if [[ "${BUILD_TARGET}" = "px4-sitl" ]]; then - docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_BACKEND=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=./install -Bbuild/debug -H.; - docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} cmake --build build/debug --target install -- -j2; - docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} PX4_SIM_SPEED_FACTOR=10 AUTOSTART_SITL=1 PX4_FIRMWARE_DIR=/home/user/Firmware HEADLESS=1 build/debug/src/integration_tests/integration_tests_runner --gtest_filter="SitlTest.*"'; + docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} tools/run-sitl-tests.sh; fi - if [[ "${BUILD_TARGET}" = "deb-x64" ]]; then docker run -it -v $TRAVIS_BUILD_DIR:/home/user/MAVSDK:rw ${DOCKER_REPO} cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_BACKEND=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=./install -Bbuild/release -H.; diff --git a/tools/run-sitl-tests.sh b/tools/run-sitl-tests.sh new file mode 100755 index 0000000000..6c53c0cdc1 --- /dev/null +++ b/tools/run-sitl-tests.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env sh + +set -e + +PWD=$(pwd) + +if [ -z ${PX4_FIRMWARE_DIR+x} ]; then + PX4_FIRMWARE_DIR=$PWD/../Firmware +fi + +NPROCS=$(nproc --all) + +cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_BACKEND=OFF -DBUILD_SHARED_LIBS=ON -Bbuild/debug -H.; +cmake --build build/debug -- -j$NPROCS; +PX4_SIM_SPEED_FACTOR=10 AUTOSTART_SITL=1 PX4_FIRMWARE_DIR=$PX4_FIRMWARE_DIR HEADLESS=1 build/debug/src/integration_tests/integration_tests_runner --gtest_filter="SitlTest.*"