]> git.sur5r.net Git - bacula/bacula/commitdiff
Tweak release scripts
authorEric Bollengier <eric@eb.homelinux.org>
Thu, 4 Aug 2011 14:14:15 +0000 (16:14 +0200)
committerKern Sibbald <kern@sibbald.com>
Sat, 20 Apr 2013 12:49:29 +0000 (14:49 +0200)
bacula/release/README
bacula/release/config [new file with mode: 0644]
bacula/release/makeall
bacula/release/makebacularel
bacula/release/makeclean [deleted file]
bacula/release/makedocsrel
bacula/release/makewinrel
bacula/release/pushtags [new file with mode: 0755]

index 4b77fe6eb217d9776c6c60c7c2444191beec48e3..f8b804f341ee669ba838852ba7f6f7ecd027f810 100644 (file)
@@ -7,33 +7,43 @@ In general, you do the following:
 1. Copy the entire contents of this directory out of the 
    Bacula source tree (this may not be required, but is cleaner).
 
-2. Edit the makeall file, and update the following enviroment variables
+2. Edit the config file, and update the following enviroment variables
    to point to the correct directories on your system.  They should
    point to directories that contain git repos:
 
    bacula
    docs
-   rescu
+   rescue
 
-3. Ensure that the environment variable "version" is set correctly 
-   (yes, this could be automatically pulled from $bacula).
+   Also ensure that you have set repo to the name of your repository.
+   Normally, it is origin, but some developers (Kern) use bee.
 
-4. Run the makeall script.  There should be no errors.  If 
+3. Ensure that "branch" is properly set to the right version in
+   the config file.
+
+4. Note, the release version is obtained from bacula/src/version.h and
+   put into a number of files in the release by the release scripts.
+
+5. Run the makeall script.  
+
+   ./makeall
+
+6. There should be no errors.  If 
    there are, fix them, and re-run the script or re-run the scripts
    that makeall calls:
 
-   makeclean
-   makebacularel ...
-   makedocsrel ...
-   makerescuerel ...
-   makewinrel ...
+7. All the output files should be put in this directory.
 
-5. All the output files should be put in this directory.
-
-6. Before releasing, detar the main Bacula source into some
+8. Before releasing, detar the main Bacula source into some
    directory and run all the regression tests using the files
    in the bacula-xx.xx.xx.tar.gz file.  This ensures that there
    are no missing files.          
 
-7. Also before releasing, run at least one backup using the 
+9. Also before releasing, run at least one backup using the 
    Win32 and/or Win64 file daemon.
+
+10 When you are sure, run:
+
+   pushtags
+
+   which will push each repo and push the tags.
diff --git a/bacula/release/config b/bacula/release/config
new file mode 100644 (file)
index 0000000..acfebe7
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Configuration for release scripts
+
+#
+# Set to the Branch you are working on
+#
+branch=Branch-5.1
+# 
+# set reltype to release or beta -- for upload and setting DEVELOPER
+reltype=beta
+
+
+repo=$reltype
+
+# Bacula git repos
+bacula=${bacula:-${HOME}/bee/bacula}
+docs=${docs:-${HOME}/bee/docs}
+
+#
+# Set the following to your remote name.  By default it is origin.
+remote=${remote:-origin}
+
+export push=no
+#
+# Note, you will probably want to set updatepo=no if you
+#   run this script multiple times for a given release.
+export updatepo=no
+
+cwd=`pwd`
+
+cd ${bacula}/bacula
+if [ $? -ne 0 ]; then
+   echo "Directory: $1 does not exist"
+   exit 1
+fi
+current=`git branch | awk '/*/ { print $2 }'`
+git checkout ${branch}
+git pull ${remote} ${branch}
+if [ $? -ne 0 ]; then
+   echo "Checkout of branch ${branch} failed."
+   exit 1
+fi
+ver=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' src/version.h`
+lsmdate=`sed -n -e 's/^.*LSMDATE.*"\(.*\)"$/\1/p' src/version.h`
+
+git checkout ${current}
+
+cd $cwd
index 69ef215e2726d548024c1a637c1854aea71aa7b5..ce60e1188e0bd5a44e47f8e359d7a89f03c71f88 100755 (executable)
@@ -2,22 +2,21 @@
 #
 # Make full release
 #
-# Bacula git repos
-bacula=${bacula:-/home/kern/bacula/k}
-docs=${docs:-/home/kern/bacula/docs}
-rescue=${rescue:-/home/kern/bacula/rescue}
-export push=yes
-export updatepo=yes
 
-current=$(cd $bacula ; git branch | awk '/*/ { print $2 }')
-branch=${1:-$current}
+# Source config
+. ./config
 
-./makeclean
-./makebacularel $bacula $branch
-./makedocsrel $bacula $docs $branch
-./makerescuerel $rescue $branch
-./makewinrel $bacula $branch | tee win$$.log
+echo "Creating release version: ${ver}"
 
+cd $cwd
+
+./makebacularel $bacula $remote $branch $ver
+./makedocsrel $bacula $docs $remote $branch $ver
+./makewinrel $bacula $remote $branch $ver | tee win$$.log
+
+# strip ./configure strerror from Win log file
+sed -i -e 's%strerror%%' win$$.log
+# check for warning and error messages
 grep -i warning win$$.log >/dev/null
 if [ $? -eq 0 ] ; then
   echo " "
index 39c4334bbfc1e1ed2b2edd1bee79135a53ec1459..869667af8d71ce5d6d76d9f030baaa48f5f14efa 100755 (executable)
 # Commit all changes, update the language files, 
 #    export the release, make a release tar.
 #
-cwd=`pwd`
-reltype=release
+# source config
+. ./config
+
 tagbase=Release-
+base_dir=bacula
 base_pkg=bacula
-if [ $# != 2 ] ; then
-  echo "Need $0 <source-directory> <branch>"
-  echo "e.g. $0 release-source 3.0.3"
+
+remote=$2
+branch=$3
+ver=$4
+
+if [ $# != 4 ] ; then
+  echo "Need $0 <source-directory> <remote-name> <branch> <version>"
+  echo "e.g. $0 release-source bee Branch-4.0 4.0.3"
   exit 1
 fi
 cd $1
@@ -27,25 +34,24 @@ if [ $? -ne 0 ]; then
    exit 1
 fi
 src=`pwd` 
-cd $base_pkg 
+current=`git branch | awk '/*/ { print $2 }'`
+cd $base_dir 
 if [ $?  -ne 0 ]; then
    echo "Directory: $1 does not exist"
    exit 1
 fi
-branch=$2
 git checkout ${branch}
-git pull origin ${branch}
+git pull ${remote} ${branch}
 if [ $? -ne 0 ]; then
    echo "Checkout of branch ${branch} failed."
    exit 1
 fi
-ver=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' src/version.h`
 fulltag=$tagbase$ver
 echo " "
 echo "Making $reltype for $base_pkg-$ver ..."
 echo " "
-echo "OK?  ctl-c to stop"
-read a
+#echo "OK?  ctl-c to stop"
+#read a
 rm -rf Release-$ver
 if [ $reltype != "beta" ] ; then
    cd src
@@ -59,8 +65,8 @@ if [ a$updatepo != ano ]; then
    cd po
    make update-po
    cd ${src}   
-   git commit -am "Final po changes for ${fulltag}"
 fi
+
 git tag -d ${fulltag}
 echo "Creating new tag -- $fulltag"
 git tag $fulltag
@@ -76,6 +82,7 @@ rm -rf $base_pkg-$ver $base_pkg-$ver.tar.gz $base_pkg-$ver.tar.gz.sig
 rm -rf $fulltag
 cd ${src}
 git archive --format=tar --prefix=$base_pkg-$ver/ $fulltag | gzip >${cwd}/$base_pkg-$ver.tar.gz
+
 if [ $? != 0 ] ; then
   echo " "
   echo "Non-zero return status from Git"
@@ -83,23 +90,33 @@ if [ $? != 0 ] ; then
   exit 1
 fi
 echo "Exported release into ${cwd}/$base_pkg-$ver.tar.gz"
-git checkout master
 cd ${cwd}
 tar xfz $base_pkg-$ver.tar.gz 
-cd $base_pkg-$ver/
+# First remove Enterprise Win32 plugin source
+cd $base_pkg-$ver/bacula
+cp -fp ReleaseNotes ${cwd}/ReleaseNotes
+
+cd ${cwd}/$base_pkg-$ver
+# Move directories to release names including version
 mv bacula $base_pkg-$ver
 mv gui $base_pkg-gui-$ver
 mv regress $base_pkg-regress-$ver
+# Tar each component individually
 tar cvfz ../$base_pkg-$ver.tar.gz $base_pkg-$ver
 tar cvfz ../$base_pkg-gui-$ver.tar.gz $base_pkg-gui-$ver
 tar cvfz ../$base_pkg-regress-$ver.tar.gz $base_pkg-regress-$ver
 cd ..
+rm -rf $base_pkg-$ver
 ./sign $base_pkg-$ver.tar.gz
 ./sign $base_pkg-gui-$ver.tar.gz
 ./sign $base_pkg-regress-$ver.tar.gz
 
 if [ a$push != ano ]; then
    cd ${src}
-   git push origin $branch
-   git push origin tag $fulltag
+   git push ${remote} ${branch}
+   git push ${remote} tag ${fulltag}
+   echo "Pushed ${remote} and push tag ${fulltag}"
 fi
+
+cd ${src}
+git checkout ${current}
diff --git a/bacula/release/makeclean b/bacula/release/makeclean
deleted file mode 100755 (executable)
index 9ed0633..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-rm -rf bacula-* win32bacula* win64bacula*
index 1073c1f6ef3be111cc65497cbed68e55ff2cca2f..e6281bcb246143d25f0f2383e46fde950c639b66 100755 (executable)
@@ -9,15 +9,20 @@
 #
 # Commit all changes, export the release, make a release tar.
 #
-cwd=`pwd`
-reltype=release
+# source ./config
+. ./config
+
 tagbase=Release-
 base_dir=docs
 base_pkg=bacula-$base_dir
-branch=$3
-if [ $# != 3 ] ; then
-  echo "Need $0 <bacula-source-directory> <docs-source-directory> <branch>"
-  echo "e.g. $0 bacula-source docs-source master"
+remote=$3
+branch=$4
+ver=$5
+fulltag=$tagbase$ver
+
+if [ $# != 5 ] ; then
+  echo "Need $0 <bacula-source-directory> <docs-source-directory> <remote-name> <branch> <version>"
+  echo "e.g. $0 bacula-source docs-source bee Branch-4.0 4.0.3"
   exit 1
 fi
 cd $1
@@ -30,12 +35,13 @@ if [ $?  -ne 0 ]; then
    echo "Directory: $1 does not exist"
    exit 1
 fi
+bcurrent=`git branch | awk '/*/ { print $2 }'`
 git checkout ${branch}
 if [ $? -ne 0 ]; then
    echo "Checkout of branch ${branch} in $1/bacula failed."
    exit 1
 fi
-git pull origin ${branch}
+git pull ${remote} ${branch}
 bsrc=`pwd` 
 cd ${cwd}
 cd $2
@@ -48,22 +54,21 @@ if [ $?  -ne 0 ]; then
    echo "Directory: $2 does not exist"
    exit 1
 fi
+current=`git branch | awk '/*/ { print $2 }'`
 src=`pwd` 
 git checkout ${branch}
 if [ $? -ne 0 ]; then
    echo "Checkout of branch ${branch} in ${src} failed."
    exit 1
 fi
-git pull origin ${branch}
-ver=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' ${bsrc}/src/version.h`
-fulltag=$tagbase$ver
+git pull ${remote} ${branch}
 echo " "
 echo "Making $reltype for $base_pkg-$ver ..."
 echo " "
-echo "OK?  ctl-c to stop"
-read a
+#echo "OK?  ctl-c to stop"
+#read a
 
-git tag -d ${fulltag}
+git tag -d ${fulltag}  2>/dev/null 1>/dev/null
 echo "Creating new tag -- $fulltag"
 git tag $fulltag
 if [ $? != 0 ] ; then
@@ -85,7 +90,6 @@ if [ $? != 0 ] ; then
   exit 1
 fi
 echo "Exported release into ${cwd}/$base_pkg-$ver.tar.gz"
-git checkout master
 cd ${cwd}
 tar xfz $base_pkg-$ver.tar.gz 
 cd $base_pkg-$ver/
@@ -93,8 +97,6 @@ mv docs $base_pkg-$ver
 cd $base_pkg-$ver
 ./configure --with-bacula=$bsrc
 make en
-cd ${bsrc}
-git checkout master
 cd ${cwd}
 echo "Tarring docs ..."
 tar cf $base_pkg-$ver.tar $base_pkg-$ver
@@ -106,6 +108,13 @@ ls -l $base_pkg-$ver.tar.*
 
 if [ a$push != ano ]; then
    cd ${src}
-   git push origin $branch
-   git push origin tag $fulltag
+   git push ${remote} ${branch}
+   git push ${remote} tag ${fulltag}
+   echo "Pushed ${remote} and push tag ${fulltag}"
 fi
+
+cd ${src}
+git checkout ${current}
+
+cd ${bsrc}
+git checkout ${bcurrent}
index ad29d78d66160aeadbad6a67f0cc5f133f7a3a84..0beb7faabdc8048f5a0558d8d2c17805d9f54f16 100755 (executable)
@@ -9,15 +9,19 @@
 #
 # Commit all changes, export the release, make a release tar.
 #
-cwd=`pwd`
-reltype=release
+# source ./config
+. ./config
+
 tagbase=Release-
-base_pkg=windows
-branch=$2
+base_pkg=bacula
+remote=$2
+branch=$3
+ver=$4
+fulltag=$tagbase$ver
 
-if [ $# != 2 ] ; then
-  echo "Need $0 <bacula-source-directory> <branch>"
-  echo "e.g. $0 rescue-source master"
+if [ $# != 4 ] ; then
+  echo "Need $0 <bacula-source-directory> <remote-name> <branch> <version>"
+  echo "e.g. $0 rescue-source bee Branch-4.0 4.0.3"
   exit 1
 fi
 cd $1
@@ -30,32 +34,36 @@ if [ $?  -ne 0 ]; then
    echo "Directory: $1 does not exist"
    exit 1
 fi
+current=`git branch | awk '/*/ { print $2 }'`
 src=`pwd` 
 git checkout ${branch}
 if [ $? -ne 0 ]; then
    echo "Checkout of branch ${branch} in ${src} failed."
    exit 1
 fi
-git pull origin ${branch}
-ver=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' src/version.h`
-fulltag=$tagbase$ver
+git pull ${remote} ${branch}
 echo " "
-echo "Making $reltype for $base_pkg-$ver ..."
+echo "Making $reltype for Windows $base_pkg-$ver ..."
 echo " "
-echo "OK?  ctl-c to stop"
-read a
+#echo "OK?  ctl-c to stop"
+#read a
 
 cd src/win32
-rm -f release32/win32bacula-$ver.exe
-rm -f release64/win64bacula-$ver.exe
+rm -f release32/${base_pkg}-win32-$ver.exe
+rm -f release64/${base_pkg}-win64-$ver.exe
 make clean
+cd ../..
+./configure --with-sqlite3
+cd src/win32
 ./makeall
-cp release32/win32bacula-$ver.exe ${cwd}
-cp release64/win64bacula-$ver.exe ${cwd}
-git checkout master
+cp release32/${base_pkg}-win32-$ver.exe ${cwd}
+cp release64/${base_pkg}-win64-$ver.exe ${cwd}
 cd ${cwd}
 rm -f *.exe.sig
-./sign win32bacula-$ver.exe
-./sign win64bacula-$ver.exe
-ls -l win*.exe*
+./sign ${base_pkg}-win32-$ver.exe
+./sign ${base_pkg}-win64-$ver.exe
+ls -l ${base_pkg}-win*.exe*
 
+cd ${src}
+# get back to original branch
+git checkout ${current}
diff --git a/bacula/release/pushtags b/bacula/release/pushtags
new file mode 100755 (executable)
index 0000000..a1ed841
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/sh
+#
+# Push tags
+#
+
+. ./config
+
+echo "Updating repo and tags for release version: ${ver}"
+
+cd $cwd
+
+fulltag=Release-$ver
+
+for i in $bacula $docs ; do
+  cd $i
+  current=`git branch | awk '/*/ { print $2 }'`
+  git checkout ${branch}
+  git push ${remote} ${branch}
+  git push ${remote} tag ${fulltag}
+  echo "Pushed ${remote} and push tag ${fulltag} in $i"
+  git checkout ${current}
+done
+