Utility for checking the encoding and line ending of source files (#5188)
[platform/upstream/flatbuffers.git] / .travis.yml
1 env:
2   global:
3     # Set at the root level as this is ignored when set under matrix.env.
4     - GCC_VERSION="4.9"
5     # Fail on first error if UBSAN or ASAN enabled for a target
6     - UBSAN_OPTIONS=halt_on_error=1
7     - ASAN_OPTIONS=halt_on_error=1
8     # Travis machines have 2 cores
9     - JOBS=2
10     - MAKEFLAGS="-j 2"
11
12 conan-linux: &conan-linux
13   os: linux
14   dist: xenial
15   language: python
16   python: "3.7"
17   services:
18     - docker
19   install:
20     - ./conan/travis/install.sh
21   script:
22     - ./conan/travis/build.sh
23   if: tag IS present
24
25 conan-osx: &conan-osx
26   os: osx
27   language: generic
28   install:
29     - ./conan/travis/install.sh
30   script:
31     - ./conan/travis/build.sh
32   if: tag IS present
33
34 matrix:
35   include:
36     #- language: python
37     #  python: "2.7"
38     #  install:
39     #    - "pip install wheel twine"
40     #  script:
41     #    - "cd python/"
42     #    - 'VERSION="$TRAVIS_TAG" python setup.py sdist bdist_wheel'
43     #    - "cd ../"
44     #  deploy:
45     #    # Checkpointed release builds.
46     #    - provider: script
47     #      script: .travis/deploy-python.sh
48     #      skip_cleanup: true
49     #      on:
50     #        tags: true
51     #        # all_branches must be set with tags: true. See below post:
52     #        # https://stackoverflow.com/a/27775257/1076585
53     #        all_branches: true
54     #    # Produce a new build for the cutting edge when master changes.
55     #    - provider: script
56     #      script: .travis/deploy-python.sh
57     #      skip_cleanup: true
58     #      on:
59     #        branch: master
60     - language: cpp
61       os:
62         - linux
63
64       addons:
65         apt:
66           packages:
67             - docker-ce
68       script:
69         - bash .travis/build-and-run-docker-test-containers.sh
70
71     - language: cpp
72       os:
73         - linux
74
75       compiler:
76         - gcc
77
78       env:
79         matrix:
80           - BUILD_TYPE=Debug
81           - BUILD_TYPE=Release CONAN=true
82
83       before_install:
84       - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
85       - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get update -qq; fi
86       - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq g++-$GCC_VERSION; fi
87       - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq gcc-$GCC_VERSION; fi
88       - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ln -s -v -f $(which g++-$GCC_VERSION) /usr/bin/g++; fi
89       - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ln -s -v -f $(which gcc-$GCC_VERSION) /usr/bin/gcc; fi
90
91       script:
92       - bash .travis/check-sources.sh
93       - bash grpc/build_grpc.sh
94       - cmake . 
95         -DCMAKE_BUILD_TYPE=$BUILD_TYPE 
96         -DFLATBUFFERS_BUILD_GRPCTEST=ON 
97         -DGRPC_INSTALL_PATH=$TRAVIS_BUILD_DIR/google/grpc/install 
98         -DPROTOBUF_DOWNLOAD_PATH=$TRAVIS_BUILD_DIR/google/grpc/third_party/protobuf
99         -DFLATBUFFERS_CODE_SANITIZE=ON
100       - cmake --build . -- -j${JOBS}
101       - LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/google/grpc/install/lib ctest --extra-verbose --output-on-failure
102       - bash .travis/check-generate-code.sh
103       - if [ "$CONAN" == "true" ] && [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo pip install conan && conan create . flatbuffers/${TRAVIS_BRANCH}@google/testing -s build_type=$BUILD_TYPE -tf conan/test_package; fi
104
105     - language: cpp
106       os: osx
107       osx_image: xcode9.3
108       env:
109         matrix:
110           - BUILD_TYPE=Debug
111           - BUILD_TYPE=Release
112       
113       script:
114       - bash grpc/build_grpc.sh
115       - cmake .
116         -DCMAKE_BUILD_TYPE=$BUILD_TYPE 
117         -DFLATBUFFERS_BUILD_GRPCTEST=ON 
118         -DGRPC_INSTALL_PATH=$TRAVIS_BUILD_DIR/google/grpc/install 
119         -DPROTOBUF_DOWNLOAD_PATH=$TRAVIS_BUILD_DIR/google/grpc/third_party/protobuf
120         -DFLATBUFFERS_CODE_SANITIZE=ON
121       - cmake --build . -- -j${JOBS}
122       - DYLD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/google/grpc/install/lib ctest --extra-verbose --output-on-failure
123       - bash .travis/check-generate-code.sh
124
125     - <<: *conan-linux
126       env: CONAN_GCC_VERSIONS=4.9 CONAN_DOCKER_IMAGE=conanio/gcc49
127     - <<: *conan-linux
128       env: CONAN_GCC_VERSIONS=5 CONAN_DOCKER_IMAGE=conanio/gcc5
129     - <<: *conan-linux
130       env: CONAN_GCC_VERSIONS=6 CONAN_DOCKER_IMAGE=conanio/gcc6
131     - <<: *conan-linux
132       env: CONAN_GCC_VERSIONS=7 CONAN_DOCKER_IMAGE=conanio/gcc7
133     - <<: *conan-linux
134       env: CONAN_GCC_VERSIONS=8 CONAN_DOCKER_IMAGE=conanio/gcc8
135     - <<: *conan-linux
136       env: CONAN_CLANG_VERSIONS=3.9 CONAN_DOCKER_IMAGE=conanio/clang39
137     - <<: *conan-linux
138       env: CONAN_CLANG_VERSIONS=4.0 CONAN_DOCKER_IMAGE=conanio/clang40
139     - <<: *conan-linux
140       env: CONAN_CLANG_VERSIONS=5.0 CONAN_DOCKER_IMAGE=conanio/clang50
141     - <<: *conan-linux
142       env: CONAN_CLANG_VERSIONS=6.0 CONAN_DOCKER_IMAGE=conanio/clang60
143     - <<: *conan-osx
144       osx_image: xcode7.3
145       env: CONAN_APPLE_CLANG_VERSIONS=7.3
146     - <<: *conan-osx
147       osx_image: xcode8.3
148       env: CONAN_APPLE_CLANG_VERSIONS=8.1
149     - <<: *conan-osx
150       osx_image: xcode9
151       env: CONAN_APPLE_CLANG_VERSIONS=9.0
152     - <<: *conan-osx
153       osx_image: xcode9.4
154       env: CONAN_APPLE_CLANG_VERSIONS=9.1
155     - <<: *conan-osx
156       osx_image: xcode10
157       env: CONAN_APPLE_CLANG_VERSIONS=10.0
158
159     - language: android
160       sudo: true
161       android:
162         components:
163           - tools
164           - platform-tools
165           - build-tools-25.0.2
166           - android-25
167           - extra-android-m2repository
168       compiler:
169         - gcc
170
171       before_install:
172         - git clone https://github.com/urho3d/android-ndk.git $HOME/android-ndk-root
173         - export ANDROID_NDK_HOME=$HOME/android-ndk-root
174         # Setup environment for Linux build which is required to build the sample.
175         - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
176         - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get update -qq; fi
177         - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq g++-$GCC_VERSION; fi
178         - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq gcc-$GCC_VERSION; fi
179         - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ln -s -v -f $(which g++-$GCC_VERSION) /usr/bin/g++; fi
180         - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ln -s -v -f $(which gcc-$GCC_VERSION) /usr/bin/gcc; fi
181       script:
182         - failed=0; for build_gradle in $(git ls-files | grep build.gradle); do ( cd "$(dirname "${build_gradle}")" && ./gradlew build ) || failed=1; done; exit $((failed))