Admin/isatest/isatest-makedist
author urbanc
Thu, 13 Sep 2007 23:58:38 +0200
changeset 24571 a6d0428dea8e
parent 24468 15012073f0c1
child 24647 212c9b342a67
permissions -rwxr-xr-x
some cleaning up to do with contexts
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22410
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
     1
#!/usr/bin/env bash
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
     2
#
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
     3
# $Id$
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
     4
# Author: Gerwin Klein, TU Muenchen
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
     5
#
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
     6
# DESCRIPTION: Build distribution and run isatest-make for lots of platforms.
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
     7
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
     8
## global settings
22411
1956d895a4ed adjust paths
kleing
parents: 22410
diff changeset
     9
. ~/admin/isatest/isatest-settings
22410
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    10
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    11
TMP=/tmp/isatest-makedist.$$
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    12
MAIL=$HOME/bin/pmail
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    13
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    14
MAKEDIST=$HOME/bin/makedist
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    15
MAKEALL=$HOME/bin/isatest-makeall
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    16
TAR=gtar
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    17
CVS2CL="$HOME/bin/cvs2cl --follow-only TRUNK"
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    18
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    19
SSH="ssh -f"
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    20
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    21
## diagnostics
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    22
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    23
PRG="$(basename "$0")"
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    24
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    25
function usage()
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    26
{
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    27
  echo
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    28
  echo "Usage: $PRG"
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    29
  echo
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    30
  echo "   Build distribution and run isatest-make for lots of platforms."
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    31
  echo
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    32
  exit 1
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    33
}
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    34
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    35
function fail()
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    36
{
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    37
  echo "$1" >&2
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    38
  exit 2
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    39
}
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    40
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    41
## main
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    42
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    43
# cleanup old error log and test-still-running files
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    44
rm -f $ERRORLOG
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    45
rm -f $ERRORDIR/isatest-*.log
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    46
rm -f $RUNNING/*.runnning
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    47
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    48
export DISTPREFIX
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    49
export CVS2CL
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    50
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    51
DATE=$(date "+%Y-%m-%d")
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    52
DISTLOG=$LOGPREFIX/isatest-makedist-$DATE.log
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    53
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    54
echo ------------------- preparing test release --- `date` --- $HOSTNAME > $DISTLOG 2>&1
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    55
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    56
echo "### cleaning up old dist directory"  >> $DISTLOG 2>&1
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    57
rm -rf $DISTPREFIX >> $DISTLOG 2>&1
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    58
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    59
echo "### cleaning up old isabelle-* directories" >> $DISTLOG 2>&1
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    60
rm -rf $HOME/isabelle-*
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    61
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    62
echo "### building distribution"  >> $DISTLOG 2>&1
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    63
mkdir -p $DISTPREFIX
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    64
$MAKEDIST - >> $DISTLOG 2>&1
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    65
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    66
if [ $? -ne 0 ]
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    67
then
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    68
    echo ------------------- DIST BUILD FAILED --- `date` --- $HOSTNAME >> $DISTLOG 2>&1
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    69
    ELAPSED=$("$HOME/bin/showtime" "$SECONDS")
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    70
    echo "$(date) $HOSTNAME $PRG: dist build FAILED, elapsed time $ELAPSED." >> $MASTERLOG
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    71
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    72
    echo "Could not build isabelle distribution. Log file available at" > $TMP
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    73
    echo "$HOSTNAME:$DISTLOG" >> $TMP
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    74
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    75
    for R in $MAILTO; do
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    76
        $MAIL "isabelle dist build failed" $R $TMP
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    77
    done
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    78
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    79
    rm $TMP
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    80
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    81
    exit 1
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    82
fi
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    83
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    84
cd $DISTPREFIX >> $DISTLOG 2>&1
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    85
$TAR xvzf `cat $DISTPREFIX/ISABELLE_DIST` >> $DISTLOG 2>&1
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    86
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    87
echo ------------------- prepared test successfully --- `date` --- $HOSTNAME >> $DISTLOG 2>&1
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    88
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    89
ELAPSED=$("$HOME/bin/showtime" "$SECONDS")
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    90
echo "$(date) $HOSTNAME $PRG: dist build successful, elapsed time $ELAPSED." >> $MASTERLOG
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    91
22413
3df5c44482e2 clean up var/running dir before spawning new tests
kleing
parents: 22411
diff changeset
    92
## clean up var/running
3df5c44482e2 clean up var/running dir before spawning new tests
kleing
parents: 22411
diff changeset
    93
rm -f $RUNNING/*
22410
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    94
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    95
## spawn test runs
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    96
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    97
$SSH sunbroy2 "$MAKEALL $HOME/settings/sun-poly"
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    98
# give test some time to copy settings and start
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
    99
sleep 5
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
   100
$SSH atbroy51 "$MAKEALL $HOME/settings/at-poly $HOME/settings/at-poly-e"
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
   101
sleep 5
24468
15012073f0c1 mark all parallel sessions as experimental
kleing
parents: 24440
diff changeset
   102
$SSH atbroy9 "$MAKEALL $HOME/settings/at-poly-5.1-para-e"
24240
3831fc5598ab added atbroy9
isatest
parents: 22640
diff changeset
   103
sleep 5
24468
15012073f0c1 mark all parallel sessions as experimental
kleing
parents: 24440
diff changeset
   104
$SSH atbroy99 "$MAKEALL $HOME/settings/at64-poly-5.1-para-e"
24440
27dcdcff5ce4 add parallel sessions for atbroy99 and macbroy6
kleing
parents: 24240
diff changeset
   105
sleep 5
22410
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
   106
$SSH atbroy10 "$MAKEALL $HOME/settings/at-sml-dev"
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
   107
sleep 5
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
   108
$SSH atbroy101 "$MAKEALL $HOME/settings/at64-poly-e"
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
   109
sleep 5
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
   110
$SSH macbroy5 "$MAKEALL $HOME/settings/mac-poly $HOME/settings/mac-sml-dev"
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
   111
sleep 5
24468
15012073f0c1 mark all parallel sessions as experimental
kleing
parents: 24440
diff changeset
   112
$SSH macbroy6 "/usr/stud/isatest/bin/isatest-makeall $HOME/settings/at-mac-poly-5.1-para-e"
22640
f3a6c9389e7b run annomaly from makedist
kleing
parents: 22413
diff changeset
   113
sleep 5
f3a6c9389e7b run annomaly from makedist
kleing
parents: 22413
diff changeset
   114
$SSH atbroy51 "$HOME/admin/isatest/isatest-annomaly"
22410
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
   115
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
   116
echo ------------------- spawned tests successfully --- `date` --- $HOSTNAME >> $DISTLOG 2>&1
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
   117
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
   118
gzip -f $DISTLOG
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
   119
da313b67a04d moved all isatest/cron job related files to own directory
kleing
parents:
diff changeset
   120
## end