Hi all,
I've continued my Jenkins kick and have been tweaking what we have for
Calcite and Avatica.
I've consolidated the separate JDK-specific builds for both projects
into one "matrix" job. A matrix job is special in that, for a change to
the repository (per our polling time of 1hour), it will launch sub-jobs
for each configured "axis". In our case, each axis is a JDK version (7,
8 and 9-beta). After this matrix job successfully completes (all JDK
versions build successfully and pass their unit tests), it launches a
"promotion job". The promotion job receives the git commit ID from the
matrix job and then `mvn deploy`'s the SNAPSHOT to the ASF nexus.
This gets us a few things:
* Fewer jobs to manage (easy to add a new JDK version, remove an old one)
* Fresh SNAPSHOT builds for Avatica and Calcite (ease of downstream
development)
* Only commits that pass our unit tests are deployed (confidence in
artifacts sent to Nexus)
A good entrypoint to observe this all is at
https://builds.apache.org/view/Calcite/
I have not yet disable/removed the old Calcite jobs. I'll wait for at
least one ACK that people are OK with me doing this for Calcite (I've
already gone ahead with Avatica as its been stable for a week or so).
- Josh