At line 1 changed 1 line. |
I tried several times to get [AppFuse] to work with [CruiseControl|http://cruisecontrol.sourceforge.net], but never got it to work. Rather than just throwing away my efforts, I figured I'd document them here in hopes that someone else might be able to figure out a solution. |
It's pretty easy to setup your [AppFuse] application to work with [CruiseControl|http://cruisecontrol.sourceforge.net]. You can either download the files from this page or if you're using 1.6.1+ - they're located in the ''extras/cruisecontrol'' directory. Thanks to [Mike Clark|http://www.clarkware.com/cgi/blosxom] and [ Jared Richardson|http://www.pragmaticprogrammer.com/titles/prj/index.html] for their help getting this work. |
At line 3 changed 1 line. |
To setup automated builds with CruiseControl and AppFuse, you need to [download CruiseControl|http://sourceforge.net/project/showfiles.php?group_id=23523] (I used [2.2.rc3|http://prdownloads.sourceforge.net/cruisecontrol/cruisecontrol-2.2.rc3.zip?download]). Extract it to your $TOOLS_HOME directory, wherever that may be. I believe you have to build it too (with Ant). |
<div class="note" style="margin: 5px">__NOTE:__ The main lesson I learned when trying to get this to work is don't use Cygwin. In fact, I recommend you use a *nix machine if you [have one available|http://www.clarkware.com/cgi/blosxom/2004/10/19#TheyNeedABuildMachine] |
</div> |
At line 5 changed 1 line. |
After you've installed and built CruiseControl, create an "appfuse-cc" or similar directory next to your project directory. In my tests, I had: |
To run CruiseControl on your AppFuse project, perform the following steps: |
At line 8 added 4 lines. |
1. [Download||http://prdownloads.sourceforge.net/cruisecontrol/cruisecontrol-2.2.zip?download] and install CruiseControl. Extract it to your $TOOLS_HOME directory, wherever that may be. |
|
2. After you've installed CruiseControl, create an "appfuse-cc" or similar directory next to your project directory. In my tests, I had: |
|
At line 13 changed 1 line. |
Download the following files and put them in the "appfuse-cc" directory: |
3. Download the following files and put them in the "appfuse-cc" directory: |
At line 21 added 1 line. |
* [buildstatus.xsl] |
At line 19 changed 1 line. |
To begin, you'll need to create a "logs/appfuse" directory in the "appfuse-cc" directory and you'll also need to run "ant" to run everything manually once. I'd love to automate these steps, but I couldn't figure out how. |
The latest version of these files can be found [in CVS|appfuse.dev.java.net/source/browse/appfuse/extras/cruisecontrol]. |
At line 21 changed 1 line. |
I used Cygwin to run cruise.sh. You'll likely need to change paths in the above files to match your system. |
4. Modify cruise.sh to point to the installed directory. If you're on Windows, rename cruise.sh to cruise.bat and point to the cruisecontrol.bat file. |
At line 23 changed 1 line. |
I experienced many issues in the process of trying to get this to work. You can't use the simple [<ant>|http://cruisecontrol.sourceforge.net/main/configxml.html#ant] builder with AppFuse b/c it doesn't find all of the tasks (even though they're defined) in build.xml. To get around this, you have to use the [antscript attribute|http://confluence.public.thoughtworks.org/display/CC/AntScriptAttribute] - which works, but the process hangs after running all the tests. It just sits at: |
5. Modify config.xml for your Ant path and publishing directories. |
|
6. Modify build.xml so it points to your CVS server and project. |
At line 25 changed 2 lines. |
{{{BUILD SUCCESSFUL |
Total time: 3 minutes 39 seconds}}} |
7. Run "ant" in the current directory or checkout your project into the "checkout" directory (you'll need to create it). You can also run this on the "appfuse" project for testing purposes. |
At line 28 changed 1 line. |
... for hours ... |
8. Create a "logs/appfuse" directory in the current directory. |
At line 30 changed 1 line. |
So this is where I'm at, everything works from a build/test perspective, but CC won't recover after running the antscript and just hangs. If I specify a timeout - it'll hit the timeout and then publish the results as failed (even though everything succeeded). |
9. Run "cruise.sh". |
|
10. Tweak the publishers in config.xml to your heart's content. |
|
SIDENOTE: I was puzzled why my HTML E-Mails didn't contain all the pretty formatting like Spring's does. Then I looked at their [latest archived one|http://article.gmane.org/gmane.comp.java.springframework.devel/6300] and noticed it looks the same on Gmane as it does in GMail. I'd recommend sending your build notifications to an e-mail account that can be read with a good HTML e-mail reader. |