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

Reply via email to