Skip to content

Instantly share code, notes, and snippets.

@luiscberrocal
Created November 29, 2011 16:32
Show Gist options
  • Save luiscberrocal/1405418 to your computer and use it in GitHub Desktop.
Save luiscberrocal/1405418 to your computer and use it in GitHub Desktop.
ANT Build File for numbering versions
<?xml version="1.0" encoding="UTF-8"?>
<project name="Numbers" default="dist" basedir=".">
<property name="version.file" location="${basedir}/build.properties"/>
<target name="inc.revision.properties" unless="no.increment.revision">
<propertyfile file="${version.file}">
<entry key="minor.number" default="0" operation="=" type="int"/>
<entry key="major.number" default="1" operation="=" type="int"/>
<entry key="build.number" default="0" operation="+" type="int"/>
</propertyfile>
</target>
<target name="inc.minor.properties" unless="no.increment.minor">
<propertyfile file="${version.file}">
<entry key="minor.number" default="0" operation="+" type="int"/>
<entry key="major.number" default="1" operation="=" type="int"/>
<entry key="build.number" value="0" operation="=" type="int"/>
</propertyfile>
</target>
<target name="inc.major" if="inc.major">
<property name="no.increment.minor" value="true" />
<property name="no.increment.revision" value="true" />
<propertyfile file="${version.file}">
<entry key="minor.number" value="0" operation="=" type="int"/>
<entry key="major.number" default="1" operation="+" type="int"/>
<entry key="build.number" value="0" operation="=" type="int"/>
</propertyfile>
<load.version.info/>
</target>
<target name="inc.minor" depends="inc.major,inc.minor.properties">
<property name="no.increment.revision" value="true"/>
<load.version.info/>
</target>
<target name="inc.revision" depends="inc.major,inc.revision.properties">
<load.version.info/>
</target>
<macrodef name="load.version.info">
<sequential>
<tstamp>
<format property="operation.date" pattern="dd-MMM-yyyy HH:mm:ss"/>
</tstamp>
<property file="${version.file}"/>
<checksum file="${version.file}" property="sha1.number" algorithm="SHA" format="CHECKSUM"/>
<echo>Version: ${major.number}.${minor.number}.${build.number}</echo>
<echo>SHA1: ${sha1.number}</echo>
<propertyfile file="${version.file}">
<entry key="migration.release.version" value="${major.number}.${minor.number}.${build.number}-alpha"/>
</propertyfile>
<echo file="../routing-version.json" append="false"
message="{&quot;version&quot;: &quot;${major.number}.${minor.number}.${build.number}-alpha&quot;, &quot;release&quot;: &quot;${migration.release.name}&quot;, &quot;release-date&quot;: &quot;${operation.date}&quot;}">
</echo>
</sequential>
</macrodef>
<target name="compile" depends="inc.revision" description="Compile Task"/>
<target name="dist" depends="inc.minor, compile" description="Dest Task"/>
</project>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment