From de1b355f49a4fd5bd775ae9b407d45942c0979e0 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 16 Jun 2014 17:35:04 -0400 Subject: [PATCH] Update build script for git-flow releases --- release.template | 180 ++++++++++++++++++++++++--------------------- build.xml | 24 +++++ 2 files changed, 119 insertions(+), 85 deletions(-) diff --git a/build.xml b/build.xml index 39fdb2e..59dc6cb 100644 --- a/build.xml +++ b/build.xml @@ -780,16 +780,38 @@ </filterset> </copy> <chmod file="${recipe}" perm="ugo+rx" /> + </target> + + <!-- + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Prepare for the next point release development cycle. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + --> + <target name="nextPointReleaseCycle" depends="prepare" description="prepare for the next point release development cycle"> <!-- next cycle --> <mx:version stage="snapshot" incrementNumber="incremental" dryrun="${dryrun}" /> <mx:commit showtitle="no"> - <message>Reset build identifiers for next development cycle</message> + <message>Reset build identifiers for next point release cycle</message> </mx:commit> </target> <!-- + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Prepare for the next minor release development cycle. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + --> + <target name="nextMinorReleaseCycle" depends="prepare" description="prepare for the next minor release development cycle"> + <!-- next cycle --> + <mx:version stage="snapshot" incrementNumber="minor" dryrun="${dryrun}" /> + <mx:commit showtitle="no"> + <message>Reset build identifiers for next minor release cycle</message> + </mx:commit> + </target> + + + <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Build Gitblit Docs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/release.template b/release.template index f248efd..a539c63 100644 --- a/release.template +++ b/release.template @@ -1,84 +1,96 @@ -#!/bin/bash -# -# ${project.version} release script -# - -# ensure Maven repository is up-to-date -echo "" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "Preparing Maven repository" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "" -cd ${maven.directory} -git checkout gh-pages -git pull -cd ${project.directory} - -# go back one commit to RELEASE commit -echo "" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "Checking out ${project.version} RELEASE commit ${project.commitId}" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "" -git checkout ${project.commitId} - -# build RELEASE artifacts -echo "" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "Building ${project.version} RELEASE artifacts" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "" -ant clean buildAll buildMavenArtifacts - -# commit all generated artifacts and metadata -echo "" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "Committing Maven repository ${project.version} RELEASE artifacts" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "" -cd ${maven.directory} -git add . -git commit -m "${project.version} artifacts" -cd ${project.directory} - -# upload artifacts -echo "" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "Uploading ${project.version} artifacts" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "" -ant publishBinaries - -# build site, update gh-pages, and ftp upload site to hosting provider -echo "" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "Building ${project.version} website" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "" -ant publishSite - -# return to project master -echo "" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "Checking out master" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "" -git checkout master - -# push Maven repository to origin -echo "" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "Pushing Maven repository" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "" -cd ${maven.directory} -git push origin gh-pages -cd ${project.directory} - -# push project branches -echo "" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "Pushing master, gh-pages, and tag ${project.tag}" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "" -git push origin master gh-pages tag ${project.tag} +#!/bin/bash +# +# ${project.version} release script +# + +# ensure Maven repository is up-to-date +echo "" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "Preparing Maven repository" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "" +cd ${maven.directory} +git checkout gh-pages +git pull +cd ${project.directory} + +# go back one commit to RELEASE commit +echo "" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "Checking out ${project.version} RELEASE commit ${project.commitId}" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "" +git checkout ${project.commitId} + +# build RELEASE artifacts +echo "" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "Building ${project.version} RELEASE artifacts" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "" +ant clean buildAll buildMavenArtifacts + +# commit all generated artifacts and metadata +echo "" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "Committing Maven repository ${project.version} RELEASE artifacts" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "" +cd ${maven.directory} +git add . +git commit -m "${project.version} artifacts" +cd ${project.directory} + +# upload artifacts +echo "" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "Uploading ${project.version} artifacts" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "" +ant publishBinaries + +# build site, update gh-pages, and ftp upload site to hosting provider +echo "" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "Building ${project.version} website" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "" +ant publishSite + +# merge to master +echo "" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "Merging release ${project.version} to master" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "" +git checkout master +git merge -m "Merge release ${project.version}" ${project.commitId} +ant nextPointReleaseCycle + +# merge to develop +echo "" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "Merging release ${project.version} to develop" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "" +git checkout develop +git merge -m "Merge release ${project.version}" ${project.commitId} +ant nextMinorReleaseCycle + +# push Maven repository to origin +echo "" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "Pushing Maven repository" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "" +cd ${maven.directory} +git push origin gh-pages +cd ${project.directory} + +# push project branches +echo "" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "Pushing master, develop, gh-pages, and tag ${project.tag}" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "" +git push origin master develop gh-pages tag ${project.tag} -- Gitblit v1.9.1