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