[OpenDaylight Infrastructure] Jenkins Strategy


Ed Warnicke (eaw) <eaw@...>
 

Luis,
This might help in setting up Jenkins Jobs that trigger on build changes elsewhere :)

Ed
On Nov 12, 2013, at 2:00 PM, Luis Gomez <luis.gomez@...> wrote:

Hi everybody,
 
As we agreed last week, I have prepared the following proposal for Jenkins in our project:
 
First, what we would like to achieve (see if you agree on this):
 
- Build the release vehicles whenever we have new distribution code or opendaylight code
- Run system test whenever we have new test code, distribution code or opendaylight code
- System test bed has always latest successful test code and controller artifacts
- We do not upload release artifacts to Nexus if they do not pass system test
 
And here is the proposal (3 triggers):
 
Trigger 1) New patch in /distributions folder ->  
- Verify tasks: build distributions, upload release artifacts to controller VM, run system test, restore last successful release artifact in controller VM, send code for reviewing
- Merge tasks: merge to master, build distributions, upload release artifacts to controller VM, run system test, if fail restore last successful release artifacts in controller VM, if pass upload release artifacts to Nexus
 
Trigger 2) New patch in /test folder ->
- Verify tasks: upload patch test code in Test tools VM, run system test, restore master code in Test tools VM, send code for reviewing
- Merge tasks: merge to master, upload master test code in Test tools VM, run system test
 
Trigger 3) Change (merge) in other OpenDaylight project ->
- Integration tasks: build distributions, upload release artifacts to controller VM, run system test , if fail restore last successful release artifacts in controller VM, if pass upload release artifacts to Nexus
 
The way we are going to setup these tasks is:
 
- Master Jenkins running in OpenDaylight will handle the distributions build and the controller SW + test code upload functions
- Slave Jenkins running ir our Test Tools VM to run system test. I have already setup some CSIT Job in Open Lab at Ericsson, I will post some information in the wiki when I get it to work
 
So, if my assumptions are correct, we can setup 6 jobs in  Master Jenkins to cover the above:
- Distribution Verify
- Distribution Merge
- Test Verify
- Test Merge
- ODL Integration
- System Test (CSIT) to run in Slave Jenkins
 
Please feel free to comment on this proposal.
 
Thanks/Luis
 
_______________________________________________
infrastructure mailing list
infrastructure@...
https://lists.opendaylight.org/mailman/listinfo/infrastructure


Luis Gomez <luis.gomez@...>
 

Sure that is the idea.

 

From: Ed Warnicke (eaw) [mailto:eaw@...]
Sent: Tuesday, November 12, 2013 12:49 PM
To: Luis Gomez
Cc: integration-dev@...; infrastructure@...
Subject: Re: [OpenDaylight Infrastructure] Jenkins Strategy

 

Luis,

This might help in setting up Jenkins Jobs that trigger on build changes elsewhere :)

 

Ed

On Nov 12, 2013, at 2:00 PM, Luis Gomez <luis.gomez@...> wrote:



Hi everybody,

 

As we agreed last week, I have prepared the following proposal for Jenkins in our project:

 

First, what we would like to achieve (see if you agree on this):

 

- Build the release vehicles whenever we have new distribution code or opendaylight code

- Run system test whenever we have new test code, distribution code or opendaylight code

- System test bed has always latest successful test code and controller artifacts

- We do not upload release artifacts to Nexus if they do not pass system test

 

And here is the proposal (3 triggers):

 

Trigger 1) New patch in /distributions folder ->  

- Verify tasks: build distributions, upload release artifacts to controller VM, run system test, restore last successful release artifact in controller VM, send code for reviewing

- Merge tasks: merge to master, build distributions, upload release artifacts to controller VM, run system test, if fail restore last successful release artifacts in controller VM, if pass upload release artifacts to Nexus

 

Trigger 2) New patch in /test folder ->

- Verify tasks: upload patch test code in Test tools VM, run system test, restore master code in Test tools VM, send code for reviewing

- Merge tasks: merge to master, upload master test code in Test tools VM, run system test

 

Trigger 3) Change (merge) in other OpenDaylight project ->

- Integration tasks: build distributions, upload release artifacts to controller VM, run system test , if fail restore last successful release artifacts in controller VM, if pass upload release artifacts to Nexus

 

The way we are going to setup these tasks is:

 

- Master Jenkins running in OpenDaylight will handle the distributions build and the controller SW + test code upload functions

- Slave Jenkins running ir our Test Tools VM to run system test. I have already setup some CSIT Job in Open Lab at Ericsson, I will post some information in the wiki when I get it to work

 

So, if my assumptions are correct, we can setup 6 jobs in  Master Jenkins to cover the above:

- Distribution Verify

- Distribution Merge

- Test Verify

- Test Merge

- ODL Integration

- System Test (CSIT) to run in Slave Jenkins

 

Please feel free to comment on this proposal.

 

Thanks/Luis

 

_______________________________________________
infrastructure mailing list
infrastructure@...
https://lists.opendaylight.org/mailman/listinfo/infrastructure