Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [higgins-dev] Re: Higgins automated builds

Hello,

Let me  continue this discussion [0].

I review :
 *  continuous integration tool Hudson[1];
 *  some solutions for building java project  Ant+Ivy[2], Maven[3] and Buckminster[4];
 *  maven repositories Artifactory[23] and Nexus[24].


Hudson is  extensible continuous integration engine. It has native support for maven and subversion and It has many useful plug-ins [5], so i setup it  on rh156 [6] for testing.   

I started from auto-building azigo RPPS [7], which uses higgins2ant generated ant files. Hudson checks out sources from higgins and azigo svn servers and build deploy-able war file. 

Then i added Cardsync  [8]  which uses maven for building Cardsync modules  and higgins2ant generated ant files for building rpps dependencies.  Hudson checks out sources, build and run tests for each project (if they exist) deploy  war file on rh155 dev server [9] and run  tests for CardSync Rest WS endpoint. After build it adds comment to jira tickets according to svn comments like  [15].

Then i added job for grinder stress tests of Rpps WS endpoint. It auto-run after  Cardsync build, so it tests latest war.  You may see main trend [10] or detail per build [11]. 

Hudson has  buckminster  plug-in, so i added job [12] for building buckminster  Hello_XML_World_Example [13].

It seams, hudson satisfy all requirements [0], so i didn't test Cruise Control [16] (i used it early). 

Also, eclipse already has hudson on build machine [26]. You can request a job to be added to hudson by opening a bugzilla ticket [25] (thanks Jeesmon).


It was really difficult  to compare Maven[3] and  Buckminster[4] (I didn't use buckminster before. buckminster documentation is not so good.) So pls, fix me if something wrong.

Both,  Maven (maven-antrun-plugin [18]) and  Buckminster may invoke wherever already existed higgins2ant generated build scripts. So both are satisfy first 5  requirements [1]. 

But, requirement  #6  "Azigo build service SHOULD pull binaries wherever possible from the Higgins download site. Only compile from source if no-such Higgins binary gets autobuilt." require to modify already existed "home-made" Higgins build  script or replace it on hudson.  Hudson may deploy maven projects to maven repository or  via SCP plugin[19] all other artifacts. Then both  maven and Buckminster may download dependencies from maven repository. 

Hudson has few plug-ins for run native builders[], so it satisfy to requirement  #7 "[Valery] The solution should support builds for native solutions (Windows, Linux and OSX)". 

In my opinion Buckminster has one advantage, you need just one url (.cquery)  for download and build project with all dependencies. Something similar  maven-scm-plugin (scm:bootstrap) [20] can do, but not so good.  However Buckminster depends on  Eclipse, so we need eclipse for building.  

But I'd  like to use  maven due to:
 *   it's  great dependency management tool. I spend a lot of hours for merging conflict dependencies in war projects. But it's really easy with maven (just see attached m2 screen shots ). 
 *  maven is really flexible tool, it  has many useful plug-ins, but buckminster just few.


Please, see couple other review [21] and [22].

Today, i start working with third problem "higgins repository" (download server), it may be p2 or maven repository, both buckminster and maven may support them, but i  didn't test maven with p2, so tends to use maven repository.  I setup  Artifactory[23] and i going to setup  Nexus[24]. 

Please don't hesitate to review it and let me know your opinion and recommendations. 




[0] http://wiki.eclipse.org/Automated_Solution-Level_Builds
[1] https://hudson.dev.java.net/
[2] http://ant.apache.org/ivy/index.html
[3] http://maven.apache.org/
[4] http://www.eclipse.org/buckminster/
[5] http://wiki.hudson-ci.org/display/HUDSON/Plugins
[6] http://rh156.azigo.net/
[7] http://rh156.azigo.net/job/Rpps/
[8] http://rh156.azigo.net/job/CardSyncAndRpps/
[9] http://rh155.sohosmart.net/cardsync-new/
[10] http://rh156.azigo.net/job/RppsStressTest155-2user/grinder/
[11] http://rh156.azigo.net/job/RppsStressTest155-2user/39/grinder/
[12] http://rh156.azigo.net/job/BuckminsterHelloWorld/
[13] http://wiki.eclipse.org/Hello_XML_World_Example_(Buckminster)
[14] http://rh156.azigo.net/job/Make-org.eclipse.higgins.configuration.api/3/console
[15] http://jira.azigo.net/browse/WWM-2155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel
[16] http://cruisecontrol.sourceforge.net/
[17] http://ant.apache.org/ivy/m2comparison.html
[18] http://maven.apache.org/plugins/maven-antrun-plugin/
[19] http://wiki.hudson-ci.org/display/HUDSON/SCP+plugin
[20] http://maven.apache.org/scm/maven-scm-plugin/bootstrap-mojo.html
[21] http://stackoverflow.com/questions/579603/why-choose-buckminster-over-maven
[22] http://ant.apache.org/ivy/m2comparison.html
[23] http://www.jfrog.org/products.php
[24] http://nexus.sonatype.org/
[25] http://wiki.eclipse.org/Common_Build_Infrastructure/Getting_Started/Build_In_Hudson
[26] https://build.eclipse.org/hudson/

-- 
thanks,
Alexander Yuhimenko

On Thu, 16 Jul 2009 16:54:57 +0300
Alexander Yuhimenko <AYuhimenko@xxxxxxxxxxxxxx> wrote:

> Thanks Paul,
> 
> I quick review Buckminster, it seams to be really powerful tool, but  Valery concerned about non java projects.
> 
> Let us few days for play with it.
>  
> -- 
> thanks,
> Alexander Yuhimenko <AYuhimenko@xxxxxxxxxxxxxx>
> 
> On Thu, 16 Jul 2009 09:31:11 -0400
> Paul Trevithick <ptrevithick@xxxxxxxxx> wrote:
> 
> > Hi Alex,
> > 
> > Moving this conversation to this list
> > ## inline
> > 
> > On 7/16/09 8:49 AM, "Alexander Yuhimenko" <ayuhimenko@xxxxxxxxxxxxxxxx>
> > wrote:
> > 
> > > Hello,
> > > 
> > > Item #3 still requires to use Buckminster ("Any component that requires new
> > > features in our home-made build system MUST instead create and deploy a
> > > Buckminster build script").
> > > 
> > > ## FIXED #3 thanks. I now consider the Higgins build system to be ³TBD² not
> > > necessarily Buckminster
> > > 
> > > It seems we need at least 3 OS (Mac/Win/Linux) for building all components,
> > > Win and Linux may be installed like geust OS into VirtualBox, but MacOS can
> > > not. So it may  make sense to use a Mac server with 2 (or more) VM's.
> > > 
> > > ## Added this as a new bullet here [1]
> > > 
> >         ## [1] http://wiki.eclipse.org/Automated_Solution-Level_Builds
> > 
> > 
> 
> _______________________________________________
> higgins-dev mailing list
> higgins-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/higgins-dev
> 



Back to the top