Subversion Repositories DevTools

Rev

Blame | Last modification | View Log | RSS feed

<?xml version="1.0"?>

<project name="project-name" default="compile" basedir="." >

        <description>Build and release script for the Driver Accounting package</description>

        <taskdef resource="jats.properties"/>

        <!-- =================================================================== -->
        <!--  GLOBAL PROPERTIES                                                  -->
        <!-- =================================================================== -->
        <property file="${user.home}/.ant.properties" />


        <!-- =================================================================== -->
        <!--  PUBLIC TARGETS                                                     -->
        <!-- =================================================================== -->

        <!-- =================================================================== -->
        <target name="sandbox"
                description="Prepare the project dependency 'sandbox'.">
                <echo message="Prepare the sandbox."/>
                <!-- [insert tasks here to prepare the implementation sandbox] -->
                <!-- eg:                                                       -->
                <!-- <jats>                                                    -->
                <!--   <sandbox name="dependency" version="1.2.3.mas"/>        -->
                <!--   <sandbox name="package-name-api" version="1.0.0.mas"/>  -->
                <!-- </jats>                                                   -->
        </target>

        <!-- =================================================================== -->
        <target name="compile" depends="sandbox"
                description="Compile the project source.">
                <echo message="Compile the project source."/>
                <!-- [insert tasks here to perform source compilation]         -->
        </target>

        <!-- =================================================================== -->
        <target name="package" depends="compile"
                description="Package the project into releasable entities.">
                <echo message="Package the project release entities."/>
                <!-- [insert tasks here to package implementation] -->
        </target>

        <!-- =================================================================== -->
        <target name="test" depends=""
                description="Test the package using JUnit tests.">
                <echo message="Test the package."/>
                <!-- [insert tasks here to test implementation] -->
        </target>

        <!-- =================================================================== -->
        <target name="release-patch"
                description="Formally release this package as a patch release.">
                <property name="jants.release.category" value="patch"/>
                <antcall target="-label"/>
        </target>

        <!-- =================================================================== -->
        <target name="release-minor"
                description="Formally release this package as a minor release.">
                <property name="jants.release.category" value="minor"/>
                <antcall target="-label"/>
        </target>

        <!-- =================================================================== -->
        <target name="release-major"
                description="Formally release this package as a major release.">
                <property name="jants.release.category" value="major"/>
                <antcall target="-label"/>
        </target>

        <!-- =================================================================== -->
        <target name="release-prompt"
                description="Formally release this package as a user-specified version.">
                <property name="jants.release.category" value="prompt"/>
                <antcall target="-label"/>
        </target>


        <!-- =================================================================== -->
        <!--  SILENT TARGETS                                                     -->
        <!-- =================================================================== -->

        <!-- =================================================================== -->
        <target name="-label">
                <jats package="${ant.project.name}" scope="mas">
                        <cclabel type      = "${jants.release.category}"
                                         mkview    = "true"
                                         mapview   = "${jants.map.drive}"
                                         labelname = "jants.build.label"
                                         viewname  = "jants.build.view.name"
                                         viewpath  = "jants.build.view.path"
                                         version   = "jants.build.version"/>
                </jats>
                <ant dir="${jants.build.view.path}" inheritAll="false" inheritRefs="false" target="-dpkg-release-${jants.release.category}">
                        <property name="jants.build.version" value="${jants.build.version}"/>
                </ant>
                <ccrmview viewname="${jants.build.view.name}" unmap="${jants.map.drive}"/>
                <cclocklabel labelname="${jants.build.label}"/>
        </target>

        <!-- =================================================================== -->
        <target name="-dpkg-release-patch">
                <property name="jants.release.category" value="patch"/>
                <antcall target="-release"/>
        </target>

        <!-- =================================================================== -->
        <target name="-dpkg-release-minor">
                <property name="jants.release.category" value="minor"/>
                <antcall target="-release"/>
        </target>

        <!-- =================================================================== -->
        <target name="-dpkg-release-major">
                <property name="jants.release.category" value="major"/>
                <antcall target="-release"/>
        </target>

        <!-- =================================================================== -->
        <target name="-dpkg-release-prompt">
                <property name="jants.release.category" value="force"/>
                <antcall target="-release"/>
        </target>

        <!-- =================================================================== -->
        <target name="-release" depends="package,test">
                <!-- Clean the package directory -->
                <delete dir="pkg"/>
                <mkdir dir="pkg"/>

                <!-- Prepare the package entities -->
                <!-- [insert tasks here to copy relevant non-API files to their -->
                <!--  correct location within pkg]                              -->

                <!-- And perform the dpkg release -->

                <jats package="${ant.project.name}" scope="mas">
                        <release type="${jants.release.category}" version="${jants.build.version}"/>
                </jats>
        </target>

</project>