Wednesday, May 24, 2006

Cruise Control Step by Step procedure

Following steps might be useful while installing cruise control:

Please Note:
1. These steps were created in one of our projects and by a team member. Many of the folders are hard coded. The developer needs to modify the folder names appropriately.
2. There could be other ways to set up and more easily.

Installation of the Cruise Control
-----------------------------------
Version : Cruise Control 2.3

INSTALL PROCEDURE

NOTE: It is VERY, VERY important that you follow this procedure carefully and exactly with NO changes.
CruiseControl can be quite finicky and takes a long time to debug if it doesn't work right!


Pre-requisite: (on the machine where cruise control is running)
---------------------------------------------------

Tortoise CVS should be installed.
Tomcat 5.0 is installed
JSDK1.4.2 version or above
ANT 1.6 or above


Folder Structure
---------------------------------------------------
-Create a Folder continuousintegration on c:
c:\continuousintegration
-cruisecontrol
-builds
-artifacts
-checkout


Installation Steps:
-------------------

1) Create the Folder structure as shown in above.

2) Install the Tortise clint on the machine where the cruise control is running.
(required to update the files from repository)

3) Install the Java SDK 1.4.2_06 in "c:\j2sdk1.4.2_06" and set JAVA_HOME to the same.
or set the JAVA_HOME where you have the JSDK installed.

4) Install Tomcat 5.0 in "c:\Tomcat5.0" (no spaces!) and set CATALINA_HOME to "c:\Tomcat5.0". Use port 80 during the installation and note down the administrator username and password tht you supply(username:admin password: admin).

5) set ANT_HOME variable in the System's environment to "C:\continuousintegration\apache-ant-1.6.2"
or set the ANT_HOME where you have the ant folder.

6) download the cruisecontrol-2.3.0.1.zip version from the below link and extract this folder in the path
C:\continuousintegration\cruisecontrol downloadlink :http://cruisecontrol.sourceforge.net/download.html

- And set CCDIR variable in the System's environment to
"C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main"
(This is path of the cruise control which you extracted)

- copy the config.xml file attached with this document into path
"C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\bin"

7) Prepend "%JAVA_HOME%\bin;%ANT_HOME%\bin" to the PATH variable in the system environment

8) Restart the machine. This is necessary for the PATH changes to take effect for creating a Service


9) Start Tomcat. Go to "http://localhost/manager/html" and login in using the administrator login and password.

10) Before deploying the cruisecontrol.war on tomcat, build the cruisecontrol.war through command prompt.
follow steps
-go to command pomopt "C:\Downloads\cruisecontrol-2.3.0.1\reporting\jsp"
-execute command C:\Downloads\cruisecontrol-2.3.0.1\reporting\jsp>build war;
-build will start now and will ask for the fallowing inputs so plese input associated values
as given below.
-set.log.dir:
"C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\bin\log"
-set.status.file:
"currentbuildstatus.txt"
-set.artifaacts.dir:
"C:\continuousintegration\cruisecontrol\builds\artifacts"

-confirm that your build is successfull.

11) Using the "WAR file to deploy" section, deploy
"C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\dist\cruisecontrol.war" into
"C:\Tomcat5.0\wepapps" Tomcat. You should be able to see the cruisecontrol jsp application in a browser at "http://localhost/cruisecontrol". This does NOT mean that cruisecontrol process is running.

12) Check out your project, and copy/cut the entire "checked out source code" folder and paste it into "C:\continuousintegration\cruisecontrol\builds\checkout".

13) Go into the "C:\continuousintegration\cruisecontrol\builds\checkout\" folder and run "ant war" to verify that an ant build works in this directory.

14) Run "InstallCruiseControlService.bat" from directory "C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\bin" in a command shell.

15) If you go to "Start->Control Panel->Administrative Tools->Services", you should now be able to see a service called "CruiseControl".

16) Change the service to "Automatic" and start it. This should run the service. Check by typing "http://localhost:8000" into a browser. This should bring up the cruisecontrol's JMX control panel.

17) Click on the link named "CruiseControl Project:name=" To view the attributes set for the cruisecontrol.

18) Run "cruisecontrol.bat" from directory
"C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\bin" in a command shell.
If the console did't throw any exception then Hopefully your cruise control will be working fine
and it will continously look for the modification at your repository.

19) See your console for your cruise controle activities or you can see the log files from
C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\bin\logs

Some of the Usefull Reference Sites:
http://cruisecontrol.sourceforge.net/
http://cruisecontrol.sourceforge.net/main/configxml.html
http://www.javaranch.com/journal/200409/DrivingOnCruiseControl_Part1.html
http://www.javaranch.com/journal/200410/DrivingOnCruiseControl_Part2.html

Configuration files
---------------------
1. config.xml ==> Generally available in: C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\bin

2. CruiseBuild.xml ==> available in your source code folder. Should contain the CVSRoot info.

3. use "\" appropriately while mentioning folder structure based on your operating system.

4. Take special care while specifying the environment variables. I got stuck while appending "%ANT_HOME%"\bin to the PATH. Finally, I expanded ANT_HOME to proper windows directory and pasted onto PATH.

5. Ensure that the log file directory is properly set. Mostly it would be:
"C:\continuousintegration\cruisecontrol\cruisecontrol-2.3.0.1\main\bin\logs\
You can also set the log directory at the time of building the Cruisecontrol WAR OR you can change the log dir in web.xml after deplopying Cruisecontrol on tomcat

No comments: