1sudo: required
2# Note: travis currently does not support listing more than one language so
3# this cheats and claims to only be cpp.  If they add multiple language
4# support, this should probably get updated to install steps and/or
5# rvm/gemfile/jdk/etc. entries rather than manually doing the work.
6language: cpp
7os:
8  - osx
9# The Objective C build needs Xcode 7.0 or later.
10osx_image: xcode7.3
11script:
12  - ./tests.sh $CONFIG
13env:
14  - CONFIG=cpp
15  - CONFIG=cpp_distcheck
16  - CONFIG=golang
17  - CONFIG=java_jdk7
18  - CONFIG=java_oracle7
19  - CONFIG=javanano_jdk7
20  - CONFIG=javanano_oracle7
21  - CONFIG=javascript
22  # iOS build log was starting to choke travis UI, so split to cover the
23  # Xcode Debug and Release Configurations independently.
24  - CONFIG=objectivec_ios_debug
25  - CONFIG=objectivec_ios_release
26  - CONFIG=objectivec_osx
27  - CONFIG=objectivec_cocoapods_integration
28  - CONFIG=python
29  - CONFIG=python_cpp
30  - CONFIG=ruby21
31  - CONFIG=ruby22
32  - CONFIG=jruby
33matrix:
34  exclude:
35    # It's nontrivial to programmatically install a new JDK from the command
36    # line on OS X, so we rely on testing on Linux for Java code.
37    - os: osx
38      env: CONFIG=java_jdk7
39    - os: osx
40      env: CONFIG=java_oracle7
41    - os: osx
42      env: CONFIG=javanano_jdk7
43    - os: osx
44      env: CONFIG=javanano_oracle7
45    # Requires installing golang, currently travis.sh is doing that with apt-get
46    # which doesn't work on OS X.
47    - os: osx
48      env: CONFIG=golang
49  include:
50    # The dotnet environment requires Ubuntu 14.04 or 16.04. This
51    # configuration is effectively an "extra" one, outside the
52    # autogenerated matrix.
53    - os: linux
54      env: CONFIG=csharp
55      dist: trusty
56    # This test is kept on travis because it doesn't play nicely with other
57    # tests on jenkins running in parallel.
58    - os: linux
59      env: CONFIG=cpp_distcheck
60  allow_failures:
61    # These currently do not work on OS X but are being worked on by @haberman.
62    - os: osx
63      env: CONFIG=ruby22
64    - os: osx
65      env: CONFIG=jruby
66    # https://github.com/google/protobuf/issues/1253 - Started failing when
67    # we moved to an OS X image that is 10.11.
68    - os: osx
69      env: CONFIG=python_cpp
70    # Mark the iOS test as flakey as xcodebuild some times fails to start the
71    # iOS Simulator.
72    - os: osx
73      env: CONFIG=objectivec_ios_debug
74    - os: osx
75      env: CONFIG=objectivec_ios_release
76notifications:
77  email: false
78