Rev 1915 | Rev 1919 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<project name="ant-release-task"><macrodef name="ant-release"><attribute name="package"default="${packagename}"description="The name of the package in release manager and dpkg_archive." /><attribute name="release-target"default="make_package"description="The target to invoke to copy the release to dpkg_archive." /><attribute name="version"default="${packageversion}"description="The version of the package in release manager and dpkg_archive." /><attribute name="fromdir"default="build/pkg"description="The relative location of the files to release."/><sequential><basename property="ant.buildfile.filename" file="${ant.file}"/><dirname property="ant.buildfile.path" file="${ant.file}"/><!-- Determine the logical path of the build (that is, the path that does not contain the drive letter) --><propertyregex property = "ant.buildfile.lpath"input = "${ant.buildfile.path}"regexp = "[A-Za-z]\:\\(.*)"select = "\1"/><if><equals arg1="@{version}" arg2=""/><then><fail message="Please specify the version to release."/></then></if><!-- These properties CAN be set by the Jants cclabel task, but I don't trust it any more. --><!-- I plan to phase out the old cclabel stuff and make it into scripts. --><property name="jants.build.label" value="@{package}_@{version}"/><property name="jants.build.view.name" value="${user.name}_jats_build_${jants.build.label}"/><property name="jants.build.view.path" value="O:\${jants.build.view.name}\${ant.buildfile.lpath}"/><!--<ccmklbtype typename = "${jants.build.label}-TEST"global = "true"/><ccmklabel typename="${jants.build.label}-TEST"viewpath="${basedir}"/>--><cclabel package = "@{package}"version = "@{version}"findCheckouts = "true"mkview = "true"/><!-- Update the deskpkg file with the version to be released. --><echo message="@{package}_@{version}" file=".undo"/><ant antfile = "${ant.buildfile.filename}"dir = "${jants.build.view.path}"inheritAll = "false"inheritRefs = "false"target = "@{release-target}"><property name="jants.build.version" value="@{version}"/><property name="jants.build.label" value="${jants.build.label}"/><property name="jants.build.view.name" value="${jants.build.view.name}"/><property name="jants.build.view.path" value="${jants.build.view.path}"/><property name="jants.project.name" value="${ant.project.name}"/></ant><!-- Release the files to dpkg_archive. --><mkdir dir="${env.GBE_DPKG}/@{package}/@{version}"/><echo message="Releasing files in [${jants.build.view.path}/@{fromdir}]"/><copy todir="${env.GBE_DPKG}/@{package}/@{version}"><fileset dir="${jants.build.view.path}/@{fromdir}"/></copy><cclocklabel labelname="${jants.build.label}"/><ccrmview viewname="${jants.build.view.name}"/><delete file=".undo"/></sequential></macrodef><macrodef name="ant-undo-release"><attribute name="package" default="${ant.project.name}"/><sequential><!-- Examine the manifest for the version that was released, and if it is set, set @{package} to that. --><available property="undo.available" file=".undo"/><fail unless="undo.available" message="Release cannot be undone."/><loadfile srcFile=".undo" property="undo.version"/><echo message="Undoing release ${undo.version}"/><ccrmlabel labelname="${undo.version}"/><ccrmview viewname="${user.name}_jats_build_${undo.version}"/><delete file=".undo"/></sequential></macrodef><target name="release"><ant-release/></target><target name="undo-release"><ant-undo-release/></target></project>