<?xml version="1.0"?> <!-- Smack Build Script ========================================== --> <!-- Jive Software ============================================== --> <!-- $RCSfile$ $Revision$ $Date$ --> <project name="Smack Release Script" default="all" basedir=".."> <!-- Include Ant Optional Tasks --> <taskdef resource="net/sf/antcontrib/antcontrib.properties"> <classpath> <pathelement location="${basedir}/build/ant-contrib.jar"/> </classpath> </taskdef> <!-- PROPERTIES --> <!-- ======================================================================================= --> <!-- TARGETS --> <!-- ======================================================================================= --> <!-- all --> <!-- ======================================================================================= --> <target name="all"> <!-- create release properties --> <if> <equals arg1="${dailybuild}" arg2="true" /> <then> <tstamp> <format property="build.date" pattern="yyyy-MM-dd" locale="en"/> </tstamp> <property name="release.name" value="smack-${build.date}" /> <property name="release-dev.name" value="smack_src_${build.date}" /> </then> <else> <property name="release.name" value="smack_${version.filename}" /> <property name="release-dev.name" value="smack_src_${version.filename}" /> </else> </if> <property name="release.dir" value="${basedir}/target/release/${release.name}" /> <property name="release-dev.dir" value="${basedir}/target/release/${release-dev.name}" /> <!-- create release dirs --> <mkdir dir="${release.dir}" /> <mkdir dir="${release-dev.dir}" /> <!-- Copy smack.jar --> <copy todir="${release.dir}"> <fileset dir="${jar.dest.dir}" includes="smack.jar" /> <fileset dir="${jar.dest.dir}" includes="smackx.jar" /> <fileset dir="${jar.dest.dir}" includes="smackx-debug.jar" /> <fileset dir="${jar.dest.dir}" includes="jingleExtension.jar" /> <fileset dir="${jar.dest.dir}" includes="jingleMedia.jar" /> </copy> <copy todir="${release-dev.dir}"> <fileset dir="${jar.dest.dir}" includes="smack.jar" /> <fileset dir="${jar.dest.dir}" includes="smackx.jar" /> <fileset dir="${jar.dest.dir}" includes="smackx-debug.jar" /> <fileset dir="${jar.dest.dir}" includes="jingleExtension.jar" /> <fileset dir="${jar.dest.dir}" includes="jingleMedia.jar" /> </copy> <!-- Copy build dir --> <copy todir="${release-dev.dir}/build"> <fileset dir="${basedir}/build"> <include name="ant*" /> <include name="junit.jar" /> <include name="build.xml" /> <include name="README.html" /> <include name="lib/*.jar" /> <include name="merge/*.jar" /> </fileset> </copy> <copy todir="${release-dev.dir}/jingle/extension/build"> <fileset dir="${basedir}/jingle/extension/build"> <include name="ant*" /> <include name="junit.jar" /> <include name="build.xml" /> <include name="README.html" /> <include name="lib/*.jar" /> <include name="merge/*.jar" /> </fileset> </copy> <copy todir="${release-dev.dir}/jingle/media/build"> <fileset dir="${basedir}/jingle/media/build"> <include name="ant*" /> <include name="junit.jar" /> <include name="build.xml" /> <include name="README.html" /> <include name="lib/*.jar" /> <include name="merge/*.jar" /> </fileset> </copy> <!-- Copy Javadocs --> <copy todir="${release.dir}/javadoc"> <fileset dir="${basedir}/target/javadoc" includes="**/*.*" /> </copy> <copy todir="${release-dev.dir}/javadoc"> <fileset dir="${basedir}/target/javadoc" includes="**/*.*" /> </copy> <!-- Copy documentation --> <copy todir="${release.dir}/documentation"> <fileset dir="${basedir}/documentation" includes="**/*.*" /> </copy> <copy todir="${release-dev.dir}/documentation"> <fileset dir="${basedir}/documentation" includes="**/*.*" /> </copy> <!-- Copy source --> <copy todir="${release-dev.dir}/source"> <fileset dir="${basedir}/source" includes="**/*.java" /> <fileset dir="${basedir}/source" includes="**/*.html" /> </copy> <copy todir="${release-dev.dir}/jingle/extension/source"> <fileset dir="${basedir}/jingle/extension/source" includes="**/*.java" /> <fileset dir="${basedir}/jingle/extension/source" includes="**/*.html" /> </copy> <copy todir="${release-dev.dir}/jingle/media/source"> <fileset dir="${basedir}/jingle/media/source" includes="**/*.java" /> <fileset dir="${basedir}/jingle/media/source" includes="**/*.html" /> </copy> <copy todir="${release-dev.dir}/test"> <fileset dir="${basedir}/test" includes="**/*.java" /> </copy> <!-- Copy resources --> <copy todir="${release-dev.dir}/build/resources"> <fileset dir="${basedir}/build/resources" includes="META-INF/smack.providers" /> <fileset dir="${basedir}/build/resources" includes="META-INF/smack-config.xml" /> </copy> <copy todir="${release-dev.dir}/build/resources/images"> <fileset dir="${basedir}/build/resources/images"> <include name="*.png"/> </fileset> </copy> <!-- Copy readme.html and changelog.html --> <copy todir="${release.dir}"> <fileset dir="${basedir}/build/resources/releasedocs" includes="*.html" /> <filterset> <filter token="builddate" value="${builddate}"/> <filter token="version" value="${version}"/> </filterset> </copy> <copy todir="${release-dev.dir}"> <fileset dir="${basedir}/build/resources/releasedocs" includes="*.html" /> <filterset> <filter token="builddate" value="${builddate}"/> <filter token="version" value="${version}"/> </filterset> </copy> <!-- Package --> <if> <equals arg1="${dailybuild}" arg2="true" /> <then> <zip destfile="${basedir}/target/release/${release-dev.name}.zip" basedir="${release-dev.dir}/.." includes="${release-dev.name}/**/*.*" /> <tar destfile="${basedir}/target/release/${release-dev.name}.tar.gz" basedir="${release-dev.dir}/.." includes="${release-dev.name}/**/*.*" compression="gzip" /> </then> <else> <zip destfile="${basedir}/target/release/${release.name}.zip" basedir="${release.dir}/.." includes="${release.name}/**/*.*" /> <tar destfile="${basedir}/target/release/${release.name}.tar.gz" basedir="${release.dir}/.." includes="${release.name}/**/*.*" compression="gzip" /> <zip destfile="${basedir}/target/release/${release-dev.name}.zip" basedir="${release-dev.dir}/.." includes="${release-dev.name}/**/*.*" /> <tar destfile="${basedir}/target/release/${release-dev.name}.tar.gz" basedir="${release-dev.dir}/.." includes="${release-dev.name}/**/*.*" compression="gzip" /> </else> </if> <echo> ----------------------------------------------- Release made, testing Ant targets of release... ----------------------------------------------- </echo> <!-- call the release tester --> <antcall target="test" /> </target> <!-- test --> <!-- ======================================================================================= --> <target name="test"> <property name="testdir" value="${release-dev.dir}/.test" /> <!-- copy the build to a temp dir so we can run sanity tests --> <mkdir dir="${testdir}" /> <copy todir="${testdir}"> <fileset dir="${release-dev.dir}"> <exclude name=".test/**/*.*" /> </fileset> </copy> <!-- run sanity tests --> <ant dir="${testdir}" antfile="build/build.xml" target="jar" inheritAll="false"> <property name="no.test" value="true" /> </ant> <ant dir="${testdir}" antfile="build/build.xml" target="javadoc" inheritAll="false"> <property name="no.test" value="true" /> </ant> <ant dir="${testdir}" antfile="build/build.xml" target="clean" inheritAll="false"> <property name="no.test" value="true" /> </ant> <echo> ---------------------------- ...release tests pass, done. ---------------------------- </echo> </target> </project>