build.xml 3.72 KB
Newer Older
1
<?xml version="1.0"?>
2
<project name="DoctrineDBAL" default="build" basedir=".">
3
    <property file="build.properties" />
4

Benjamin Eberlei's avatar
Benjamin Eberlei committed
5 6 7 8 9
    <target name="php">
        <exec executable="which" outputproperty="php_executable">
            <arg value="php" />
        </exec>
    </target>
10

Benjamin Eberlei's avatar
Benjamin Eberlei committed
11 12 13
    <target name="prepare">
        <mkdir dir="build" />
    </target>
14

Benjamin Eberlei's avatar
Benjamin Eberlei committed
15 16 17 18 19 20 21
    <target name="build" depends="check-git-checkout-clean,prepare,php,composer">
        <exec executable="${php_executable}">
            <arg value="build/composer.phar" />
            <arg value="archive" />
            <arg value="--dir=build" />
        </exec>
    </target>
22

Benjamin Eberlei's avatar
Benjamin Eberlei committed
23 24 25 26 27 28
    <target name="composer" depends="php,composer-check,composer-download">
        <exec executable="${php_executable}">
            <arg value="build/composer.phar" />
            <arg value="install" />
        </exec>
    </target>
29

Benjamin Eberlei's avatar
Benjamin Eberlei committed
30 31 32
    <target name="composer-check" depends="prepare">
        <available file="build/composer.phar" property="composer.present"/>
    </target>
33

Benjamin Eberlei's avatar
Benjamin Eberlei committed
34 35 36 37 38
    <target name="composer-download" unless="composer.present">
        <exec executable="wget">
            <arg value="-Obuild/composer.phar" />
            <arg value="http://getcomposer.org/composer.phar" />
        </exec>
39
    </target>
David Abdemoulaie's avatar
David Abdemoulaie committed
40

Benjamin Eberlei's avatar
Benjamin Eberlei committed
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
    <target name="make-release" depends="check-git-checkout-clean,prepare,php">
        <replace file="${project.version_file}" token="-DEV" value="" failOnNoReplacements="true" />
        <exec executable="${php_executable}" outputproperty="doctrine.current_version" failonerror="true">
            <arg value="-r" />
            <arg value="require_once '${project.version_file}';echo ${project.version_class}::VERSION;" />
        </exec>
        <exec executable="${php_executable}" outputproperty="doctrine.next_version" failonerror="true">
            <arg value="-r" />
            <arg value="$parts = explode('.', str_ireplace(array('-DEV', '-ALPHA', '-BETA'), '', '${doctrine.current_version}'));
                if (count($parts) != 3) {
                    throw new \InvalidArgumentException('Version is assumed in format x.y.z, ${doctrine.current_version} given');
                }
                $parts[2]++;
                echo implode('.', $parts);
            " />
        </exec>

        <git-commit file="${project.version_file}" message="Release ${doctrine.current_version}" />
        <git-tag version="${doctrine.current_version}" />
        <replace file="${project.version_file}" token="${doctrine.current_version}" value="${doctrine.next_version}-DEV" />
        <git-commit file="${project.version_file}" message="Bump version to ${doctrine.next_version}" />
62
    </target>
Benjamin Eberlei's avatar
Benjamin Eberlei committed
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94

    <target name="check-git-checkout-clean">
        <exec executable="git" failonerror="true">
            <arg value="diff-index" />
            <arg value="--quiet" />
            <arg value="HEAD" />
        </exec>
    </target>

    <macrodef name="git-commit">
        <attribute name="file" default="NOT SET"/>
        <attribute name="message" default="NOT SET"/>

        <sequential>
            <exec executable="git">
                <arg value="add" />
                <arg value="@{file}" />
            </exec>
            <exec executable="git">
                <arg value="commit" />
                <arg value="-m" />
                <arg value="@{message}" />
            </exec>
        </sequential>
    </macrodef>

    <macrodef name="git-tag">
        <attribute name="version" default="NOT SET" />

        <sequential>
            <exec executable="git">
                <arg value="tag" />
95
                <arg value="-s" />
Benjamin Eberlei's avatar
Benjamin Eberlei committed
96 97 98 99 100 101
                <arg value="-m" />
                <arg value="v@{version}" />
                <arg value="v@{version}" />
            </exec>
        </sequential>
    </macrodef>
102
</project>