try to automate the release process

This commit is contained in:
zzz
2009-07-31 02:36:15 +00:00
parent 7ffb3f46b5
commit 0bef85277e

108
build.xml
View File

@ -571,4 +571,112 @@
<target name="distcleanWithDesktopgui" depends="distclean">
<ant dir="apps/desktopgui" target="build_clean" />
</target>
<target name="release" depends="pkg">
<echo message="================================================================" />
<echo message="Did you update these files?" />
<exec executable="ls">
<arg value="-l" />
<arg value="history.txt" />
<arg value="initialNews.xml" />
<arg value="installer/install.xml" />
<arg value="news.xml" />
<arg value="core/java/src/net/i2p/CoreVersion.java" />
<arg value="router/java/src/net/i2p/router/RouterVersion.java" />
</exec>
<echo message="Everything is checked in, right?" />
<input message="Enter new version number:" addproperty="release.number" />
<fail message="You must enter a version number." >
<condition>
<equals arg1="${release.number}" arg2=""/>
</condition>
</fail>
<copy file="i2pupdate.zip" tofile="i2pupdate_${release.number}.zip" />
<copy file="i2pinstall.exe" tofile="i2pinstall_${release.number}.exe" />
<delete file="i2pupdate.sud" failonerror="false" />
<input message="Enter private signing key file:" addproperty="release.privkey" />
<fail message="You must enter a path." >
<condition>
<equals arg1="${release.privkey}" arg2=""/>
</condition>
</fail>
<java classname="net.i2p.crypto.TrustedUpdate" fork="true" failonerror="true">
<classpath>
<pathelement location="build/i2p.jar" />
</classpath>
<arg value="sign" />
<arg value="i2pupdate.zip" />
<arg value="i2pupdate.sud" />
<arg value="${release.privkey}" />
<arg value="${release.number}" />
</java>
<fail message="i2pupdate.sud generation failed!" >
<condition>
<length file="i2pupdate.sud" when="lt" length="1000000" />
</condition>
</fail>
<echo message="Verify version and VALID signature:" />
<java classname="net.i2p.crypto.TrustedUpdate" fork="true" failonerror="true">
<classpath>
<pathelement location="build/i2p.jar" />
</classpath>
<arg value="verifysig" />
<arg value="i2pupdate.sud" />
</java>
<java classname="net.i2p.crypto.TrustedUpdate" fork="true" failonerror="true">
<classpath>
<pathelement location="build/i2p.jar" />
</classpath>
<arg value="showversion" />
<arg value="i2pupdate.sud" />
</java>
<!-- will this use the monotonerc file in the current workspace? -->
<echo message="Checking out fresh copy into ../i2p-${release-number} for tarballing:" />
<exec executable="mtn">
<arg value="co" />
<arg value="-b" />
<arg value="i2p.i2p" />
<arg value="../i2p-${release.number}/" />
</exec>
<exec executable="tar">
<arg value="cjf" />
<arg value="i2psource_${release.number}.tar.bz2" />
<arg value="-C" />
<arg value=".." />
<arg value="--exclude" />
<arg value="i2p-${release.number}/_MTN/" />
<arg value="i2p-${release.number}/" />
</exec>
<echo message="Sign the files:" />
<exec executable="gpg">
<arg value="-b" />
<arg value="i2pinstall_${release.number}.exe" />
</exec>
<exec executable="gpg">
<arg value="-b" />
<arg value="i2psource_${release.number}.tar.bz2" />
</exec>
<exec executable="gpg">
<arg value="-b" />
<arg value="i2pupdate_${release.number}.zip" />
</exec>
<echo message="File sizes:" />
<exec executable="ls">
<arg value="-l" />
<arg value="i2pinstall_${release.number}.exe" />
<arg value="i2psource_${release.number}.tar.bz2" />
<arg value="i2pupdate_${release.number}.zip" />
<arg value="i2pupdate.sud" />
<arg value="i2pinstall_${release.number}.exe.sig" />
<arg value="i2psource_${release.number}.tar.bz2.sig" />
<arg value="i2pupdate_${release.number}.zip.sig" />
</exec>
<echo message="SHA256 sums:" />
<exec executable="sha256sum">
<arg value="i2pinstall_${release.number}.exe" />
<arg value="i2psource_${release.number}.tar.bz2" />
<arg value="i2pupdate_${release.number}.zip" />
<arg value="i2pupdate.sud" />
</exec>
<echo message="Don't forget to mtn tag h: i2p-${release-number}" />
</target>
</project>