That's gerrit part of the proposal. I don't have enough karma with Infra to make that work. Dave or someone else need to take that up.
--Alex > -----Original Message----- > From: Kelven Yang [mailto:kelven.y...@citrix.com] > Sent: Wednesday, March 6, 2013 10:22 AM > To: cloudstack-dev@incubator.apache.org > Subject: Re: [PROPOSAL] BVT for CloudStack checkins > > First +1 on BVT. > > Second, should we consider the idea of having a staging area for people to > check-in? Which is that making master always the stable(reasonable) branch > for main development, but whenever people make check-ins, it goes into > staging first, and we have maintainers(could be automatic) to run whatever > test framework we have and only perform automatic merge to master from > staging area after a successful test-run? > > Kelven > > On 3/6/13 4:21 AM, "Prasanna Santhanam" <t...@apache.org> wrote: > > >Great to see you kick this off Alex! I have a few ideas for this and > >had been looking for help as well .. > > > >I had a draft lying around of an email you sent me long ago about > >tiered testing and I think your proposal fits very well on this: > > > >The tl;dr of that conversation was as below > > > >- improve simulator for runtime testability > >- customize to model and inject failures > >- make a habit of writing tests around bug reports (I started tagging > >tests since api_refactoring on JIRA already. > >look for the integration-test label) > >- make integration testing easier using factories and DSLs (from > > Chiradeep) > >(part 1 of this work was started on this in the marvin-refactor > >branch) > > > >More comments inline > > > >On Wed, Mar 06, 2013 at 12:12:11AM +0530, Alex Huang wrote: > >> Hi All, > >> > >> As most of you are aware, the master branch keeps getting broken by > >> checkins for various reasons. Committers need to be more responsible > >> about their checkins but I don't think we can depend on that > >> happening. There are various reasons. The most obvious to me is > >> that granting committership is not based on code competency. > >> (And I don't think it should.) Given that we need to build a BVT > >> system for ensure that checkins do not break the branch. > >> > >> Here's my proposal: > >> > >> Existing components that we'll use. > >> > >> - Citrix has contributed its testing to Apache. > >> > >> - Apache CloudStack has already a simulator that's been used > >>for scale testing. > >> > >> - Marvin > >> > >> - DevCloud-kvm > >> > >> Work Proposal: > >> > >> - Convert the Citrix testing into three phases: > >> > >> o Setup > >> > >> o Test > >> > >> o Verify > > > >I do the build, package, setup, test, verify in my integration test > >pipeline and a similar pipeline for a developer combined into easily > >runnable maven profiles/lifecycles/goals would be great to have. > > > >> - Add a Setup and Verify phase for the simulator > >> - Add all of the agent commands necessary for the simulator to > >>pass the testing. > >> - Add a Setup and Verify phase for devCloud-kvm > > > >The setups exists as configs in the marvin sandbox already. Just need > >to hook it up with mvn. For verify there is a simple python script > >testSetupSuccess.py already that checks two things > > > >- system VMs are up > >- built-in templates are downloaded > > > >This should be a good start IMO. > > > >Currently devcloud-kvm is a bit hard to run from a developer > >environment. But it's great to have in a continuous environment backed > >by a KVM host with a Linux 3.0 kernel. Marcus has written up some > >pretty good documentation for this. If someone can help bring up that > >setup I can assist in bringing up the tests using my devcloud-ci > >scripts. I'm bringing up devcloud after Kelven 'alerted' us of the > >memory fix. > > > >> > >> - Add two more profiles to pom > >> o Checkin-test-with-simulator: Runs the testing against the simulator > >> o Checkin-test-with-devCloud: Runs the testing against devcloud > >> > >> - All of the profiles will attempt to also check the merge > >>list that Chip has proposed.' > > > >> - We will also change marvin to easily add zones with > >> actual hardware. It will be based on a data driven document to do > >> the setup. > >This is currently partly doable using a properties file in the sandbox > >$ python advanced_env.py -i xen.properties -o xen.cfg > > > >gives out a advanced zone config for the properties specified. > >Is data driven similar or you are talking about a DSL that Edison > >mentioned at CCC12? > > > >> > >> For a developer to checkin: > >> > >> - S/he must writes marvin tests for their feature and add > >> it to the BVT. > >I made some progress on this in my marvin-refactor branch and will > >collect my thoughts in an FS that I am drafting. The marvin tests are > >difficult to write in their current form. I'm following Chiradeep's > >recommendation for providing factories and once those are baked a DSL > >language devs can quickly mock down tests against a simulator using the > >above mentioned mvn profiles. > > > >> > >> - S/he must run the checkin tests to verify everything works. > >> - If the feature contains a hardware/vpx component, simulation > >>must be added. > >> > >> At this point, everything is about the developer writing in their > >>feature branch and merging in. > >> > >> On infrastructure side: > >> > >> - We'll setup continuous BVT based on the simulator. > >I brought this up on the IRC and the list y'day, so +1 - happy to help > >> > >> - I again push that we must use Gerrit to test the code > >> before it gets merge into the branch but I'll leave that for someone > >> else to do that. > >> > >> Let me know what you guys think. I'll probably break out a bvt > >> branch to work on this. Anyone want to join me? > > > >Count me in! > > > >-- > >Prasanna.,