From 5fec620f949eb5345513cdea12035fdf1d6d0515 Mon Sep 17 00:00:00 2001 From: Chris Sharp Date: Fri, 23 Mar 2018 14:37:54 -0400 Subject: [PATCH] Adding convenience script for building point releases --- build-eg/build_eg_point_release.sh | 155 +++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100755 build-eg/build_eg_point_release.sh diff --git a/build-eg/build_eg_point_release.sh b/build-eg/build_eg_point_release.sh new file mode 100755 index 0000000..e8c79cc --- /dev/null +++ b/build-eg/build_eg_point_release.sh @@ -0,0 +1,155 @@ +#!/bin/bash + +# script to automate EG release packaging for point releases +# not major releases. +# +# developed on ubuntu 14.04 and designed to be run there +# see https://bugs.launchpad.net/evergreen/+bug/1757455 + +Usage () { +echo "Usage: $0 -o -e -g -h help" +} + +while getopts e:o:g:h OPTIONS +do case "$OPTIONS" in + e) EG_VERSION="$OPTARG";; + o) OSRF_VERSION="$OPTARG";; + g) GIT_USERNAME="$OPTARG";; + h) Usage ; exit 1;; + [?]) Usage ; exit 2;; + esac +done + +if [ -z $EG_VERSION ] || [ -z $OSRF_VERSION ] || [ -z $GIT_USERNAME ]; then + Usage; + exit 3 +fi + +# set up some variables +WORKDIR="$PWD" +TRANSLATION_USER="bshum" +TRANSLATION_EXPORT="translation-export-$(echo $EG_VERSION | cut -b 1-3)" +VERSION_STRING="$(echo $EG_VERSION | perl -e 'while (<>) {@c = split /\./, $_; print "$c[0].0$c[1]0$c[2]";}')" +OSRF_GIT="osrf_rel_$(echo $OSRF_VERSION | sed 's/\./_/g')" +PREV_EG_VERSION=$(echo $EG_VERSION | perl -e 'while (<>) {@c = split /\./, $_; print "$c[0].$c[1]." . ("$c[2]" - 1)}') +UPGRADE_DOC="docs/installation/server_upgrade.adoc" + +# clone OpenSRF +CloneOpenSRF () { +if [ ! -d OpenSRF ]; then + git clone git://git.evergreen-ils.org/OpenSRF.git +else + echo "OpenSRF directory already exists. Skipping" +fi +cd OpenSRF && git checkout -b $OSRF_GIT $OSRF_GIT +cd $WORKDIR +} + +# clone Evergreen +CloneEvergreen () { +if [ ! -d Evergreen ]; then + git clone git://git.evergreen-ils.org/Evergreen.git +else + echo "Evergreen directory already exists. Skipping" +fi +} + +# Add working repo so we have somewhere to push +AddWorkingRepo () { +cd $WORKDIR/Evergreen +if [ "$(git config remote.working.url > /dev/null)" ]; then + echo "Git remote 'working' already exists. Skipping" +else + # read/write git URL + git remote add working git@git.evergreen-ils.org:working/Evergreen.git +fi +git remote update +cd $WORKDIR +} + +# Branch from rel_X_X +CreateBranch () { +cd $WORKDIR/Evergreen +git checkout rel_$(echo $EG_VERSION | cut -b 1-3 | sed 's/\./_/g') +git checkout -b rel_$(echo $EG_VERSION | sed 's/\./_/g') +cd $WORKDIR +} + +# pull in i18n changes +UpdateTranslations () { +cd $WORKDIR +if [ -d "$TRANSLATION_EXPORT" ]; then + echo "Directory $TRANSLATION_EXPORT already exists. Skipping" +else + bzr branch lp:~$TRANSLATION_USER/evergreen/$TRANSLATION_EXPORT +fi +cd $TRANSLATION_EXPORT +bzr pull +cd $WORKDIR +Evergreen/build/i18n/scripts/update_pofiles -l $TRANSLATION_EXPORT -e Evergreen +cd Evergreen +git add . +git commit -asm "Translation updates - po files" +cd $WORKDIR +} + +# update Perl version string +UpdatePerlVersionString () { +cd Evergreen +sed -i "s/our \$VERSION = '[0-9].[0-9]*';/our \$VERSION = '$VERSION_STRING';/" Open-ILS/src/perlmods/lib/OpenILS.pm +git commit -asm "Bumping Perl version string for $EG_VERSION" +cd $WORKDIR +} + +# substitute old EG version number with new EG version number in the upgrade doc +UpdateUpgradeDoc () { +cd Evergreen +sed -i "s/rel_$(echo $PREV_EG_VERSION | sed 's/\./_/g')/rel_$(echo $EG_VERSION | sed 's/\./_/g')/g" $UPGRADE_DOC +sed -i "s/Evergreen $PREV_EG_VERSION/Evergreen $EG_VERSION/g" $UPGRADE_DOC +sed -i "s/Evergreen-ILS-$PREV_EG_VERSION/Evergreen-ILS-$EG_VERSION/g" $UPGRADE_DOC +sed -i "s/to $PREV_EG_VERSION/to $EG_VERSION/g" $UPGRADE_DOC +sed -i "/-$PREV_EG_VERSION-upgrade-db.sql/a - $PREV_EG_VERSION-$EG_VERSION-upgrade-db.sql" $UPGRADE_DOC +sed -i "/^-.*-$PREV_EG_VERSION-upgrade-db.sql/a - $PREV_EG_VERSION-$EG_VERSION-upgrade-db.sql" $UPGRADE_DOC +sed -i "s^version-upgrade/.*-$PREV_EG_VERSION-upgrade-db.sql^version-upgrade/$PREV_EG_VERSION-$EG_VERSION-upgrade-db.sql^g" $UPGRADE_DOC +git commit -asm "Updating upgrade docs for $EG_VERSION." +cd $WORKDIR +} + +# run the make release script +MakeRelease () { +cd Evergreen +export PATH=$PATH:/openils/bin +build/tools/make_release -c -v $EG_VERSION -f origin/tags/rel_$(echo $PREV_EG_VERSION | sed 's/\./_/g') +cd $WORKDIR +} + +# generate release docs +ReleaseDocs () { +cd Evergreen +cp README ../release/README_$(echo $EG_VERSION | cut -b 1-3 | sed 's/\./_/g') +cp docs/RELEASE_NOTES_$(echo $EG_VERSION | cut -b 1-3 | sed 's/\./_/g').adoc ../release/ +cd ../release/ +for i in README_$(echo $EG_VERSION | cut -b 1-3 | sed 's/\./_/g') RELEASE_NOTES_$(echo $EG_VERSION | cut -b 1-3 | sed 's/\./_/g').adoc; do + asciidoc -a toc -a numbered $i + rm $i +done +cd $WORKDIR +} + +# push the changes to git server +PushBranch () { +cd Evergreen +git push working rel_$(echo $EG_VERSION | sed 's/\./_/g'):user/$GIT_USERNAME/rel_$(echo $EG_VERSION | sed 's/\./_/g') +} + +# do stuff +CloneOpenSRF +CloneEvergreen +AddWorkingRepo +CreateBranch +UpdateTranslations +UpdatePerlVersionString +UpdateUpgradeDoc +MakeRelease +ReleaseDocs +PushBranch -- 2.11.0