Hi all,

Java Precommit duration is about 1h15. That is quite a burden. Especially
if something gets broken. We turned off parallel builds, which we really
need to re-enable. But beyond that, I see low-hanging fruit that would most
appropriately be a separate Jenkins job.

Here's a scan of a successful run:
https://scans.gradle.com/s/2s4bd5hc45wuy/timeline

* 17m :beam-runners-google-cloud-dataflow-java-examples:preCommit
* 4m :beam-runners-google-cloud-dataflow-java-examples-streaming:preCommit
These are integration tests that should have their own job & status anyhow.
We lumped them in because Maven can't do separate tests. Gradle makes this
cheap and easy.

Then there are these which are the only other tasks over 1m:

* 2m :beam-runners-google-cloud-dataflow-java-legacy-worker:test
* 2m :beam-runners-google-cloud-dataflow-java-fn-api-worker:test
* 2m :beam-sdks-java-nexmark:test
* 1m :beam-sdks-java-io-google-cloud-platform:test
* 1m :beam-sdks-java-io-hbase:test
* 1m :beam-sdks-java-extensions-sql:test

Maybe not worth messing with these.  Also if we remove all the shadowJar
and shadowTestJar tasks it actually looks like it would only save 5
minutes, so I was hasty in thinking that would solve things. It will make
interactive work better (going from 30s to maybe <10s for rebuilds) but
won't help that much for Jenkins.

Kenn

Reply via email to