aboutsummaryrefslogtreecommitdiffhomepage
path: root/.travis.yml
diff options
context:
space:
mode:
authorGravatar Thomas Van Lenten <thomasvl@google.com>2017-11-14 23:00:02 -0500
committerGravatar Thomas Van Lenten <thomasvl@google.com>2017-11-16 21:46:46 -0500
commit6700f41c4b699b0e31ab2bf90036c04273784fd8 (patch)
tree02322afdb8c2c45b0764fd60bbcdab764a24d3d0 /.travis.yml
parent2b3aa1c29460967848021e41a208085e76bc4232 (diff)
Travis config cleanups and move ObjC to Xcode 9.1.
Stop having travis build the test matrix and make it explicit so extra settings are only on the test that need the, this helps make the travis UI a little cleaner (linux hosted stuff doesn't list an Xcode version), as well as avoid unneeded requirements limiting the travis pool something can run on. Small improvements to objectivec/DevTools/full_mac_build.sh to avoid some repeated scripting and hopefully make things more reliable work with Xcode 9.x. Don't mark the iOS tests as able to fail, hopefully with the new settings they are stable and won't give false signals. Simplify the case for xcode versions and fixup xcode 9.[0-1].
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml95
1 files changed, 63 insertions, 32 deletions
diff --git a/.travis.yml b/.travis.yml
index 44a7701b..b89a4363 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,33 +1,65 @@
-sudo: required
-dist: trusty
-# everything is driven by the test.sh, so the language doesn't really
+# 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
-os: osx
-osx_image: xcode8.3
-script:
- - ./tests.sh $CONFIG
-env:
- - CONFIG=cpp
- - CONFIG=cpp_distcheck
- # Testing go requires installing golang, currently travis.sh is doing that
- # with apt-get which doesn't work on OS X.
- # It's nontrivial to programmatically install a new JDK from the command
- # line on OS X, so we rely on testing on Linux for Java code.
- - CONFIG=javascript
- # iOS build log was starting to choke travis UI, so split to cover the
- # Xcode Debug and Release Configurations independently.
- - CONFIG=objectivec_ios_debug
- - CONFIG=objectivec_ios_release
- - CONFIG=objectivec_osx
- - CONFIG=objectivec_cocoapods_integration
- - CONFIG=python
- - CONFIG=python_cpp
- - CONFIG=php5.6_mac
- - CONFIG=php7.0_mac
+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.1
+ 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.1
+ language: objective-c
+ - os: osx
+ env: CONFIG=objectivec_ios_release
+ osx_image: xcode9.1
+ language: objective-c
+ - os: osx
+ env: CONFIG=objectivec_cocoapods_integration
+ osx_image: xcode9.1
+ 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
+ # Xcode versions force a host version of macOS:
+ # https://docs.travis-ci.com/user/reference/osx/#OS-X-Version
+ # Force macOS 10.12, the default travis image is going to be
+ # updated "soon", at which point this came come out:
+ # https://blog.travis-ci.com/2017-10-16-a-new-default-os-x-image-is-coming
+ osx_image: xcode8.3
+ - os: osx
+ env: CONFIG=php7.0_mac
+ # Same note about macOS version as on the php5.6_mac config.
+ osx_image: xcode8.3
+
+ # -----------------------------------------------------------------
+ # Linux hosted tests
+
# The dotnet environment requires Ubuntu 14.04 or 16.04. This
# configuration is effectively an "extra" one, outside the
# autogenerated matrix.
@@ -35,6 +67,7 @@ matrix:
env: CONFIG=csharp
language: csharp
dist: trusty
+ sudo: required
dotnet: 1.0.1
mono: none
# This test is kept on travis because it doesn't play nicely with other
@@ -45,16 +78,14 @@ matrix:
# 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
- allow_failures:
- # Mark the iOS test as flakey as xcodebuild some times fails to start the
- # iOS Simulator.
- - os: osx
- env: CONFIG=objectivec_ios_debug
- - os: osx
- env: CONFIG=objectivec_ios_release
+ sudo: required
+ dist: trusty
+
notifications:
email: false