This switches from using the deprecated hashValue to hash(into:).
It also switches from using index to firstIndex (matching the change in
the standard library).
In the test template, we switch to using String directly instead of
String.characters.
This also switches all the Travis macOS tests to use the Xcode 10.2 / Mojave
image and changes the Linux Swift tests to download Swift 5.0.1.
Move Travis Swift, .NET, and C++ macOS tests from Xcode 9 to Xcode 10.1.
Move Travis Linux Swift tests from Trusty to Xenial and to Swift 4.2.1.
Remove the dirname call when setting JAVA_HOME, it seems to be incorrect.
Print the JAVA_HOME that Travis ends up with.
Moving to Xcode 10.1 / Swift 4.2 exposes the issue discussed in #2372
so this cset will fail automated tests without the relevant fixes.
This avoids hitting the Microsoft server every time. The download isn't
super-reliable, so this should help with build reliability.
This extends the cache timeout, because the package is large and the
upload was timing out.
This uses Travis's new(ish) Ubuntu Trusty image, and changes the
version number of the Swift binaries that we download.
We now install clang-3.6. This is not the default on Trusty, but
it's required by the Swift 4.0 toolchain.
This also removes the lines to upgrade libicu-dev and sqlite3. These
are sufficiently up-to-date in the Trusty image.
We require Xcode 9 for the Swift target, and the C++ and .NET tests
shouldn't care either way.
We no longer need to install cmake: this is already in the Travis
Xcode 9.0 image (and it barfs if we try to install it again).
We no longer need the rvm bug workarounds; a newer version of rvm is
in the Xcode 9.0 image so this is no longer a problem.
The openssl package is already installed and up-to-date now, so there is
no need to install that.
These changes mean that we don't need before-install-osx-cpp.sh
or before-install-os-swift.sh at all, and before-install-osx-dotnet.sh
gets a bit shorter. .travis.yml gets a small change to handle the
fact that some platform / target combos don't need before-install any more.
This gives a "smoke-test" phase which just runs the Java tests, to get a
quick check that compilation is working. It is followed by the
"main-test" phase that tests each target on their preferred platform
(e.g. Swift on macOS, Python on Linux) followed by "test-extended"
which runs all the remaining tests (all the other Java variants, and
any other platforms supported by each target).
This means that those tests in the later phases won't run unless the
earlier phases have passed. This should vastly improve our Travis
turnaround.
This changeset also changes the matrix so that we get some coverage across
all of openjdk7,8 and oraclejdk7,8 and moves the Go and Javascript tests
to Trusty just so that they are more up-to-date. This adds one additional
Java test run, so now we compare oraclejdk8 and openjdk8 in case of
problems in that regard.
Note that the test matrix has not been extended to cover oraclejdk9. This
currently fails for us with a build issue, so it is not included in this
changeset.
This changeset also removes the meaningless custom apt configuration in the
section for macOS .NET tests.
This means that it will write a line to the log each minute while the
tests are running, up to the specified timeout. This works around the
fact that one of Maven / Surefire / JUnit are buffering our test output
until a whole test class has run.
This is a problem in particular with the TestLeftRecursion tests because
they are taking over 9 minutes on their own. After 10 minutes of silence
Travis assumes that a job is broken and kills it. We've been hitting
that timeout regularly.
This is recommended by the Travis docs to speed up the parts of the
tests where unpack / install has a significant cost, as opposed to the
download.
This changeset adds entries for ~/.m2 (for Maven) and
~/Library/Caches/Homebrew for (brew on macOS).