From fa232e6eb3ce6c231fc2186e2684e6c82076c355 Mon Sep 17 00:00:00 2001 From: Scott R Charlton Date: Wed, 4 Nov 2015 22:53:31 +0000 Subject: [PATCH] working on jenkins build git-svn-id: svn://136.177.114.72/svn_GW/IPhreeqc/trunk@10473 1feff8c3-07ed-0310-ac33-dd36852eb9cd --- jenkins-dist.sh | 291 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 291 insertions(+) create mode 100644 jenkins-dist.sh diff --git a/jenkins-dist.sh b/jenkins-dist.sh new file mode 100644 index 00000000..1f15b750 --- /dev/null +++ b/jenkins-dist.sh @@ -0,0 +1,291 @@ +#!/bin/sh +# $Id: dist.sh 4132 2010-02-24 05:35:35Z charlton $ + +# +# USAGE: ./dist.sh -v VERSION -r REVISION -d RELEASE_DATE +# [-rs REVISION-SVN] [-pr REPOS-PATH] +# [-zip] [-alpha ALPHA_NUM|-beta BETA_NUM|-rc RC_NUM] +# +# Create a distribution tarball, labelling it with the given VERSION. +# The REVISION or REVISION-SVN will be used in the version string. +# The tarball will be constructed from the root located at REPOS-PATH. +# If REPOS-PATH is not specified then the default is "branches/VERSION". +# For example, the command line: +# +# ./dist.sh -v 0.24.2 -r 6284 +# +# from the top-level of a branches/0.24.2 working copy will create +# the 0.24.2 release tarball. +# +# When building a alpha, beta or rc tarballs pass the apppropriate flag +# followed by the number for that release. For example you'd do +# the following for a Beta 1 release: +# ./dist.sh -v 1.1.0 -r 10277 -pr branches/1.1.x -beta 1 +# +# If neither an -alpha, -beta or -rc option with a number is +# specified, it will build a release tarball. +# +# To build a Windows zip file package pass -zip. + +# echo everything +set -x + +# A quick and dirty usage message +USAGE="USAGE: ./dist.sh -v VERSION -r REVISION -d RELEASE_DATE \ +[-rs REVISION-SVN ] [-pr REPOS-PATH] \ +[-alpha ALPHA_NUM|-beta BETA_NUM|-rc RC_NUM] \ +[-zip] + EXAMPLES: ./dist.sh -v 0.36.0 -r 8278 -d 2/7/05 + ./dist.sh -v 0.36.0 -r 8278 -d 2/7/05 -pr trunk + ./dist.sh -v 0.36.0 -r 8282 -d 2/7/05 -rs 8278 -pr tags/0.36.0 + ./dist.sh -v 0.36.0 -r 8282 -d 2/7/05 -rs 8278 -pr tags/0.36.0 -alpha + ./dist.sh -v 0.36.0 -r 8282 -d 2/7/05 -rs 8278 -pr tags/0.36.0 -beta 1" + + + + +# Let's check and set all the arguments +ARG_PREV="" + +for ARG in $@ +do + if [ "$ARG_PREV" ]; then + + case $ARG_PREV in + -v) VERSION="$ARG" ;; + -r) REVISION="$ARG" ;; + -rs) REVISION_SVN="$ARG" ;; + -pr) REPOS_PATH="$ARG" ;; + -rc) RC="$ARG" ;; + -beta) BETA="$ARG" ;; + -alpha) ALPHA="$ARG" ;; + -d) RDATE="$ARG" ;; + *) ARG_PREV=$ARG ;; + esac + + ARG_PREV="" + + else + + case $ARG in + -v|-r|-rs|-pr|-beta|-rc|-alpha|-d) + ARG_PREV=$ARG + ;; + -zip) + ZIP=1 + ARG_PREV="" + ;; + *) + echo " $USAGE" + exit 1 + ;; + esac + fi +done + +if [ -z "$REVISION_SVN" ]; then + REVISION_SVN=$REVISION +fi + +if [ -n "$ALPHA" ] && [ -n "$BETA" ] || + [ -n "$ALPHA" ] && [ -n "$RC" ] || + [ -n "$BETA" ] && [ -n "$RC" ] ; then + echo " $USAGE" + exit 1 +elif [ -n "$ALPHA" ] ; then + VER_TAG="Alpha $ALPHA" + VER_NUMTAG="-alpha$ALPHA" +elif [ -n "$BETA" ] ; then + VER_TAG="Beta $BETA" + VER_NUMTAG="-beta$BETA" +elif [ -n "$RC" ] ; then + VER_TAG="Release Candidate $RC" + VER_NUMTAG="-rc$RC" +else + VER_TAG="r$REVISION_SVN" + VER_NUMTAG="-$REVISION" +fi + +if [ -n "$ZIP" ] ; then + EXTRA_EXPORT_OPTIONS="--native-eol CRLF" +fi + +if [ -z "$VERSION" ] || [ -z "$REVISION" ] || [ -z "$RDATE" ]; then + echo " $USAGE" + exit 1 +fi + +VER="$VERSION" +REL="$REVISION" +LOWER='abcdefghijklmnopqrstuvwxyz' +UPPER='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +VER_UC=`echo $VER | sed -e "y/$LOWER/$UPPER/"` + +RELEASE_DATE="`date -d "$RDATE" "+%B %e, %G"`" +V_FIXDATE="`date -d "$RDATE" "+%d-%b-%G"`" + +if [ -z "$REPOS_PATH" ]; then + REPOS_PATH="branches/$VERSION" +else + REPOS_PATH="`echo $REPOS_PATH | sed 's/^\/*//'`" +fi + +DISTNAME="IPhreeqc-${VERSION}${VER_NUMTAG}" +##DIST_SANDBOX=.dist_sandbox +##DISTPATH="$DIST_SANDBOX/$DISTNAME" +DISTPATH="." + +echo "Distribution will be named: $DISTNAME" +echo " release branch's revision: $REVISION" +echo " executable's revision: $REVISION_SVN" +echo " constructed from path: /$REPOS_PATH" +echo " release date: $RELEASE_DATE" + +##rm -rf "$DIST_SANDBOX" +##mkdir "$DIST_SANDBOX" +##echo "Removed and recreated $DIST_SANDBOX" +## +##echo "Exporting revision $REVISION of IPhreeqc into sandbox..." +##(cd "$DIST_SANDBOX" && \ +## ${SVN:-svn} export -q $EXTRA_EXPORT_OPTIONS --ignore-externals -r "$REVISION" \ +## "http://internalbrr.cr.usgs.gov/svn_GW/IPhreeqc/$REPOS_PATH" \ +## "$DISTNAME") +##if [ $? != 0 ] ; then +## echo "svn checkout error" +## exit $?; +##fi +## +##(cd "$DIST_SANDBOX" && \ +## ${SVN:-svn} export -q $EXTRA_EXPORT_OPTIONS --ignore-externals -r "$REVISION" \ +## "http://internalbrr.cr.usgs.gov/svn_GW/phreeqc3/$REPOS_PATH/src" \ +## "$DISTNAME/src/phreeqcpp") +##if [ $? != 0 ] ; then +## echo "svn checkout error" +## exit $?; +##fi +## +##(cd "$DIST_SANDBOX" && \ +## ${SVN:-svn} export -q $EXTRA_EXPORT_OPTIONS --ignore-externals -r "$REVISION" \ +## "http://internalbrr.cr.usgs.gov/svn_GW/phreeqc3/$REPOS_PATH/doc" \ +## "$DISTNAME/phreeqc3-doc") +##if [ $? != 0 ] ; then +## echo "svn checkout error" +## exit $?; +##fi +## +##(cd "$DIST_SANDBOX" && \ +## ${SVN:-svn} export -q $EXTRA_EXPORT_OPTIONS --ignore-externals -r "$REVISION" \ +## "http://internalbrr.cr.usgs.gov/svn_GW/phreeqc3/$REPOS_PATH/database" \ +## "$DISTNAME/database") +##if [ $? != 0 ] ; then +## echo "svn checkout error" +## exit $?; +##fi +## +##(cd "$DIST_SANDBOX" && \ +## ${SVN:-svn} export -q $EXTRA_EXPORT_OPTIONS --ignore-externals -r "$REVISION" \ +## "http://internalbrr.cr.usgs.gov/svn_GW/phreeqc/trunk/COMManuscript/C&Gfinal/examples/c" \ +## "$DISTNAME/examples/c") +##if [ $? != 0 ] ; then +## echo "svn checkout error" +## exit $?; +##fi +## +##(cd "$DIST_SANDBOX" && \ +## ${SVN:-svn} export -q $EXTRA_EXPORT_OPTIONS --ignore-externals -r "$REVISION" \ +## "http://internalbrr.cr.usgs.gov/svn_GW/phreeqc/trunk/COMManuscript/C&Gfinal/examples/com" \ +## "$DISTNAME/examples/com") +##if [ $? != 0 ] ; then +## echo "svn checkout error" +## exit $?; +##fi +## +##(cd "$DIST_SANDBOX" && \ +## ${SVN:-svn} export -q $EXTRA_EXPORT_OPTIONS --ignore-externals -r "$REVISION" \ +## "http://internalbrr.cr.usgs.gov/svn_GW/phreeqc/trunk/COMManuscript/C&Gfinal/examples/fortran" \ +## "$DISTNAME/examples/fortran") +##if [ $? != 0 ] ; then +## echo "svn checkout error" +## exit $?; +##fi +## +##(cd "$DIST_SANDBOX" && \ +## ${SVN:-svn} export -q $EXTRA_EXPORT_OPTIONS --ignore-externals -r "$REVISION" \ +## "http://internalbrr.cr.usgs.gov/svn_GW/phreeqc3/trunk/HTMLversion/phreeqc3.chm" \ +## "$DISTNAME/doc") +##if [ $? != 0 ] ; then +## echo "svn checkout error" +## exit $?; +##fi +## + + +ver_major=`echo $VERSION | cut -d '.' -f 1` +ver_minor=`echo $VERSION | cut -d '.' -f 2` +ver_patch=`echo $VERSION | cut -d '.' -f 3` + +if [ -z "$ver_patch" ]; then + ver_patch="0" +fi + +SED_FILES="$DISTPATH/phreeqc3-doc/RELEASE.TXT \ + $DISTPATH/src/Version.h \ + $DISTPATH/src/IPhreeqc.h" + +for vsn_file in $SED_FILES +do + sed \ + -e "/#define *VER_MAJOR/s/[0-9]\+/$ver_major/" \ + -e "/#define *VER_MINOR/s/[0-9]\+/$ver_minor/" \ + -e "/#define *VER_PATCH/s/[0-9]\+/$ver_patch/" \ + -e "/#define *VER_REVISION/s/[0-9]\+/$REVISION_SVN/" \ + -e "s/@RELEASE_DATE@/$RELEASE_DATE/g" \ + -e "s/@PHREEQC_VER@/$VER/g" \ + -e "s/@PHREEQC_DATE@/$RELEASE_DATE/g" \ + -e "s/@REVISION_SVN@/$REVISION_SVN/g" \ + < "$vsn_file" > "$vsn_file.tmp" + unix2dos "$vsn_file.tmp" 2> /dev/null + mv -f "$vsn_file.tmp" "$vsn_file" + cp "$vsn_file" "$vsn_file.dist" +done + + +##if [ -z "$ZIP" ]; then +## echo "Rolling $DISTNAME.tar ..." +## (cd "$DIST_SANDBOX" > /dev/null && tar c "$DISTNAME") > \ +## "$DISTNAME.tar" +## echo "Compressing to $DISTNAME.tar.gz ..." +## gzip -9f "$DISTNAME.tar" +##else +## echo "Rolling $DISTNAME.zip ..." +## (cd "$DIST_SANDBOX" > /dev/null && zip -q -r - "$DISTNAME") > \ +## "$DISTNAME.zip" +##fi +##echo "Removing sandbox..." +##rm -rf "$DIST_SANDBOX" +## +##echo "" +##echo "Done:" +##if [ -z "$ZIP" ]; then +## ls -l "$DISTNAME.tar.gz" +## echo "" +## echo "md5sums:" +## md5sum "$DISTNAME.tar.gz" +## type sha1sum > /dev/null 2>&1 +## if [ $? -eq 0 ]; then +## echo "" +## echo "sha1sums:" +## sha1sum "$DISTNAME.tar.gz" +## fi +##else +## ls -l "$DISTNAME.zip" +## echo "" +## echo "md5sum:" +## md5sum "$DISTNAME.zip" +## type sha1sum > /dev/null 2>&1 +## if [ $? -eq 0 ]; then +## echo "" +## echo "sha1sum:" +## sha1sum "$DISTNAME.zip" +## fi +##fi \ No newline at end of file