language: c sudo: false branches: only: - master matrix: include: ### ## Linux builds using various versions of GCC. ### - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=gcc-7 CXX_COMPILER=g++-7 addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-7 - g++-7 - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.4 CXX_COMPILER=g++-4.4 addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.4 - g++-4.4 ### ## Test that Autotools build works. ### - os: linux env: BUILD_SYSTEM=autotools C_COMPILER=gcc-5 CXX_COMPILER=g++-5 addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-5 - g++-5 ### ## Test that fuzzer is compiling / working. ### - os: linux env: BUILD_SYSTEM=fuzz C_COMPILER=clang-7 CXX_COMPILER=clang++-7 ASAN_OPTIONS=detect_leaks=0 addons: apt: sources: - ubuntu-toolchain-r-test - llvm-toolchain-xenial-7 packages: - clang-7 ### ## clang on Linux ### - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=clang-7 CXX_COMPILER=clang++-7 addons: apt: sources: - llvm-toolchain-xenial-7 - ubuntu-toolchain-r-test packages: - clang-7 - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=clang-3.5 CXX_COMPILER=clang++-3.5 addons: apt: sources: - llvm-toolchain-trusty-3.5 - ubuntu-toolchain-r-test packages: - clang-3.5 ### ## testing arm via qemu on Linux ### - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=arm-linux-gnueabihf-gcc CXX_COMPILER=arm-linux-gnueabihf-g++ CFLAGS="-march=armv7-a -mfloat-abi=hard -mfpu=neon" addons: apt: sources: - ubuntu-toolchain-r-test packages: - qemu - gcc-arm-linux-gnueabihf - libc6-dev-armhf-cross ### ## PGI Community Edition on Linux ### # Installer is currently broken #- os: linux # env: BUILD_SYSTEM=cmake C_COMPILER=pgcc CXX_COMPILER=pgc++ ### ## Python builds on Linux ### - os: linux language: python python: 2.7 env: BUILD_SYSTEM=python C_COMPILER=gcc-5 CXX_COMPILER=g++-5 addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-5 - g++-5 - os: linux language: python python: 3.6 env: BUILD_SYSTEM=python C_COMPILER=gcc-5 CXX_COMPILER=g++-5 addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-5 - g++-5 - os: linux language: python python: 3.7 env: BUILD_SYSTEM=python C_COMPILER=gcc-5 CXX_COMPILER=g++-5 addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-5 - g++-5 - os: linux language: python python: 3.8 env: BUILD_SYSTEM=python C_COMPILER=gcc-5 CXX_COMPILER=g++-5 addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-5 - g++-5 ### ## CMake on OS X ## ## These all work, but it seems unnecessary to actually build them ## all since we already test all these versions of GCC on Linux. ## We'll just test 4.4 and the most recent version. ### - os: osx env: BUILD_SYSTEM=cmake C_COMPILER=gcc CXX_COMPILER=g++ - os: osx env: BUILD_SYSTEM=cmake C_COMPILER=gcc-4.9 CXX_COMPILER=g++-4.9 - os: osx env: BUILD_SYSTEM=cmake ### ## Python 2.7 OS X build (using the system /usr/bin/python) ### - os: osx env: BUILD_SYSTEM=python C_COMPILER=gcc CXX_COMPILER=g++ ### ## Sanitizers ### - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=clang-7 CXX_COMPILER=clang++-7 SANITIZER=address ASAN_OPTIONS=detect_leaks=0 addons: apt: sources: - ubuntu-toolchain-r-test - llvm-toolchain-xenial-7 packages: - clang-7 - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=clang-7 CXX_COMPILER=clang++-7 SANITIZER=thread addons: apt: sources: - ubuntu-toolchain-r-test - llvm-toolchain-xenial-7 packages: - clang-7 - os: linux env: BUILD_SYSTEM=cmake C_COMPILER=clang-7 CXX_COMPILER=clang++-7 SANITIZER=undefined CFLAGS="-fno-sanitize-recover=undefined,integer" addons: apt: sources: - ubuntu-toolchain-r-test - llvm-toolchain-xenial-7 packages: - clang-7 - os: linux env: BUILD_SYSTEM=maven jdk: # maven + jdk11 + javadoc == trouble - openjdk10 language: java - os: linux sudo: required language: java jdk: oraclejdk9 env: BUILD_SYSTEM=bazel addons: apt: sources: - sourceline: "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" key_url: "https://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg" - ubuntu-toolchain-r-test packages: - bazel - os: osx env: BUILD_SYSTEM=bazel osx_image: xcode11.3 language: java before_install: ### ## If we use the matrix to set CC/CXX Travis, overwrites the values, ## so instead we use C/CXX_COMPILER, then copy the values to CC/CXX ## here (after Travis has set CC/CXX). ### - if [ -n "${C_COMPILER}" ]; then export CC="${C_COMPILER}"; fi - if [ -n "${CXX_COMPILER}" ]; then export CXX="${CXX_COMPILER}"; fi - scripts/.travis.sh before_install install: - scripts/.travis.sh install script: - scripts/.travis.sh script after_success: - scripts/.travis.sh after_success before_deploy: - scripts/.travis.sh before_deploy deploy: - provider: bintray file: "scripts/.bintray.json" user: "eustas" key: secure: "Kbam/lTAdz72fZivbs6riJT+Y4PbuKP7r6t5PAWxJxAAykjwnYTRe3zF472g9HCE14KYMsdB+KSYSgg6TGJnqGC9gL9xhhGU9U/WmA+vbMWS/MSnMWpK9IRpp77pM2i2NKZD4v33JuEwKFCBJP3Vj6QQ5Qd1NKdobuXJyznhgnw=" on: condition: "${BUILD_SYSTEM} = bazel" skip_cleanup: true