Update the gh-pages branch with the current site\r
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r
-->\r
- <target name="updateGhPages" depends="buildSite">\r
+ <target name="updateGhPages">\r
<!-- Build gh-pages branch -->\r
<mx:ghpages repositorydir="${basedir}" obliterate="true" />\r
</target>\r
Publish binaries to Google Code\r
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r
-->\r
- <target name="publishBinaries" depends="clean,buildGO,buildWAR,buildExpress,buildFederationClient,buildManager,buildApiLibrary" description="Publish the Gitblit binaries to Google Code">\r
+ <target name="publishBinaries" description="Publish the Gitblit binaries to Google Code">\r
\r
<echo>Uploading Gitblit ${project.version} binaries</echo>\r
\r
<!--\r
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \r
Publish site to site hosting service\r
- You must add ext/commons-net-1.4.0.jar to your ANT classpath.\r
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r
-->\r
- <target name="publishSite" depends="clean,buildSite,updateGhPages" description="Publish the Gitblit site to a webserver (requires ext/commons-net-1.4.0.jar)" >\r
+ <target name="publishSite" depends="clean,buildSite,updateGhPages" description="Publish the Gitblit site to a host" >\r
\r
<echo>Uploading Gitblit ${project.version} website</echo>\r
\r
- <ftp server="${ftp.server}"\r
+ <mx:ftp server="${ftp.server}"\r
userid="${ftp.user}"\r
password="${ftp.password}"\r
remotedir="${ftp.dir}"\r
passive="true"\r
verbose="yes">\r
<fileset dir="${project.siteTargetDirectory}" />\r
- </ftp>\r
+ </mx:ftp>\r
</target>\r
\r
\r
- <!--\r
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \r
- Compile from source, publish binaries, and build & deploy site\r
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r
- -->\r
- <target name="publishAll" depends="publishBinaries,publishSite" />\r
-\r
- \r
<!--\r
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \r
Tag a new version and prepare for the next development cycle.\r
<!-- release -->\r
<property name="dryrun" value="false" />\r
<mx:version stage="release" dryrun="${dryrun}" /> \r
+ <property name="project.tag" value="v${project.version}" />\r
<!-- commit build.moxie & releases.moxie (automatic) -->\r
<mx:commit showtitle="no">\r
<message>Prepare ${project.version} release</message>\r
- <tag name="v${project.version}">\r
+ <tag name="${project.tag}">\r
<message>${project.name} ${project.version} release</message>\r
</tag>\r
</mx:commit>\r
\r
+ <!-- create the release process script -->\r
+ <mx:if>\r
+ <os family="windows" />\r
+ <then>\r
+ <!-- Windows PowerShell script -->\r
+ <!-- set-executionpolicy remotesigned -->\r
+ <property name="recipe" value="release_${project.version}.ps1" />\r
+ </then>\r
+ <else>\r
+ <!-- Bash script -->\r
+ <property name="recipe" value="release_${project.version}.sh" />\r
+ </else>\r
+ </mx:if>\r
+ <delete file="${recipe}" failonerror="false" quiet="true" verbose="false" />\r
+ <!-- Work-around for lack of proper ant property substitution in copy -->\r
+ <property name="dollar" value="$"/>\r
+ <copy file="release.template" tofile="${recipe}">\r
+ <filterset begintoken="${dollar}{" endtoken="}">\r
+ <filter token="project.version" value="${project.version}" />\r
+ <filter token="project.commitId" value="${project.commitId}" />\r
+ <filter token="project.tag" value="${project.tag}" />\r
+ </filterset>\r
+ </copy>\r
+ <chmod file="${recipe}" perm="ugo+rx" />\r
+\r
<!-- next cycle -->\r
<mx:version stage="snapshot" incrementNumber="incremental" dryrun="${dryrun}" />\r
<mx:commit showtitle="no">\r
<message>Reset build identifiers for next development cycle</message>\r
- </mx:commit>\r
+ </mx:commit> \r
</target>\r
\r
\r
--- /dev/null
+#!/bin/bash\r
+#\r
+# ${project.version} release script\r
+#\r
+\r
+# go back one commit to RELEASE commit\r
+echo ""\r
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"\r
+echo "Checking out ${project.version} RELEASE commit ${project.commitId}"\r
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"\r
+echo ""\r
+git checkout ${project.commitId}\r
+\r
+# build RELEASE artifacts\r
+echo ""\r
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"\r
+echo "Building ${project.version} RELEASE artifacts"\r
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"\r
+echo ""\r
+ant clean buildAll\r
+\r
+# upload artifacts\r
+echo ""\r
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"\r
+echo "Uploading ${project.version} artifacts"\r
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"\r
+echo ""\r
+ant publishBinaries\r
+\r
+# build site, update gh-pages, and ftp upload site to hosting provider\r
+echo ""\r
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"\r
+echo "Building ${project.version} website"\r
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"\r
+echo ""\r
+ant publishSite\r
+\r
+# return to project master\r
+echo ""\r
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"\r
+echo "Checking out master"\r
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"\r
+echo ""\r
+git checkout master\r
+\r
+# push project branches\r
+echo ""\r
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"\r
+echo "Pushing master, gh-pages, and tag ${project.tag}"\r
+echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"\r
+echo ""\r
+git push origin master gh-pages tag ${project.tag}\r