Dear all,

I come from a Java world and there we use for instance :
http://hudson-ci.org/ to do a continuous integration build. Which means all
latest code gets updated, all test ran & if build successful, the code is
tagged (so you can take the code again from a successful build). It also
provides a nice GUI, and lets you inspect previous builds, the results from
that build, ... .

In Pharo, I did not directly find an alternative, and therefor, also as an
exercise, I tried to build one myself.
The primitive, but working result so far is:
http://www.squeaksource.com/BuildBot.

This project depends on BBProjectDescription, which defines class
BBBuildProjectDescription with defines:

   - BBBuildProjectDescription>>allProjectPackageNames


   - BBBuildProjectDescription>>installLatestWithDependencies


   - BBBuildProjectDescription>>buildsClassToPutVersionsOn

What buildbot then does is using a BBBuildProjectDescription , checkout all
latest code, run the tests for all these packages & , if successfull, take
the buildsClassToPutVersionsOn and add a new method on it, describing the
exact package numbers :
for instance:
BuildBotMockProjectBuilds class >> packagesForBuild20091127102654
    ^#(('TODO' -> 'TODO-BKBAG.5.mcz') ('BuildBtMockProject' ->
'BuildBtMockProject-BartGauquie.7.mcz') ).

Using this information I can easily install this exact version. Furthermore
creating a release is then just creating for instance a class
BuildBotMockProjectReleases with:
BuildBotMockProjectReleasesclass >> release_1_0
    ^BuildBotMockProjectBuilds packagesForBuild20091127102654

I am in fact 'tagging' a group packages that belong together and work
together. So I can rollout this exact versions of the packages to some image
automatically.


However,
Today I noticed that there already existed a project:
http://www.squeaksource.com/TestServerSimple which more or less does the
same thing. The only thing it does not do, or I did not find it, is to
version the build, so that you can restore a project again ; a project which
is consisting of a number of packages which are compatible and for which all
tests ran. Is there a way to do that in TestServerSimple?

Furthermore, are there any other projects that do a similar thing I'm not
aware of? Is there any default way in Pharo to build a project which
consists of multiple packages that each have different versions?

I've seen MetaCello & Gofer as some other way 2 load groups of packages, but
no integration into some kind of ci tool.

This kind of automated ci server seems 2 me an essential tool in Pharo.

Thanks for any pointers / ideas !

Kind Regards,

Bart

-- 
imagination is more important than knowledge - Albert Einstein
Logic will get you from A to B. Imagination will take you everywhere -
Albert Einstein
Learn from yesterday, live for today, hope for tomorrow. The important thing
is not to stop questioning. - Albert Einstein
The true sign of intelligence is not knowledge but imagination. - Albert
Einstein
Gravitation is not responsible for people falling in love. - Albert Einstein
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to