Cruisecontrol is setup on /home/cruisecontrol on all build boxes
Directory Structure
work/checkout: Directory where all the projects are checked out for the build.
work/scripts : Contains all build scripts, property files and htmls (Maps to https://svn.jboss.org/repos/qa/cruisecontrol/trunk/scripts/cruisecontrol/)
work/scripts/resources: Contains the resource files for hibernate, jbpm and portal builds (Maps to https://svn.jboss.org/repos/qa/cruisecontrol/trunk/resources/)
work/logs: Contains Cruisecontrol build log (logYYYYMMDDHHMMSSbuild.XXX.xml) for every project on CC
work/artifacts: Contains build artifacts and logs for each project build
work/templates: Temporary checkout folder to generate the cc-config scripts.
Cruisecontrol web application
http://cruisecontrol.jboss.com runs on tomcat installed on /home/cruisecontrol/tomcat on build01 using port 8079.
To deploy the cruisecontrol web-app, build cruisecontrol.war from the src found on /home/cruisecontrol/cruisecontrol-2.1.6/ and copy it to the tomcat deploy dir.
Build Artifacts sync from QA lab to production box
We only have a single CC web-app instance serving all the different CC instances.
Since the QA lab boxes and production lab boxes are not connected we rync the build artifacts and logs from the QA lab boxes to the production boxes.
rsync script is a cronjob (/home/cruisecontrol/sync_to_cc.sh) on dev01.
Historical Builds stored
We preserve only the latest builds. Script to do this stay on svn (http://anonsvn.jboss.org/repos/qa/scripts/retention_policy/).
There is a cron job that tries to update it locally every 15 minutes
There is a cron job on build01 and dev01 that runs it every day
The script does basically the following:
10 0 find /home/cruisecontrol/work/logs -mtime +30 -maxdepth 2 -mindepth 2 -exec /bin/rm -rf {} \;
30 0 find /home/cruisecontrol/work/artifacts -mtime +30 -maxdepth 2 -mindepth 2 -exec /bin/rm -rf {} \;
as well as count based retention (see svn)
Windows setup
We currently have one windows cc instance with SFU installed. It has poor support for NFS drive has to be remounted for every rerun thus we use the attached .bat file to start cc instance. Note environment setting, remounting part, -Dcc.home and cruisecontrol is started without jetty which differ from the original file version. CC is started as cruisecontrol local user (see attached files).
SFU installed components - client and mapper + 2 updates (see download dir on dev29)
NFS buffer size is 8
map users to unix uid numers to match their home directories
use hard mount
using password file cruisecontrol and test_cc users are mapped to the appropriate uids
This instance is started from installed java and cruisecontrol on the box itself. subversion and pstools (pskill) must be in PATH. Can add projects there using the jbosslabstemplate-cc-2.6.vm
Comments