COMPRESS-413 has some examples which include:
- Switching to the trusty container, which doesn't require installing as
many updates.
- Use only two JDKs: openjdk7 and openjdk8.
- JDK 7 is obsolete -
- Oracle EOL'ed JDK7 over two years ago; openjdk7 occasionally gets
patched (though it's not available from the default source in recent
versions of ubuntu, including xenial (16.0.4), which is the current LTS.
- Java 7 is mostly relevant only for older versions of Android. Some
JLS 8 features are not supported for versions of Android prior
to 7.0 (e.g.
Repeatable annotations, and interface default/ static methods). However,
this environment is not tested for under oracle or openjdk 7. It's also
painful to build for under maven.
- Run the entire CI process in the build phase. This avoids compiling
and testing two or three times over. However, any errors will fail the
build.
- Cache build dependencies (this is another reason to move plugin work
to the build phase, since the cache is saved before after_success is run).
- Add a mvnw setup. 3.5.0 may be needed if jdk9ea is added to the build
matrix.
- The pull request also has random test coverage increases to pacify a
confused coveralls.
See: https://github.com/apache/commons-compress/pull/39
which combined with previous changes from~
Ran for 5 min 4 sec
Total time 13 min 26 sec
to:
Ran for 1 min 56 sec
Total time 1 min 50 sec
[Note that some variation comes from primed/unprimed caches]