# Everything is driven by the test.sh, so the language doesn't really # matter, it just controls the default install/script/etc. steps on # travis. language: cpp script: ./tests.sh $CONFIG # The test matrix is manually built to cover a mix of linux and macOS # hosted setups; this lets some extra settings be done specific to each # host/language instead of forcing common values on all the tests. matrix: include: # ----------------------------------------------------------------- # macOS hosted tests for Objective-C - os: osx env: CONFIG=objectivec_osx osx_image: xcode9.3 language: objective-c # iOS build log was starting to choke travis UI, so split to cover the # Xcode Debug and Release Configurations independently. - os: osx env: CONFIG=objectivec_ios_debug osx_image: xcode9.3 language: objective-c - os: osx env: CONFIG=objectivec_ios_release osx_image: xcode9.3 language: objective-c - os: osx env: CONFIG=objectivec_cocoapods_integration osx_image: xcode9.3 language: objective-c # ----------------------------------------------------------------- # macOS hosted tests for other languages. - os: osx env: CONFIG=cpp - os: osx env: CONFIG=cpp_distcheck - os: osx env: CONFIG=javascript - os: osx env: CONFIG=python - os: osx env: CONFIG=python_cpp - os: osx env: CONFIG=php5.6_mac - os: osx env: CONFIG=php7.0_mac # ----------------------------------------------------------------- # Linux hosted tests # The dotnet environment requires Ubuntu 14.04 or 16.04. This # configuration is effectively an "extra" one, outside the # autogenerated matrix. - os: linux env: CONFIG=csharp language: csharp dist: trusty dotnet: 2.0.3 mono: none # Install the .NET Core 1.0 runtime as that's what we test against addons: apt: sources: - sourceline: 'deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-trusty-prod trusty main' key_url: 'https://packages.microsoft.com/keys/microsoft.asc' packages: - dotnet-sharedframework-microsoft.netcore.app-1.0.5 # This test is kept on travis because it doesn't play nicely with other # tests on jenkins running in parallel. - os: linux env: CONFIG=cpp_distcheck # The Java compatibility test currently only runs on Linux because it will # fetch pre-built Linux protoc binaries in the test. - os: linux env: CONFIG=java_compatibility sudo: required dist: trusty # The Python compatibility test currently only runs on Linux because it will # fetch pre-built Linux protoc binaries in the test. - os: linux env: CONFIG=python_compatibility sudo: required dist: trusty notifications: email: false