# 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
