I use Mercurial as SCM, and the command hg id -i and hg id -n give's me the
current revision id and hash. To be able to have full control on what
version is running on the server side, we use the following ant tasks:
This one filter an "appengine-web.xml.in" file, that is under version
control, and that has the appid and appversion as ant filter properties:
<target name="update-app-version" description="Update the appengine-web.xml
with the current mercurial revision as app version">
<exec executable="hg" outputproperty="mercurial.changeset">
<arg value="id" />
<arg value="-i" />
</exec>
<exec executable="hg" outputproperty="mercurial.revision">
<arg value="id" />
<arg value="-n" />
</exec>
<property name="appversion"
value="${version}-${release}-${mercurial.revision}-${mercurial.changeset}-${stability}"
/>
<filter token="appid" value="${appid}" />
<filter token="appversion" value="${appversion}" />
<copy file="war/WEB-INF/appengine-web.xml.in"
tofile="war/WEB-INF/appengine-web.xml" filtering="true" overwrite="true" />
<echo message="App version set to ${appversion}" />
</target>
And this is a modified version of the one that comes with the SDK who lets
you set a system property as your password, giving you an automated
deployment, if needed (like let's your CI sistem deploy new versions
periodicaly):
<target name="deploy" depends="update-app-version" description="Uploads the
application to App Engine.">
<java classname="com.google.appengine.tools.admin.AppCfg" fork="true"
inputstring="${deploy.password}" failonerror="true">
<classpath>
<path location="${appengine.tools.classpath}" />
<path refid="project.classpath" />
</classpath>
<arg value="--email=${deploy.email}" />
<arg value="--passin" />
<arg value="update" />
<arg value="war" />
</java>
</target>
Just set the "deploy.email" and "deploy.password" properties either on a
file at your home directory or as a command line argument. In our build
file, we set the appid and base versions as properties too, giving you full
control when deploying while keeping the defaults to make things easier.
Hope this helps.
--
You received this message because you are subscribed to the Google Groups
"Google App Engine for Java" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/google-appengine-java/-/7ASGVakqlZMJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en.