Vavr: We. need. faster. builds.

Created on 1 Oct 2016  路  7Comments  路  Source: vavr-io/vavr

Currently the Benchmarks are also tested when unit tests run (both, on CI Server and on a local machine).

When cherry picking for a release, many builds are involved (after each cherry-picked commit). For 2.0.4 it were 47 commits.

In 2.0.3 one mvn clear test ran 01:29 min on my machine. On current master it runs 07:40 min.

That. is. too. long.

Overall build time

  • 47 commits * 01:29 min = < 1 hour
  • 47 commits * 07:40 min = 6 hours

The next release has nearly 700 commits.


Goal: Create faster builds
Non-Goals: Remove tests completely


Suggested solution:

  • Locally run only non-benchmark unit-tests (by default). By switch (e.g. Maven profile) the benchmark tests can also be run locally
  • On the CI server the benchmark unit tests should run by default to ensure nothing broke.
builinfrastructuride revertecloseduplicate 芦non-public禄

Most helpful comment

Note: Next week I meet Stefan Oehme (Gradle Gmbh) in Kiel to create a Gradle build for Javaslang.

All 7 comments

Note: Next week I meet Stefan Oehme (Gradle Gmbh) in Kiel to create a Gradle build for Javaslang.

+1 for a Gradle build, though that's not the source of slowdown.
Our build is not very complicated, should be doable in a few days :) (I've done more Maven to Gradle transitions that I'm proud to admit ...).

Also, if you cherrypick locally and commit the result only once, it would result in a single build.

We will move to Gradle and optimize the build #1277

@danieldietrich, why do you think Gradle will make the tests run faster?

@paplorinc The travis CI build time does not matter to me. It is the local build time that matters when I cherry-pick commits for a release.
When switching to Gradle I will add options to disable GWT tests and Benchmarks. I will run these once before pushing.

As mentioned previously, you can do that today also, by cherrypicking everything locally, and push only at the end.

I don't think Gradle will do anything differently here.

If Travis supports it, we may try parallel tests, however :) (probably possible in Maven also)

I think it can be configured with Maven Surefire Fork option

Was this page helpful?
0 / 5 - 0 ratings

Related issues

santiagopoli picture santiagopoli  路  6Comments

manu-m picture manu-m  路  6Comments

ashrwin picture ashrwin  路  6Comments

civitz picture civitz  路  6Comments

Pyeroh picture Pyeroh  路  3Comments