Blame | Last modification | View Log | RSS feed
<?xml version="1.0"?><project name="package-name" default="compile" basedir="."><!-- Description should describe the build script, not the project. --><!-- Example: 'Build and release script for the [insert here] package. --><description>Build and release script template for packages containing an API.</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 project dependency '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="sandbox-api"description="Prepare the project dependency 'sandbox' for the API."><echo message="Prepare the project dependency 'sandbox' for the API."/><!-- [insert tasks here to prepare the API sandbox] --><!-- eg: --><!-- <jats> --><!-- <sandbox name="dependency" version="1.2.3.mas"/> --><!-- </jats> --></target><!-- =================================================================== --><target name="-compile"><echo message="Compile the project source."/><!-- [insert tasks here to perform source compilation] --></target><!-- =================================================================== --><target name="compile" depends="sandbox,-compile"description="Compile the project source."><echo message="Compile the project source."/><!-- Task pulls in implementation sandbox and delegates to -compile --></target><!-- =================================================================== --><target name="compile-api" depends="sandbox-api,-compile"description="Compile the project source."><echo message="Compile the project source."/><!-- Task pulls in API sandbox and delegates to -compile --></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="package-api" depends="compile-api"description="Package the project API into releasable entities."><echo message="Package the project API release entities."/><!-- [insert tasks here to package API] --></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.jants.release.category" value="patch"/><property name="jants.jants.release.api" value=""/><antcall target="-label"/></target><!-- =================================================================== --><target name="release-minor"description="Formally release this package as a minor release."><property name="jants.release.category" value="minor"/><property name="jants.release.api" value=""/><antcall target="-label"/></target><!-- =================================================================== --><target name="release-major"description="Formally release this package as a major release."><property name="jants.release.category" value="major"/><property name="jants.release.api" value=""/><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"/><property name="jants.release.api" value=""/><antcall target="-label"/></target><!-- =================================================================== --><target name="release-patch-api"description="Formally release this package as a patch release."><property name="jants.release.category" value="patch"/><property name="jants.release.api" value="-api"/><antcall target="-label"/></target><!-- =================================================================== --><target name="release-minor-api"description="Formally release this package as a minor release."><property name="jants.release.category" value="minor"/><property name="jants.release.api" value="-api"/><antcall target="-label"/></target><!-- =================================================================== --><target name="release-major-api"description="Formally release this package as a major release."><property name="jants.release.category" value="major"/><property name="jants.release.api" value="-api"/><antcall target="-label"/></target><!-- =================================================================== --><target name="release-prompt-api"description="Formally release this package as a user-specified version."><property name="jants.release.category" value="prompt"/><property name="jants.release.api" value="-api"/><antcall target="-label"/></target><!-- =================================================================== --><target name="undo"description="Remove artifacts from a partially complete build."><input message="Which version do you wish to undo?" addproperty="jants.build.version"/><!-- Remove any label for the given version --><ccrmlabel labelname="${ant.project.name}-${jants.build.version}"/><!-- Remove any network drive mapping, and remove any view corresponding to the label --><ccrmview viewname="${user.name}_jats_build_${ant.project.name}-${jants.build.version}" unmap="${jants.map.drive}"/></target><!-- =================================================================== --><target name="undo-api"description="Remove artifacts from a partially complete API build."><input message="Which version API do you wish to undo?" addproperty="jants.build.version"/><!-- Remove any label for the given version --><ccrmlabel labelname="${ant.project.name}-api-${jants.build.version}"/><!-- Remove any network drive mapping, and remove any view corresponding to the label --><ccrmview viewname="${user.name}_jats_build_${ant.project.name}-api-${jants.build.version}" unmap="${jants.map.drive}"/></target><!-- =================================================================== --><!-- SILENT TARGETS --><!-- =================================================================== --><!-- =================================================================== --><target name="-label"><jats package="${ant.project.name}${jants.release.api}" scope="mas"><cclabel findCheckouts = "true"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}${jants.release-api}"/></target><!-- =================================================================== --><target name="-dpkg-release-patch"><property name="jants.release.category" value="patch"/><antcall target="-release${jants.release.api}"/></target><!-- =================================================================== --><target name="-dpkg-release-minor"><property name="jants.release.category" value="minor"/><antcall target="-release${jants.release.api}"/></target><!-- =================================================================== --><target name="-dpkg-release-major"><property name="jants.release.category" value="major"/><antcall target="-release${jants.release.api}"/></target><!-- =================================================================== --><target name="-dpkg-release-prompt"><property name="jants.release.category" value="force"/><antcall target="-release${jants.release.api}"/></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}${jants.release.api}" scope="mas"><release type="${jants.release.category}" version="${jants.build.version}"/></jats></target><!-- =================================================================== --><target name="-release-api" depends="package-api"><!-- Clean the package directory --><delete dir="pkg"/><mkdir dir="pkg"/><!-- Prepare the package entities --><!-- [insert tasks here to copy relevant API files to their --><!-- correct location within pkg] --><!-- And perform the dpkg release --><jats package="${ant.project.name}${jants.release.api}" scope="mas"><release type="${jants.release.category}" version="${jants.build.version}"/></jats></target></project>