cron-nightly.sh
author davelam
Mon, 15 Mar 2010 02:59:51 +0000
branchgnome-2-28
changeset 18663 a66b3e99c95a
parent 9401 72746c79ffd2
permissions -rwxr-xr-x
Nevada b136
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9398
3f67e766856b move remaining files
laca
parents:
diff changeset
     1
#!/bin/bash
3f67e766856b move remaining files
laca
parents:
diff changeset
     2
3f67e766856b move remaining files
laca
parents:
diff changeset
     3
# Sample usage in crontab:
3f67e766856b move remaining files
laca
parents:
diff changeset
     4
# Run, Mon-Fri at 1:30am. Add to build user's crontab.
3f67e766856b move remaining files
laca
parents:
diff changeset
     5
#   30 1 * * 1-5 . /jds/cbe/bin/env.sh; I_KNOW_WHAT_IM_DOING=yes myEnv=nightly-beijing.env $0
3f67e766856b move remaining files
laca
parents:
diff changeset
     6
#
3f67e766856b move remaining files
laca
parents:
diff changeset
     7
# The same with a jail. Add to root's crontab. Example assumes 'gbuild' is the
3f67e766856b move remaining files
laca
parents:
diff changeset
     8
# build user
3f67e766856b move remaining files
laca
parents:
diff changeset
     9
#   30 1 * * 1-5 /usr/sbin/chroot /path/to/jail/root /usr/bin/su - gbuild -c ". /jds/cbe/bin/env.sh; I_KNOW_WHAT_IM_DOING=yes myEnv=nightly-beijing.env $0"
3f67e766856b move remaining files
laca
parents:
diff changeset
    10
#
3f67e766856b move remaining files
laca
parents:
diff changeset
    11
# Or - you may choose to only build a particular package
3f67e766856b move remaining files
laca
parents:
diff changeset
    12
#   30 1 * * 1-5 . /jds/cbe/bin/env.sh; thisSpec=SUNWTiff.spec I_KNOW_WHAT_IM_DOING=yes myEnv=nightly-beijing.env $0
3f67e766856b move remaining files
laca
parents:
diff changeset
    13
#
3f67e766856b move remaining files
laca
parents:
diff changeset
    14
# History:
3f67e766856b move remaining files
laca
parents:
diff changeset
    15
# --------
3f67e766856b move remaining files
laca
parents:
diff changeset
    16
#
3f67e766856b move remaining files
laca
parents:
diff changeset
    17
# Damien Carbery:
3f67e766856b move remaining files
laca
parents:
diff changeset
    18
#       cron-script.sh, original script
3f67e766856b move remaining files
laca
parents:
diff changeset
    19
#
3f67e766856b move remaining files
laca
parents:
diff changeset
    20
# Alexandre Berman:
3f67e766856b move remaining files
laca
parents:
diff changeset
    21
#       based on the original script, created cron-nightly.sh
3f67e766856b move remaining files
laca
parents:
diff changeset
    22
#       added/changed features:
3f67e766856b move remaining files
laca
parents:
diff changeset
    23
#         - added sub-routines for easy debugging, clarity
3f67e766856b move remaining files
laca
parents:
diff changeset
    24
#         - changed to SVN (original script used cvs)
3f67e766856b move remaining files
laca
parents:
diff changeset
    25
#         - took all site-dependent variable declarations out of the script and adopted it to use env file
3f67e766856b move remaining files
laca
parents:
diff changeset
    26
#         - added support for building individual components (must specify spec file), useful for debugging and others..
3f67e766856b move remaining files
laca
parents:
diff changeset
    27
#         - added more verbosity to the script for debugging and clarity
3f67e766856b move remaining files
laca
parents:
diff changeset
    28
3f67e766856b move remaining files
laca
parents:
diff changeset
    29
if [ -r $myEnv ]; then
3f67e766856b move remaining files
laca
parents:
diff changeset
    30
   . $myEnv # setup our env
3f67e766856b move remaining files
laca
parents:
diff changeset
    31
else
3f67e766856b move remaining files
laca
parents:
diff changeset
    32
   echo "-- ENV is NOT defined ! Exiting..."
3f67e766856b move remaining files
laca
parents:
diff changeset
    33
   exit 1
3f67e766856b move remaining files
laca
parents:
diff changeset
    34
fi
3f67e766856b move remaining files
laca
parents:
diff changeset
    35
3f67e766856b move remaining files
laca
parents:
diff changeset
    36
# host to rcp the rpms to
3f67e766856b move remaining files
laca
parents:
diff changeset
    37
RHOST="$RHOST"
3f67e766856b move remaining files
laca
parents:
diff changeset
    38
# user to rcp as (has to have root@<this host> in it's .rhosts file)
3f67e766856b move remaining files
laca
parents:
diff changeset
    39
RUSER="$RUSER"
3f67e766856b move remaining files
laca
parents:
diff changeset
    40
# other vars
3f67e766856b move remaining files
laca
parents:
diff changeset
    41
TEMP_DIR="$TEMP_DIR"
3f67e766856b move remaining files
laca
parents:
diff changeset
    42
SPECDIR="$SPECDIR"
3f67e766856b move remaining files
laca
parents:
diff changeset
    43
BUILD_BASE="$BUILD_BASE"
3f67e766856b move remaining files
laca
parents:
diff changeset
    44
PRODNAME="$PRODNAME"
3f67e766856b move remaining files
laca
parents:
diff changeset
    45
# directory to copy rpms/srpms to on the remote host
3f67e766856b move remaining files
laca
parents:
diff changeset
    46
RPMSDIR="$RPMSDIR"
3f67e766856b move remaining files
laca
parents:
diff changeset
    47
LOCKFILE="$RPMSDIR/.build.lock"
3f67e766856b move remaining files
laca
parents:
diff changeset
    48
# reply-to/to address to send the build log as/to
3f67e766856b move remaining files
laca
parents:
diff changeset
    49
EMAIL_ERRORS_TO="$EMAIL_ERRORS_TO"
3f67e766856b move remaining files
laca
parents:
diff changeset
    50
EMAIL_NOTIFICATION="$EMAIL_NOTIFICATION"
3f67e766856b move remaining files
laca
parents:
diff changeset
    51
# document root of the web server
3f67e766856b move remaining files
laca
parents:
diff changeset
    52
WEBROOT="$WEBROOT"
3f67e766856b move remaining files
laca
parents:
diff changeset
    53
LOGDIR_BASE_URL="$LOGDIR_BASE_URL"
3f67e766856b move remaining files
laca
parents:
diff changeset
    54
# tarballsdir
3f67e766856b move remaining files
laca
parents:
diff changeset
    55
TARBALLSDIR="$TARBALLSDIR"
3f67e766856b move remaining files
laca
parents:
diff changeset
    56
# subdir to keep logs and reports on the webserver
3f67e766856b move remaining files
laca
parents:
diff changeset
    57
WEBDIR="$WEBDIR"
3f67e766856b move remaining files
laca
parents:
diff changeset
    58
3f67e766856b move remaining files
laca
parents:
diff changeset
    59
# date format appended to the Release tag in the spec files
3f67e766856b move remaining files
laca
parents:
diff changeset
    60
# (passed to the date command on the cmd line)
3f67e766856b move remaining files
laca
parents:
diff changeset
    61
RELEASE_DATE_FMT="%y%m%d"
3f67e766856b move remaining files
laca
parents:
diff changeset
    62
# date format used for naming the directories
3f67e766856b move remaining files
laca
parents:
diff changeset
    63
DIR_DATE_FMT="%Y-%m-%d"
3f67e766856b move remaining files
laca
parents:
diff changeset
    64
RELEASE_DATE=`date +$RELEASE_DATE_FMT`
3f67e766856b move remaining files
laca
parents:
diff changeset
    65
DIR_DATE=`date +$DIR_DATE_FMT`
3f67e766856b move remaining files
laca
parents:
diff changeset
    66
LOGDIR="$WEBDIR/$DIR_DATE"
3f67e766856b move remaining files
laca
parents:
diff changeset
    67
3f67e766856b move remaining files
laca
parents:
diff changeset
    68
# ------------ nothing to configure below this line --------------
3f67e766856b move remaining files
laca
parents:
diff changeset
    69
3f67e766856b move remaining files
laca
parents:
diff changeset
    70
if [ "x$I_KNOW_WHAT_IM_DOING" != xyes ]; then
3f67e766856b move remaining files
laca
parents:
diff changeset
    71
    echo " ,---------------------------------------------------------------."
3f67e766856b move remaining files
laca
parents:
diff changeset
    72
    echo "| This script is intended to be run from cron for producing      |"
3f67e766856b move remaining files
laca
parents:
diff changeset
    73
    echo "| official nightly builds (Beijing site).                        |"
3f67e766856b move remaining files
laca
parents:
diff changeset
    74
    echo "| It will mail responsible engineers                             |"
3f67e766856b move remaining files
laca
parents:
diff changeset
    75
    echo "| if any build failure occurs, sends build reports to            |"
3f67e766856b move remaining files
laca
parents:
diff changeset
    76
    echo "| RE and update web pages.                                       |"
3f67e766856b move remaining files
laca
parents:
diff changeset
    77
    echo "|"
3f67e766856b move remaining files
laca
parents:
diff changeset
    78
    echo "| Don't run it unless you know what you are doing. Thanks."
3f67e766856b move remaining files
laca
parents:
diff changeset
    79
    echo "|"
3f67e766856b move remaining files
laca
parents:
diff changeset
    80
    echo "| Mail [email protected] if you need more info."
3f67e766856b move remaining files
laca
parents:
diff changeset
    81
    echo ".................................................................+"
3f67e766856b move remaining files
laca
parents:
diff changeset
    82
    exit 1
3f67e766856b move remaining files
laca
parents:
diff changeset
    83
fi
3f67e766856b move remaining files
laca
parents:
diff changeset
    84
3f67e766856b move remaining files
laca
parents:
diff changeset
    85
MYNAME="$0"
3f67e766856b move remaining files
laca
parents:
diff changeset
    86
MYDIR=$(cd `dirname $0`; pwd)
3f67e766856b move remaining files
laca
parents:
diff changeset
    87
shortName=`echo $MYNAME | sed -e 's|^.*\/||g'`
3f67e766856b move remaining files
laca
parents:
diff changeset
    88
3f67e766856b move remaining files
laca
parents:
diff changeset
    89
# remove temporary files on exit
3f67e766856b move remaining files
laca
parents:
diff changeset
    90
clean_up () {
3f67e766856b move remaining files
laca
parents:
diff changeset
    91
  case "$MYNAME" in
3f67e766856b move remaining files
laca
parents:
diff changeset
    92
  /tmp/$shortName.copy.* )
3f67e766856b move remaining files
laca
parents:
diff changeset
    93
        rm -f $MYNAME
3f67e766856b move remaining files
laca
parents:
diff changeset
    94
        ;;
3f67e766856b move remaining files
laca
parents:
diff changeset
    95
  esac
3f67e766856b move remaining files
laca
parents:
diff changeset
    96
  exit
3f67e766856b move remaining files
laca
parents:
diff changeset
    97
}
3f67e766856b move remaining files
laca
parents:
diff changeset
    98
3f67e766856b move remaining files
laca
parents:
diff changeset
    99
trap clean_up HUP INT TERM QUIT EXIT
3f67e766856b move remaining files
laca
parents:
diff changeset
   100
3f67e766856b move remaining files
laca
parents:
diff changeset
   101
# make a copy of the cron script in /tmp and execute that in order to
3f67e766856b move remaining files
laca
parents:
diff changeset
   102
# avoid disasters caused by cvs update.
3f67e766856b move remaining files
laca
parents:
diff changeset
   103
case "$MYNAME" in
3f67e766856b move remaining files
laca
parents:
diff changeset
   104
    /tmp/*.copy.* )
3f67e766856b move remaining files
laca
parents:
diff changeset
   105
        ;;
3f67e766856b move remaining files
laca
parents:
diff changeset
   106
    *)
3f67e766856b move remaining files
laca
parents:
diff changeset
   107
        cp $MYNAME /tmp/$shortName.copy.$$
3f67e766856b move remaining files
laca
parents:
diff changeset
   108
        chmod 755 /tmp/$shortName.copy.$$
3f67e766856b move remaining files
laca
parents:
diff changeset
   109
        cd /tmp
3f67e766856b move remaining files
laca
parents:
diff changeset
   110
        exec /tmp/$shortName.copy.$$ "$MYDIR"
3f67e766856b move remaining files
laca
parents:
diff changeset
   111
        ;;
3f67e766856b move remaining files
laca
parents:
diff changeset
   112
esac
3f67e766856b move remaining files
laca
parents:
diff changeset
   113
3f67e766856b move remaining files
laca
parents:
diff changeset
   114
fatal_error () {
3f67e766856b move remaining files
laca
parents:
diff changeset
   115
  echo "ERROR: $*"
3f67e766856b move remaining files
laca
parents:
diff changeset
   116
  exit 1
3f67e766856b move remaining files
laca
parents:
diff changeset
   117
}
3f67e766856b move remaining files
laca
parents:
diff changeset
   118
3f67e766856b move remaining files
laca
parents:
diff changeset
   119
# prepare TEMP_DIR and repository - using SVN now
3f67e766856b move remaining files
laca
parents:
diff changeset
   120
prep_repository() {
3f67e766856b move remaining files
laca
parents:
diff changeset
   121
   if [ -d $SPECDIR ]; then
3f67e766856b move remaining files
laca
parents:
diff changeset
   122
      cd $SPECDIR || fatal_error "$SPECDIR not found"
3f67e766856b move remaining files
laca
parents:
diff changeset
   123
      echo "-- updating SVN rep ..."
3f67e766856b move remaining files
laca
parents:
diff changeset
   124
      #revert any local changes
3f67e766856b move remaining files
laca
parents:
diff changeset
   125
      svn revert -R .
3f67e766856b move remaining files
laca
parents:
diff changeset
   126
3f67e766856b move remaining files
laca
parents:
diff changeset
   127
      svn -q up > /dev/null 2>&1 || fatal_error "SVN update failed"
3f67e766856b move remaining files
laca
parents:
diff changeset
   128
   else
3f67e766856b move remaining files
laca
parents:
diff changeset
   129
      echo "-- checking out fresh copy of Spec files from SVN rep ..."
3f67e766856b move remaining files
laca
parents:
diff changeset
   130
      rm -rf $TEMP_DIR
3f67e766856b move remaining files
laca
parents:
diff changeset
   131
      mkdir $TEMP_DIR; cd $TEMP_DIR
3f67e766856b move remaining files
laca
parents:
diff changeset
   132
      svn -q checkout svn://dtsvn.ireland.sun.com/sgnome/svn/repos/jds-spec-files/trunk \
3f67e766856b move remaining files
laca
parents:
diff changeset
   133
                                 > /dev/null 2>&1 || fatal_error "SVN checkout failed"
3f67e766856b move remaining files
laca
parents:
diff changeset
   134
   fi
3f67e766856b move remaining files
laca
parents:
diff changeset
   135
   # if the script changed during repository update, restart with the updated script
3f67e766856b move remaining files
laca
parents:
diff changeset
   136
   if ! /usr/bin/cmp -s $SPECDIR/$shortName $MYNAME; then exec $SPECDIR/$shortName; fi
3f67e766856b move remaining files
laca
parents:
diff changeset
   137
}
3f67e766856b move remaining files
laca
parents:
diff changeset
   138
3f67e766856b move remaining files
laca
parents:
diff changeset
   139
3f67e766856b move remaining files
laca
parents:
diff changeset
   140
# uninstall all pkgs left behind by a previous build
3f67e766856b move remaining files
laca
parents:
diff changeset
   141
do_uninst() {
3f67e766856b move remaining files
laca
parents:
diff changeset
   142
   echo "-- uninstalling packages..."
3f67e766856b move remaining files
laca
parents:
diff changeset
   143
   pkgtool uninstall-pkgs --with-l10n --with-tjds $thisSpec >/dev/null
3f67e766856b move remaining files
laca
parents:
diff changeset
   144
   # remove-gnome will now remove anything left from uninstall-pkgs in case
3f67e766856b move remaining files
laca
parents:
diff changeset
   145
   # of a packaging change for example
9401
72746c79ffd2 update path names to match new svn structure
laca
parents: 9398
diff changeset
   146
   $SPECDIR/scripts/remove-gnome --version jds -q -f --no_extras > /dev/null 2>&1
9398
3f67e766856b move remaining files
laca
parents:
diff changeset
   147
}
3f67e766856b move remaining files
laca
parents:
diff changeset
   148
3f67e766856b move remaining files
laca
parents:
diff changeset
   149
do_clean_pkgs() {
3f67e766856b move remaining files
laca
parents:
diff changeset
   150
   rm -rf $BUILD_BASE/PKGS/*
3f67e766856b move remaining files
laca
parents:
diff changeset
   151
   rm -rf $BUILD_BASE/SPKGS/*
3f67e766856b move remaining files
laca
parents:
diff changeset
   152
   rm -rf $BUILD_BASE/BUILD/*
3f67e766856b move remaining files
laca
parents:
diff changeset
   153
   rm -rf /var/tmp/*-build
3f67e766856b move remaining files
laca
parents:
diff changeset
   154
}
3f67e766856b move remaining files
laca
parents:
diff changeset
   155
3f67e766856b move remaining files
laca
parents:
diff changeset
   156
# if the log directory exists, open a new one with numbered suffix
3f67e766856b move remaining files
laca
parents:
diff changeset
   157
do_log_dir() {
3f67e766856b move remaining files
laca
parents:
diff changeset
   158
   echo "-- setting up logs..."
3f67e766856b move remaining files
laca
parents:
diff changeset
   159
   NEW_LOGDIR=$LOGDIR
3f67e766856b move remaining files
laca
parents:
diff changeset
   160
   N=1
3f67e766856b move remaining files
laca
parents:
diff changeset
   161
   while [ -d $WEBROOT/$NEW_LOGDIR ]; do
3f67e766856b move remaining files
laca
parents:
diff changeset
   162
       NEW_LOGDIR=$LOGDIR.$N
3f67e766856b move remaining files
laca
parents:
diff changeset
   163
       N=`expr $N + 1`
3f67e766856b move remaining files
laca
parents:
diff changeset
   164
       echo "-- LOGDIR exists, changing to: $NEW_LOGDIR"
3f67e766856b move remaining files
laca
parents:
diff changeset
   165
   done
3f67e766856b move remaining files
laca
parents:
diff changeset
   166
   LOGDIR=$NEW_LOGDIR
3f67e766856b move remaining files
laca
parents:
diff changeset
   167
   echo "-- LOGDIR:     $WEBROOT/$LOGDIR"
3f67e766856b move remaining files
laca
parents:
diff changeset
   168
   echo "-- LOGDIR URL: $LOGDIR_BASE_URL/$LOGDIR"
3f67e766856b move remaining files
laca
parents:
diff changeset
   169
   mkdir -p $WEBROOT/$LOGDIR || exit 5
3f67e766856b move remaining files
laca
parents:
diff changeset
   170
}
3f67e766856b move remaining files
laca
parents:
diff changeset
   171
3f67e766856b move remaining files
laca
parents:
diff changeset
   172
# start the build
3f67e766856b move remaining files
laca
parents:
diff changeset
   173
do_build() {
3f67e766856b move remaining files
laca
parents:
diff changeset
   174
   echo "-- build started, using log: /tmp/build.log.$$ ..."
3f67e766856b move remaining files
laca
parents:
diff changeset
   175
   cd $SPECDIR || fatal_error "$SPECDIR not found"
3f67e766856b move remaining files
laca
parents:
diff changeset
   176
   echo '' | rsh $RHOST -l $RUSER "mkdir -p $RPMSDIR; touch $LOCKFILE"
3f67e766856b move remaining files
laca
parents:
diff changeset
   177
   pkgtool -v --nightly --date "$RELEASE_DATE" build $thisSpec \
3f67e766856b move remaining files
laca
parents:
diff changeset
   178
        --logdir=$WEBROOT/$LOGDIR \
3f67e766856b move remaining files
laca
parents:
diff changeset
   179
        --summary-log=$WEBROOT/$LOGDIR.html \
3f67e766856b move remaining files
laca
parents:
diff changeset
   180
        --logdir-url=$LOGDIR_BASE_URL/$LOGDIR \
3f67e766856b move remaining files
laca
parents:
diff changeset
   181
	--mail-errors-to=$EMAIL_ERRORS_TO \
3f67e766856b move remaining files
laca
parents:
diff changeset
   182
        --prodname="${PRODNAME}/s${OSrel}${OSarch}" \
3f67e766856b move remaining files
laca
parents:
diff changeset
   183
        --live --with-l10n --with-tjds \
3f67e766856b move remaining files
laca
parents:
diff changeset
   184
	--norc \
3f67e766856b move remaining files
laca
parents:
diff changeset
   185
	--tarballdirs=$TARBALLSDIR \
3f67e766856b move remaining files
laca
parents:
diff changeset
   186
        --define "nightly 1" \
3f67e766856b move remaining files
laca
parents:
diff changeset
   187
        --summary-title="${PRODNAME} S${OSrel}/${OSarch_full} Nightly Build Report `date +'%d %B %Y'`" \
3f67e766856b move remaining files
laca
parents:
diff changeset
   188
         > /tmp/build.log.$$ 2>&1
3f67e766856b move remaining files
laca
parents:
diff changeset
   189
   #     --rpm-url=file:///net/allstar.prc$RPMSDIR/all_pkgs \
3f67e766856b move remaining files
laca
parents:
diff changeset
   190
   # the number of failed pkgs is returned
3f67e766856b move remaining files
laca
parents:
diff changeset
   191
   FAILED=$?; export FAILED
3f67e766856b move remaining files
laca
parents:
diff changeset
   192
}
3f67e766856b move remaining files
laca
parents:
diff changeset
   193
3f67e766856b move remaining files
laca
parents:
diff changeset
   194
# choose what to build ?
3f67e766856b move remaining files
laca
parents:
diff changeset
   195
# coices are: everything or specific spec file
3f67e766856b move remaining files
laca
parents:
diff changeset
   196
choose_build() {
3f67e766856b move remaining files
laca
parents:
diff changeset
   197
   if [ "x$thisSpec" = "x" ]; then
3f67e766856b move remaining files
laca
parents:
diff changeset
   198
      # no spec file was chosen, build everything
9401
72746c79ffd2 update path names to match new svn structure
laca
parents: 9398
diff changeset
   199
      thisSpec='*.spec closed/*.spec'; export thisSpec
9398
3f67e766856b move remaining files
laca
parents:
diff changeset
   200
      echo "-- building following components: $thisSpec"
3f67e766856b move remaining files
laca
parents:
diff changeset
   201
   else
3f67e766856b move remaining files
laca
parents:
diff changeset
   202
      # verify chosen spec file
3f67e766856b move remaining files
laca
parents:
diff changeset
   203
      if [ ! -f $SPECDIR/$thisSpec ]; then
3f67e766856b move remaining files
laca
parents:
diff changeset
   204
         fatal_error "chosen spec file ($thisSpec) does not exist in spec dir ($SPECDIR)"
3f67e766856b move remaining files
laca
parents:
diff changeset
   205
      fi
3f67e766856b move remaining files
laca
parents:
diff changeset
   206
      echo "-- building following components: $thisSpec"
3f67e766856b move remaining files
laca
parents:
diff changeset
   207
   fi
3f67e766856b move remaining files
laca
parents:
diff changeset
   208
}
3f67e766856b move remaining files
laca
parents:
diff changeset
   209
3f67e766856b move remaining files
laca
parents:
diff changeset
   210
# rotate rpms dir
3f67e766856b move remaining files
laca
parents:
diff changeset
   211
do_rotate_rpms() {
3f67e766856b move remaining files
laca
parents:
diff changeset
   212
   echo '' | rsh $RHOST -l $RUSER "rm -rf $RPMSDIR.prev; mv $RPMSDIR $RPMSDIR.prev; mkdir -p $RPMSDIR"
3f67e766856b move remaining files
laca
parents:
diff changeset
   213
}
3f67e766856b move remaining files
laca
parents:
diff changeset
   214
3f67e766856b move remaining files
laca
parents:
diff changeset
   215
# make dist
3f67e766856b move remaining files
laca
parents:
diff changeset
   216
do_make_dist() {
3f67e766856b move remaining files
laca
parents:
diff changeset
   217
   echo "-- making dist ..."
3f67e766856b move remaining files
laca
parents:
diff changeset
   218
   /sgnome/tools/re-scripts/jds-build/make-jds-dist /jds/packages/PKGS /jds/dist nightly- > /dev/null 2>&1
3f67e766856b move remaining files
laca
parents:
diff changeset
   219
   echo '' | rcp -r /jds/dist/nightly-/${OSarch_full}/* /jds/dist/nightly-/${OSarch_full}/.??* ${RUSER}@${RHOST}:$RPMSDIR
3f67e766856b move remaining files
laca
parents:
diff changeset
   220
   echo '' | rsh $RHOST -l $RUSER "chmod a+x $RPMSDIR/install-jds"
3f67e766856b move remaining files
laca
parents:
diff changeset
   221
   echo '' | rsh $RHOST -l $RUSER "mkdir -p $RPMSDIR/all_pkgs && cd $RPMSDIR/all_pkgs && ln -s ../*/*.tar.gz ."
3f67e766856b move remaining files
laca
parents:
diff changeset
   222
   rm -rf /jds/dist/nightly-
3f67e766856b move remaining files
laca
parents:
diff changeset
   223
}
3f67e766856b move remaining files
laca
parents:
diff changeset
   224
3f67e766856b move remaining files
laca
parents:
diff changeset
   225
# web reports
3f67e766856b move remaining files
laca
parents:
diff changeset
   226
do_web_reports() {
3f67e766856b move remaining files
laca
parents:
diff changeset
   227
   ALL_REPORTS=$WEBROOT/$WEBDIR/all_reports.html
3f67e766856b move remaining files
laca
parents:
diff changeset
   228
   echo "-- creating main report in: $ALL_REPORTS"
3f67e766856b move remaining files
laca
parents:
diff changeset
   229
   touch $ALL_REPORTS
3f67e766856b move remaining files
laca
parents:
diff changeset
   230
   cp $ALL_REPORTS $ALL_REPORTS.old
3f67e766856b move remaining files
laca
parents:
diff changeset
   231
   export ALL_REPORTS
3f67e766856b move remaining files
laca
parents:
diff changeset
   232
   # update web page
3f67e766856b move remaining files
laca
parents:
diff changeset
   233
   ( echo "<A HREF=$LOGDIR_BASE_URL/$LOGDIR.html>$DIR_DATE</A> $FAILED package(s) failed<BR>"; \
3f67e766856b move remaining files
laca
parents:
diff changeset
   234
                                                           cat $ALL_REPORTS.old ) > $ALL_REPORTS
3f67e766856b move remaining files
laca
parents:
diff changeset
   235
}
3f67e766856b move remaining files
laca
parents:
diff changeset
   236
3f67e766856b move remaining files
laca
parents:
diff changeset
   237
# send warnings, errors and summary in email
3f67e766856b move remaining files
laca
parents:
diff changeset
   238
do_email() {
3f67e766856b move remaining files
laca
parents:
diff changeset
   239
   grep -v '^INFO:' /tmp/build.log.$$ | \
3f67e766856b move remaining files
laca
parents:
diff changeset
   240
    mailx -s "${PRODNAME} S${OSrel} ${OSarch_full} nightly build: $FAILED pkgs failed" $EMAIL_NOTIFICATION
3f67e766856b move remaining files
laca
parents:
diff changeset
   241
}
3f67e766856b move remaining files
laca
parents:
diff changeset
   242
3f67e766856b move remaining files
laca
parents:
diff changeset
   243
# final cleanup
3f67e766856b move remaining files
laca
parents:
diff changeset
   244
do_finally() {
3f67e766856b move remaining files
laca
parents:
diff changeset
   245
   rm -f /tmp/build.log.$$
3f67e766856b move remaining files
laca
parents:
diff changeset
   246
   echo '' | rsh $RHOST -l $RUSER "rm $LOCKFILE"
3f67e766856b move remaining files
laca
parents:
diff changeset
   247
}
3f67e766856b move remaining files
laca
parents:
diff changeset
   248
3f67e766856b move remaining files
laca
parents:
diff changeset
   249
# let's do it
3f67e766856b move remaining files
laca
parents:
diff changeset
   250
choose_build
3f67e766856b move remaining files
laca
parents:
diff changeset
   251
prep_repository
3f67e766856b move remaining files
laca
parents:
diff changeset
   252
do_uninst
3f67e766856b move remaining files
laca
parents:
diff changeset
   253
do_clean_pkgs
3f67e766856b move remaining files
laca
parents:
diff changeset
   254
do_log_dir
3f67e766856b move remaining files
laca
parents:
diff changeset
   255
do_build
3f67e766856b move remaining files
laca
parents:
diff changeset
   256
do_rotate_rpms
3f67e766856b move remaining files
laca
parents:
diff changeset
   257
do_make_dist
3f67e766856b move remaining files
laca
parents:
diff changeset
   258
do_web_reports
3f67e766856b move remaining files
laca
parents:
diff changeset
   259
do_email
3f67e766856b move remaining files
laca
parents:
diff changeset
   260
do_finally
3f67e766856b move remaining files
laca
parents:
diff changeset
   261
3f67e766856b move remaining files
laca
parents:
diff changeset
   262
exit 0