Show build.xml syntax highlighted
<project name="cruisecontrol.packager" default="package" basedir=".">
<property name="build.dir" value="${basedir}/build"/>
<property name="target.dir" value="${basedir}/target"/>
<property name="deb.dir" value="${basedir}/target/debs"/>
<property name="rpm.dir" value="${basedir}/target/RPMS"/>
<property name="config.webapp" value="cruisecontrol.war"/>
<property name="config.name" value="cruisecontrol"/>
<property name="config.summary" value="A continuous integration build loop"/>
<property name="config.spec.src" value="${target.dir}/cruisecontrol.spec"/>
<property name="config.desc" value="Cruisecontrol allows automated hands-off building of software in a continuous integration environment."/>
<property name="config.webapps.dir" value="/usr/share/tomcat/webapps"/>
<property name="config.runtime.user" value="cruise"/>
<property name="config.runtime.group" value="${config.runtime.user}"/>
<property name="cruisecontrol" value="../.."/>
<property name="cruisecontrol.main" value="${cruisecontrol}/main"/>
<property name="cruisecontrol.binaryrelease" value="${cruisecontrol}/binaryrelease"/>
<property name="cruisecontrol.reporting" value="${cruisecontrol}/reporting/jsp"/>
<property name="cruisecontrol.reporting.webapp" value="${cruisecontrol.reporting}/dist/${config.webapp}"/>
<property name="cruisecontrol.dashboard" value="${cruisecontrol}/reporting/dashboard"/>
<property name="cruisecontrol.dashboard.webapp" value="${cruisecontrol.dashboard}/dist/dashboard.war"/>
<property name="cruisecontrol.cc-config.webapp" value="${cruisecontrol}/target/cc-config/dist/cc-configuration.war"/>
<property name="install.docs" value="${build.dir}/usr/share/doc/${config.name}"/>
<property name="install.share" value="${build.dir}/usr/share/${config.name}"/>
<property name="install.bin" value="${install.share}/bin"/>
<property name="install.dist" value="${install.share}/dist"/>
<property name="install.lib" value="${install.share}/lib"/>
<property name="install.webapps" value="${install.share}/webapps"/>
<property name="install.etc" value="${build.dir}/etc"/>
<property name="reporting.override.file" value="override.properties"/>
<property prefix="reporting" file="${reporting.override.file}"/>
<loadproperties srcFile="${basedir}/../../build.properties">
<filterchain>
<prefixlines prefix="cc.build."/>
<tokenfilter>
<replaceregex pattern="-dev" replace="" flags="gi"/>
</tokenfilter>
</filterchain>
</loadproperties>
<property name="config.version" value="${cc.build.cc.version}"/>
<property name="config.release" value="1"/>
<property prefix="package" file="package.properties"/>
<available file="/usr/bin/rpmbuild" property="rpmbuild.available"/>
<available file="/usr/bin/dpkg" property="dpkg.available"/>
<loadfile property="post.install" srcFile="${basedir}/debian/postinst"/>
<loadfile property="pre.uninstall" srcFile="${basedir}/debian/prerm"/>
<filterset id="packageInfoFilterSet">
<filter token="VERSION" value="${config.version}"/>
<filter token="RELEASE" value="${config.release}"/>
<filter token="SUMMARY" value="${package.summary}"/>
<filter token="DESCRIPTION" value="${package.description}"/>
<filter token="ROOT" value="${build.dir}"/>
<filter token="POST" value="${post.install}"/>
<filter token="PRE" value="${pre.uninstall}"/>
</filterset>
<target name="clean" description="deletes old builds">
<delete failOnError="true" includeEmptyDirs="true" dir="${build.dir}"/>
<delete failOnError="true" includeEmptyDirs="true" dir="${target.dir}"/>
</target>
<target name="-init" description="makes required dirs, etc." depends="clean">
<condition property="on.unix">
<os family="unix"/>
</condition>
<fail message="As this creates Unix packages, it only works on unix systems" unless="on.unix"/>
<fail message="please specify config.release property on the command line" unless="config.release"/>
<echo message="Building version number: ${config.version}"/>
<echo message="You can over-ride this by specifying -Dconfig.version when invoking Ant"/>
<echo message="Building release number: ${config.release}"/>
<echo message="You can over-ride this by specifying -Dconfig.release when invoking Ant"/>
<!-- Give people time to see the above message... -->
<sleep seconds="2"/>
<mkdir dir="${build.dir}"/>
<mkdir dir="${rpm.dir}"/>
<mkdir dir="${deb.dir}"/>
<!-- Check if we need to build Cruise first... -->
<condition property="build.cruise">
<not>
<and>
<available file="${cruisecontrol.reporting.webapp}"/>
<available file="${cruisecontrol.dashboard.webapp}"/>
<available file="${cruisecontrol.cc-config.webapp}"/>
</and>
</not>
</condition>
</target>
<target name="build" description="Builds CruiseControl" if="build.cruise" depends="-init">
<ant dir="${cruisecontrol}" target="bin-zip" inheritAll="false">
<property name="basedir" value="${cruisecontrol}"/>
</ant>
</target>
<target name="install"
description="Create CruiseControl skeleton in the build dir"
depends="install.cc, install.sample.project"/>
<target name="install.cc" depends="clean, build">
<defaultexcludes default="true"/>
<mkdir dir="${install.share}"/>
<mkdir dir="${install.docs}"/>
<copy todir="${install.dist}">
<fileset dir="${cruisecontrol.main}/dist"/>
</copy>
<copy todir="${install.lib}">
<fileset dir="${cruisecontrol.main}/lib" includes="*.jar" excludes="inmemorysfee*.jar, checkstyle*, **/.svn"/>
<fileset dir="${cruisecontrol.main}/lib/ant" includes="ant.jar, ant-launcher.jar, ant-junit.jar"/>
</copy>
<copy todir="${install.lib}">
<fileset dir="${cruisecontrol.binaryrelease}/lib"/>
</copy>
<copy todir="${install.docs}">
<fileset dir="${cruisecontrol}/docs"/>
</copy>
<copy todir="${install.docs}/main">
<fileset dir="${cruisecontrol.main}/docs"/>
</copy>
<copy todir="${install.docs}/reporting">
<fileset dir="${cruisecontrol.reporting}/docs"/>
</copy>
<copy todir="${install.bin}">
<fileset file="${cruisecontrol.main}/bin/cruisecontrol.sh"/>
</copy>
<copy todir="${install.share}" file="${cruisecontrol}/license.txt"/>
<copy todir="${build.dir}/var/spool/cruisecontrol" file="${cruisecontrol.main}/log4j.properties"/>
<copy todir="${install.etc}">
<fileset dir="${basedir}/etc"/>
</copy>
<mkdir dir="${build.dir}/usr/bin"/>
<exec executable="chmod" failonerror="true">
<arg value="a+x"/>
<arg value="${build.dir}/usr/share/cruisecontrol/bin/cruisecontrol.sh"/>
<arg value="${build.dir}/etc/init.d/cruisecontrol"/>
</exec>
<symlink link="${build.dir}/usr/bin/cruisecontrol" resource="/usr/share/cruisecontrol/bin/cruisecontrol.sh"/>
<mkdir dir="${build.dir}/${reporting.user.log.dir}"/>
<mkdir dir="${build.dir}/${reporting.cruise.build.artifacts.dir}"/>
<mkdir dir="${build.dir}/${reporting.cruise.checkout.dir}"/>
<mkdir dir="${build.dir}/var/cache/cruisecontrol"/>
<mkdir dir="${build.dir}/var/run"/>
<touch file="${build.dir}/var/spool/cruisecontrol/cc.pid"/>
<symlink link="${build.dir}/var/run/cruisecontrol.pid" resource="/var/spool/cruisecontrol/cc.pid"/>
<unzip src="${cruisecontrol.reporting.webapp}" dest="${install.webapps}/cruisecontrol"/>
<unzip src="${cruisecontrol.dashboard.webapp}" dest="${install.webapps}/dashboard"/>
<unzip src="${cruisecontrol.cc-config.webapp}" dest="${install.webapps}/cc-config"/>
</target>
<target name="install.sample.project" depends="install.cc">
<!-- Make sure we have the sample connectfour project checked out -->
<echo message="Checking out sample connectfour project..."/>
<exec executable="svn" dir="${build.dir}/${reporting.cruise.checkout.dir}" failonerror="true">
<arg line="co http://cruisecontrol.svn.sf.net/svnroot/cruisecontrol/trunk/connectfour"/>
</exec>
</target>
<target name="deb" depends="pre-package" if="dpkg.available">
<mkdir dir="${build.dir}/DEBIAN"/>
<copy todir="${build.dir}/DEBIAN">
<fileset dir="${basedir}/debian"/>
<filterset refid="packageInfoFilterSet"/>
</copy>
<exec executable="chmod" failonerror="true">
<arg value="a+x"/>
<arg value="${build.dir}/DEBIAN/postinst"/>
<arg value="${build.dir}/DEBIAN/prerm"/>
</exec>
<exec executable="dpkg" failonerror="true">
<arg value="-b"/>
<arg value="build"/>
<arg value="${deb.dir}/cruisecontrol_${config.version}-${config.release}.deb"/>
</exec>
</target>
<target name="rpm" depends="pre-package" if="rpmbuild.available">
<copy file="redhat/cruisecontrol.spec" todir="${rpm.dir}">
<filterset refid="packageInfoFilterSet"/>
</copy>
<delete dir="${build.dir}/DEBIAN"/>
<exec executable="rpmbuild" failonerror="true">
<arg value="--buildroot"/>
<arg value="${build.dir}"/>
<arg value="--define"/>
<arg value="_rpmdir ${rpm.dir}"/>
<arg value="-bb"/>
<arg value="--target"/>
<arg value="noarch"/>
<arg value="${rpm.dir}/cruisecontrol.spec"/>
</exec>
</target>
<target name="pre-package" description="Prep directory for packaging" depends="-init,install,build"/>
<target name="package" depends="deb,rpm"/>
</project>
See more files for this project here
CruiseControl is a framework for a continuous build process. It includes, but is not limited to, plugins for email notification, Ant, and various source control tools. A web interface is provided to view the details of the current and previous builds.
Project homepage:
http://sourceforge.net/projects/cruisecontrol
Programming language(s): Java,XML
License: other
debian/
conffiles
control
postinst
prerm
etc/
cruisecontrol/
cruisecontrol.xml
default/
cruisecontrol
init.d/
cruisecontrol
redhat/
cruisecontrol.spec
usr/
bin/
cruisecontrol
.subversion
README.txt
build.xml
override.properties
package.properties