<?xml version="1.0"?> <!-- Doctrine 2 build file. --> <project name="Doctrine DBAL" default="build" basedir="."> <taskdef classname="phing.tasks.ext.d51PearPkg2Task" name="d51pearpkg2" /> <property file="build.properties" /> <!-- Fileset for artifacts shared across all distributed packages. --> <fileset id="shared-artifacts" dir="."> <include name="LICENSE"/> </fileset> <!-- Fileset for command line scripts --> <fileset id="bin-scripts" dir="./bin"> <include name="doctrine-dbal"/> <include name="doctrine-dbal.php"/> </fileset> <!-- Fileset for the sources of the Doctrine Common dependency. --> <fileset id="common-sources" dir="./lib/vendor/doctrine-common/lib"> <include name="Doctrine/Common/**"/> </fileset> <!-- Fileset for the sources of the Doctrine DBAL package. --> <fileset id="dbal-sources" dir="./lib"> <include name="Doctrine/DBAL/**"/> </fileset> <!-- Fileset for source of the Symfony YAML and Console components. --> <fileset id="symfony-sources" dir="./lib/vendor"> <include name="Symfony/Component**"/> </fileset> <!-- Clean the directory for the next build. --> <target name="clean"> <available file="./build.properties" property="build_properties_exist" value="true"/> <fail unless="build_properties_exist" message="The build.properties file is missing." /> <delete dir="${build.dir}" includeemptydirs="true" /> <delete dir="${dist.dir}" includeemptydirs="true" /> <delete dir="${report.dir}" includeemptydirs="true" /> </target> <!-- Prepare the new build directories after cleaning --> <target name="prepare" depends="clean"> <echo msg="Creating build directory: ${build.dir}" /> <mkdir dir="${build.dir}" /> <echo msg="Creating distribution directory: ${dist.dir}" /> <mkdir dir="${dist.dir}" /> <echo msg="Creating report directory: ${report.dir}" /> <mkdir dir="${report.dir}" /> <mkdir dir="${build.dir}/logs"/> <mkdir dir="${report.dir}/tests"/> </target> <!-- Builds DBAL package, preparing it for distribution. --> <target name="build-dbal" depends="prepare"> <exec command="grep '${version}' ${project.basedir}/lib/Doctrine/DBAL/Version.php" checkreturn="true"/> <copy todir="${build.dir}/doctrine-dbal"> <fileset refid="shared-artifacts"/> </copy> <copy todir="${build.dir}/doctrine-dbal"> <fileset refid="common-sources"/> <fileset refid="dbal-sources"/> </copy> <copy todir="${build.dir}/doctrine-dbal/Doctrine"> <fileset refid="symfony-sources"/> </copy> <copy todir="${build.dir}/doctrine-dbal/bin"> <fileset refid="bin-scripts"/> </copy> <exec command="sed 's/${version}-DEV/${version}/' ${build.dir}/doctrine-dbal/Doctrine/DBAL/Version.php > ${build.dir}/doctrine-dbal/Doctrine/DBAL/Version2.php" passthru="true" /> <exec command="mv ${build.dir}/doctrine-dbal/Doctrine/DBAL/Version2.php ${build.dir}/doctrine-dbal/Doctrine/DBAL/Version.php" passthru="true" /> </target> <target name="build" depends="test,build-dbal"/> <!-- Runs the full test suite. --> <target name="test" depends="prepare"> <if><equals arg1="${test.phpunit_generate_coverage}" arg2="1" /> <then> <property name="test.phpunit_coverage_option" value="--coverage-clover ${build.dir}/logs/clover.xml" /> </then> <else> <property name="test.phpunit_coverage_option" value="" /> </else> </if> <if><equals arg1="${test.phpunit_configuration_file}" arg2="" /> <then> <property name="test.phpunit_configuration_option" value="" /> </then> <else> <property name="test.phpunit_configuration_option" value="--configuration ${test.phpunit_configuration_file}" /> </else> </if> <exec command="phpunit ${test.phpunit_configuration_option} ${test.phpunit_coverage_option} --log-junit ../${build.dir}/logs/testsuites.xml Doctrine/Tests/AllTests.php" dir="./tests" /> <phpunitreport infile="${build.dir}/logs/testsuites.xml" format="frames" todir="${report.dir}/tests" /> <tstamp/> <copy file="${build.dir}/logs/testsuites.xml" tofile="${log.archive.dir}/latest/log.xml" overwrite="true"/> <if><equals arg1="${test.pmd_reports}" arg2="1" /> <then> <exec command="${test.pdepend_exec} --jdepend-xml=${build.dir}/logs/jdepend.xml ./lib/Doctrine" /> <exec command="${test.phpmd_exec} ./lib/Doctrine xml codesize --reportfile ${build.dir}/logs/phpmd.xml" /> <copy file="${build.dir}/logs/jdepend.xml" tofile="${log.archive.dir}/latest/jdepend.xml" overwrite="true"/> <copy file="${build.dir}/logs/phpmd.xml" tofile="${log.archive.dir}/latest/phpmd.xml" overwrite="true"/> </then> </if> </target> <!-- Builds distributable PEAR packages. --> <target name="build-packages" depends="build-dbal"> <d51pearpkg2 baseinstalldir="/" dir="${build.dir}/doctrine-dbal"> <name>DoctrineDBAL</name> <summary>Doctrine Database Abstraction Layer</summary> <channel>pear.doctrine-project.org</channel> <description>The Doctrine DBAL package is the database abstraction layer used to power the ORM package.</description> <lead user="jwage" name="Jonathan H. Wage" email="jonwage@gmail.com" /> <lead user="guilhermeblanco" name="Guilherme Blanco" email="guilhermeblanco@gmail.com" /> <lead user="romanb" name="Roman Borschel" email="roman@code-factory.org" /> <lead user="beberlei" name="Benjamin Eberlei" email="kontakt@beberlei.de" /> <license>LGPL</license> <version release="${version}" api="${version}" /> <stability release="${stability}" api="${stability}" /> <notes>-</notes> <dependencies> <php minimum_version="5.3.2" /> <pear minimum_version="1.6.0" recommended_version="1.6.1" /> <package name="DoctrineCommon" channel="pear.doctrine-project.org" minimum_version="${dependencies.common}" /> <!-- Doctrine Symfony Console PEAR package is generated in ORM build.xml process --> <package name="DoctrineSymfonyConsole" channel="pear.doctrine-project.org" minimum_version="${dependencies.sfconsole}" /> </dependencies> <dirroles key="bin">script</dirroles> <ignore>Doctrine/Common/</ignore> <ignore>Doctrine/Symfony/</ignore> <release> <install as="doctrine-dbal" name="bin/doctrine-dbal" /> <install as="doctrine-dbal.php" name="bin/doctrine-dbal.php" /> </release> </d51pearpkg2> <exec command="pear package" dir="${build.dir}/doctrine-dbal" passthru="true" /> <exec command="mv DoctrineDBAL-${version}.tgz ../../dist" dir="${build.dir}/doctrine-dbal" passthru="true" /> <tar destfile="dist/DoctrineDBAL-${version}-full.tar.gz" compression="gzip" basedir="${build.dir}"> <fileset dir="${build.dir}"> <include name="**/**" /> <exclude name="logs/" /> </fileset> </tar> </target> <target name="git-tag"> <exec command="grep '${version}' ${project.basedir}/lib/Doctrine/DBAL/Version.php" checkreturn="true"/> <exec command="git tag -a ${version}" passthru="true" /> </target> <target name="pirum-release"> <exec command="sudo pirum add ${project.pirum_dir} ${project.basedir}/dist/DoctrineDBAL-${version}.tgz" dir="." passthru="true" /> <exec command="sudo pirum build ${project.pirum_dir}" passthru="true" /> </target> <target name="distribute-download"> <copy file="dist/DoctrineDBAL-${version}-full.tar.gz" todir="${project.download_dir}" /> </target> <target name="update-dev-version"> <exec command="grep '${version}' ${project.basedir}/lib/Doctrine/DBAL/Version.php" checkreturn="true"/> <propertyprompt propertyName="next_version" defaultValue="${version}" promptText="Enter next version string (without -DEV)" /> <exec command="sed 's/${version}-DEV/${next_version}-DEV/' ${project.basedir}/lib/Doctrine/DBAL/Version.php > ${project.basedir}/lib/Doctrine/DBAL/Version2.php" passthru="true" /> <exec command="mv ${project.basedir}/lib/Doctrine/DBAL/Version2.php ${project.basedir}/lib/Doctrine/DBAL/Version.php" passthru="true" /> <exec command="git add ${project.basedir}/lib/Doctrine/DBAL/Version.php" passthru="true" /> <exec command="git commit -m 'Bump Dev Version to ${next_version}'" passthru="true" /> </target> <target name="release" depends="git-tag,build-packages,distribute-download,pirum-release,update-dev-version" /> </project>