| #!/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 --no-ff -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 --no-ff -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 ${project.tag} |