travis-ci optimizations (#4870)

* move gcc 4.9 build to circleci

* travis-ci update to xcode 7.3

* travis-ci limit git fetching for OSX

* Makefile split firmware targets for CI

* OSX ccache
This commit is contained in:
Daniel Agar 2016-06-22 17:42:49 -04:00 committed by GitHub
parent 56ddd29f1a
commit b247dac120
3 changed files with 26 additions and 21 deletions

View File

@ -3,11 +3,6 @@
language: cpp language: cpp
env:
global:
# build thiemar/vectorcontrol.git and include in px4fmu-v4
- VECTORCONTROL=1
matrix: matrix:
fast_finish: true fast_finish: true
include: include:
@ -16,30 +11,31 @@ matrix:
env: GCC_VER=4.8 DOCKER_REPO="px4io/px4-dev-base" env: GCC_VER=4.8 DOCKER_REPO="px4io/px4-dev-base"
services: services:
- docker - docker
- os: linux
sudo: required
env: GCC_VER=4.9 DOCKER_REPO="px4io/px4-dev-nuttx-gcc4.9"
services:
- docker
- os: osx - os: osx
osx_image: xcode7
sudo: true sudo: true
osx_image: xcode7.3
env: CCACHE_CPP2=1
cache: cache:
ccache: true
pip: true
directories: directories:
- $HOME/.ccache - $HOME/.pip/cache/
- $HOME/Library/Caches/pip
before_install: before_install:
- cd ${TRAVIS_BUILD_DIR} && git fetch --unshallow && git fetch --all --tags && git submodule update --quiet --init --recursive
- if [ "${TRAVIS_OS_NAME}" = "linux" ]; then - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
docker pull ${DOCKER_REPO}; git fetch --unshallow && git fetch --all --tags
&& docker pull ${DOCKER_REPO}
;
elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then
brew tap PX4/homebrew-px4 brew tap PX4/homebrew-px4
&& brew update; brew update && brew update
&& brew install cmake ninja && brew update
&& brew install genromfs && brew install ccache cmake ninja genromfs
&& sudo easy_install pip && sudo easy_install pip
&& sudo pip install empy && sudo pip install empy
&& export PATH=/usr/local/opt/ccache/libexec:$PATH
; ;
fi fi
@ -52,11 +48,13 @@ env:
- PX4_AWS_BUCKET=px4-travis - PX4_AWS_BUCKET=px4-travis
script: script:
- ccache -M 1GB; ccache -z
- if [ "${TRAVIS_OS_NAME}" = "linux" ]; then - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
docker run --rm -v `pwd`:`pwd`:rw -v $HOME/.ccache:$HOME/.ccache:rw -e CCACHE_DIR=$HOME/.ccache -w=`pwd` --user=$UID -it ${DOCKER_REPO} /bin/bash -c "make qgc_firmware"; docker run --rm -v `pwd`:`pwd`:rw -v $HOME/.ccache:$HOME/.ccache:rw -e CCACHE_DIR=$HOME/.ccache -w=`pwd` --user=$UID -it ${DOCKER_REPO} /bin/bash -c "make check_qgc_firmware VECTORCONTROL=1";
elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then
make check_posix_sitl_default; make check_posix_sitl_default;
fi fi
- ccache -s
after_success: after_success:
- make package_firmware && mkdir s3deploy-archive && cp Firmware.zip s3deploy-archive/ - make package_firmware && mkdir s3deploy-archive && cp Firmware.zip s3deploy-archive/

View File

@ -289,7 +289,9 @@ endif
unittest: posix_sitl_test unittest: posix_sitl_test
$(call cmake-build-other,unittest, ../unittests) $(call cmake-build-other,unittest, ../unittests)
@(cd build_unittest && ctest -j2 --output-on-failure) @(cd build_unittest && ctest -j2 --output-on-failure)
tests: posix_sitl_test unittest
test_onboard_sitl: test_onboard_sitl:
@HEADLESS=1 make posix_sitl_test gazebo_iris @HEADLESS=1 make posix_sitl_test gazebo_iris
@ -301,6 +303,11 @@ qgc_firmware: \
check_mindpx-v2_default \ check_mindpx-v2_default \
check_px4fmu-v4_default_and_uavcan check_px4fmu-v4_default_and_uavcan
extra_firmware: \
check_px4-stm32f4discovery_default \
check_px4fmu-v2_test \
check_px4fmu-v2_ekf2
package_firmware: package_firmware:
@zip --junk-paths Firmware.zip `find . -name \*.px4` @zip --junk-paths Firmware.zip `find . -name \*.px4`

View File

@ -10,10 +10,10 @@ checkout:
## Customize dependencies ## Customize dependencies
dependencies: dependencies:
pre: pre:
- docker pull px4io/px4-dev-base - docker pull px4io/px4-dev-nuttx-gcc4.9
- docker info - docker info
test: test:
override: override:
#- sudo docker run --rm -v `pwd`:`pwd`:rw -v $HOME/.ccache:$HOME/.ccache:rw -e CCACHE_DIR=$HOME/.ccache -w=`pwd` --user=$UID -it px4io/px4-dev-base /bin/bash -c "make" #- sudo docker run --rm -v `pwd`:`pwd`:rw -v $HOME/.ccache:$HOME/.ccache:rw -e CCACHE_DIR=$HOME/.ccache -w=`pwd` --user=$UID -it px4io/px4-dev-base /bin/bash -c "make"
- docker run -v `pwd`:`pwd`:rw -w=`pwd` --user=$UID -it px4io/px4-dev-base /bin/bash -c "make" - docker run -v `pwd`:`pwd`:rw -w=`pwd` --user=$UID -it px4io/px4-dev-nuttx-gcc4.9 /bin/bash -c "make px4fmu-v4_default"