You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by Josh Elser <jo...@gmail.com> on 2017/04/11 20:32:36 UTC

More Jenkins tweaking

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

Re: More Jenkins tweaking

Posted by Michael Mior <mm...@uwaterloo.ca>.
Looks great to me! Thanks Josh :)

--
Michael Mior
mmior@apache.org

2017-04-11 16:32 GMT-04:00 Josh Elser <jo...@gmail.com>:

> 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
>

Re: More Jenkins tweaking

Posted by Josh Elser <jo...@gmail.com>.
I'm going to go ahead and disable the old jobs since no one has 
complained :). I realized that I misconfigured the email notification on 
the new jobs (fixed that now).

Josh Elser wrote:
> 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