We have multiple Eclipse RCP projects broken into many plugin modules. Each of these modules are checked into subversion. We have recently worked in the headless ant builds and would like to hook these into our continuous integration system. Right now we use Contimuum since most of our other projects are built in maven.
Can someone give me a brief description how we might use Hudson to do this? Our build script right now assumes it will build this structure based on variable in the users $HOME/build.properties file. Does Hudson have the ability to build multiple submodules and place them in a particular directory and then invoke the master build? Also, we use the generated ant scripts from Eclipse which point at an Eclipse install (which is checked into Subversion), so it would need to be checked out, but not built). Any advice would be much appreciated. Thanks! Birch |
J B wrote:
> We have multiple Eclipse RCP projects broken into many plugin modules. Each > of these modules are checked into subversion. We have recently worked in > the headless ant builds and would like to hook these into our continuous > integration system. Right now we use Contimuum since most of our other > projects are built in maven. > > Can someone give me a brief description how we might use Hudson to do this? > Our build script right now assumes it will build this structure based on > variable in the users $HOME/build.properties file. > > Does Hudson have the ability to build multiple submodules and place them in > a particular directory and then invoke the master build? Also, we use the > generated ant scripts from Eclipse which point at an Eclipse install (which > is checked into Subversion), so it would need to be checked out, but not > built). like it's doable. Let's see, first you need an Eclipse installation, which you have in your workspace. If it changes often, you can create one job in Hudson just to check out the latest, or if it doesn't change often, you can just have it available in some known location, just like you install Ant/Maven/JDK etc for use in Hudson. You can create jobs for each modules. If you have a large number of jobs, you might want to do so by creating config.xml programatically then reload Hudson. If it's just 4 or 5 I'd do it manually by coping one job to others. You can configure each module to capture their artifacts. Then you can create a job for the master build. The first thing it can do is to use wget or something to download the latest artifacts of all submodules into the proper place in the master build workspace. Since you are using Maven, maven this could be simply replaced by having submodules install artifacts to the local repo, and then have your master build simply picks up the jars from there. And finally, you can set up chained build from submodules to the master, so that any completed build in a submodule would trigger a master module build. There are other ways to set up things, but from what I inferred from your e-mail, this is what I'd do. Are you using Maven2? I'm also working on better integration of Maven2 to Hudson, so you might find that useful. > Any advice would be much appreciated. No problem. Let us know how it goes, or if you find any problems. Also, when you eventually deploy Hudson in your environment, would you be interested in helping us with a case study document like [1]? You can write the whole text if you like, or you can just let me ask a bunch of questions, and have me write up the text. [1] https://hudson.dev.java.net/case-study-1.html -- Kohsuke Kawaguchi Sun Microsystems [hidden email] |
Free forum by Nabble | Edit this page |