global:
# Set at the root level as this is ignored when set under matrix.env.
- GCC_VERSION="4.9"
+ # Fail on first error if UBSAN or ASAN enabled for a target
+ - UBSAN_OPTIONS=halt_on_error=1
+ - ASAN_OPTIONS=halt_on_error=1
+ # Travis machines have 2 cores
+ - JOBS=2
+ - MAKEFLAGS="-j 2"
conan-linux: &conan-linux
os: linux
- sudo: required
+ dist: xenial
language: python
- python: "3.6"
+ python: "3.7"
services:
- docker
install:
- ./conan/travis/build.sh
if: tag IS present
+conan-linux-master: &conan-linux-master
+ os: linux
+ dist: xenial
+ language: python
+ python: "3.7"
+ services:
+ - docker
+ install:
+ - 'if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash ./conan/travis/install.sh; fi'
+ script:
+ - 'if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash ./conan/travis/build.sh; fi'
+ branches:
+ only:
+ - master
+
conan-osx: &conan-osx
os: osx
language: generic
# branch: master
- language: cpp
os:
- - linux
+ - linux
+
+ addons:
+ apt:
+ packages:
+ - docker-ce
+ script:
+ - bash .travis/build-and-run-docker-test-containers.sh
+
+ - language: cpp
+ os:
+ - linux
compiler:
- gcc
env:
matrix:
- BUILD_TYPE=Debug
- - BUILD_TYPE=Release CONAN=true
+ - BUILD_TYPE=Release
before_install:
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ln -s -v -f $(which gcc-$GCC_VERSION) /usr/bin/gcc; fi
script:
+ - pip install cmake
+ - bash .travis/check-sources.sh
- bash grpc/build_grpc.sh
- - cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DFLATBUFFERS_BUILD_GRPCTEST=ON -DGRPC_INSTALL_PATH=$TRAVIS_BUILD_DIR/google/grpc/install -DPROTOBUF_DOWNLOAD_PATH=$TRAVIS_BUILD_DIR/google/grpc/third_party/protobuf . && make
- - LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/google/grpc/install/lib make test ARGS=-V
- - bash .travis/check-generate-code.sh
- - if [ "$CONAN" == "true" ] && [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo pip install conan && conan create . google/testing -s build_type=$BUILD_TYPE -tf conan/test_package; fi
+ - cmake .
+ -DCMAKE_BUILD_TYPE=$BUILD_TYPE
+ -DFLATBUFFERS_BUILD_GRPCTEST=ON
+ -DGRPC_INSTALL_PATH=$TRAVIS_BUILD_DIR/google/grpc/install
+ -DPROTOBUF_DOWNLOAD_PATH=$TRAVIS_BUILD_DIR/google/grpc/third_party/protobuf
+ -DFLATBUFFERS_CODE_SANITIZE=ON
+ - cmake --build . --target all --clean-first -- -j${JOBS}
+ - LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/google/grpc/install/lib ctest --extra-verbose --output-on-failure
+ - bash scripts/check-generate-code.sh
- language: cpp
os: osx
matrix:
- BUILD_TYPE=Debug
- BUILD_TYPE=Release
+
script:
+ - pip install --user cmake
+ - mkdir ~/cmake_path
+ - ln -s $(find ~/Library/Python -name cmake -type f | head -n 1) ~/cmake_path/cmake
+ - ln -s $(find ~/Library/Python -name ctest -type f | head -n 1) ~/cmake_path/ctest
+ - export PATH=~/cmake_path:${PATH}
- bash grpc/build_grpc.sh
- - cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DFLATBUFFERS_BUILD_GRPCTEST=ON -DGRPC_INSTALL_PATH=$TRAVIS_BUILD_DIR/google/grpc/install -DPROTOBUF_DOWNLOAD_PATH=$TRAVIS_BUILD_DIR/google/grpc/third_party/protobuf . && make
- - ./flattests
- - bash .travis/check-generate-code.sh
- - DYLD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/google/grpc/install/lib ./grpctest
+ - cmake .
+ -DCMAKE_BUILD_TYPE=$BUILD_TYPE
+ -DFLATBUFFERS_BUILD_GRPCTEST=ON
+ -DGRPC_INSTALL_PATH=$TRAVIS_BUILD_DIR/google/grpc/install
+ -DPROTOBUF_DOWNLOAD_PATH=$TRAVIS_BUILD_DIR/google/grpc/third_party/protobuf
+ -DFLATBUFFERS_CODE_SANITIZE=ON
+ - cmake --build . -- -j${JOBS}
+ - DYLD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/google/grpc/install/lib ctest --extra-verbose --output-on-failure
+ - bash scripts/check-generate-code.sh
+ - <<: *conan-linux-master
+ env: CONAN_GCC_VERSIONS=8 CONAN_DOCKER_IMAGE=conanio/gcc8
+ - <<: *conan-linux
+ env: CONAN_GCC_VERSIONS=4.9 CONAN_DOCKER_IMAGE=conanio/gcc49
+ - <<: *conan-linux
+ env: CONAN_GCC_VERSIONS=5 CONAN_DOCKER_IMAGE=conanio/gcc5
+ - <<: *conan-linux
+ env: CONAN_GCC_VERSIONS=6 CONAN_DOCKER_IMAGE=conanio/gcc6
- <<: *conan-linux
- env: CONAN_GCC_VERSIONS=4.9 CONAN_DOCKER_IMAGE=lasote/conangcc49
+ env: CONAN_GCC_VERSIONS=7 CONAN_DOCKER_IMAGE=conanio/gcc7
- <<: *conan-linux
- env: CONAN_GCC_VERSIONS=5 CONAN_DOCKER_IMAGE=lasote/conangcc5
+ env: CONAN_GCC_VERSIONS=8 CONAN_DOCKER_IMAGE=conanio/gcc8
- <<: *conan-linux
- env: CONAN_GCC_VERSIONS=6 CONAN_DOCKER_IMAGE=lasote/conangcc6
+ env: CONAN_GCC_VERSIONS=9 CONAN_DOCKER_IMAGE=conanio/gcc9
- <<: *conan-linux
- env: CONAN_GCC_VERSIONS=7 CONAN_DOCKER_IMAGE=lasote/conangcc7
+ env: CONAN_CLANG_VERSIONS=3.9 CONAN_DOCKER_IMAGE=conanio/clang39
- <<: *conan-linux
- env: CONAN_GCC_VERSIONS=8 CONAN_DOCKER_IMAGE=lasote/conangcc8
+ env: CONAN_CLANG_VERSIONS=4.0 CONAN_DOCKER_IMAGE=conanio/clang40
- <<: *conan-linux
- env: CONAN_CLANG_VERSIONS=3.9 CONAN_DOCKER_IMAGE=lasote/conanclang39
+ env: CONAN_CLANG_VERSIONS=5.0 CONAN_DOCKER_IMAGE=conanio/clang50
- <<: *conan-linux
- env: CONAN_CLANG_VERSIONS=4.0 CONAN_DOCKER_IMAGE=lasote/conanclang40
+ env: CONAN_CLANG_VERSIONS=6.0 CONAN_DOCKER_IMAGE=conanio/clang60
- <<: *conan-linux
- env: CONAN_CLANG_VERSIONS=5.0 CONAN_DOCKER_IMAGE=lasote/conanclang50
+ env: CONAN_CLANG_VERSIONS=7.0 CONAN_DOCKER_IMAGE=conanio/clang7
- <<: *conan-linux
- env: CONAN_CLANG_VERSIONS=6.0 CONAN_DOCKER_IMAGE=lasote/conanclang60
+ env: CONAN_CLANG_VERSIONS=8 CONAN_DOCKER_IMAGE=conanio/clang8
- <<: *conan-osx
osx_image: xcode7.3
env: CONAN_APPLE_CLANG_VERSIONS=7.3
osx_image: xcode9
env: CONAN_APPLE_CLANG_VERSIONS=9.0
- <<: *conan-osx
- osx_image: xcode9.3
+ osx_image: xcode9.4
env: CONAN_APPLE_CLANG_VERSIONS=9.1
+ - <<: *conan-osx
+ osx_image: xcode10.2
+ env: CONAN_APPLE_CLANG_VERSIONS=10.0
- language: android
sudo: true
+ dist: trusty
android:
components:
- tools
- platform-tools
- - build-tools-25.0.2
- - android-25
- extra-android-m2repository
+ licenses:
+ - 'android-sdk-preview-license-52d11cd2'
+ - 'android-sdk-license-.+'
+ - 'google-gdk-license-.+'
compiler:
- gcc
before_install:
- - git clone https://github.com/urho3d/android-ndk.git $HOME/android-ndk-root
- - export ANDROID_NDK_HOME=$HOME/android-ndk-root
- # Setup environment for Linux build which is required to build the sample.
- - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
- - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get update -qq; fi
- - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq g++-$GCC_VERSION; fi
- - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq gcc-$GCC_VERSION; fi
- - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ln -s -v -f $(which g++-$GCC_VERSION) /usr/bin/g++; fi
- - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ln -s -v -f $(which gcc-$GCC_VERSION) /usr/bin/gcc; fi
+ - echo y | sdkmanager "platforms;android-30"
+ - echo y | sdkmanager "build-tools;30.0.2"
+ - echo y | sdkmanager "ndk-bundle"
+ - echo y | sdkmanager "cmake;3.6.4111459"
+ script:
+ - cmake -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF .; make; export PATH="$PATH:${PWD}"
+ - cd android; ./gradlew clean build
+
+ - language: generic
+ if: type IN (pull_request)
+ os: linux
+ install:
+ - bash .travis/format_install.sh
+
script:
- - failed=0; for build_gradle in $(git ls-files | grep build.gradle); do ( cd "$(dirname "${build_gradle}")" && ./gradlew build ) || failed=1; done; exit $((failed))
+ - bash .travis/format_check.sh