author | wenzelm |
Fri, 10 Jun 2011 17:37:50 +0200 | |
changeset 43358 | ff6cfa33c653 |
parent 43350 | 5fcd0ca1f582 |
child 43364 | 9c392ea6a6e6 |
permissions | -rwxr-xr-x |
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 |
# Author: Gerwin Klein, TU Muenchen |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
4 |
# |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
5 |
# 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
|
6 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
7 |
## global settings |
22411 | 8 |
. ~/admin/isatest/isatest-settings |
22410
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
9 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
10 |
TMP=/tmp/isatest-makedist.$$ |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
11 |
MAIL=$HOME/bin/pmail |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
12 |
|
28931
498b63ba782c
renamed makedist_mercurial to makedist, deleting the old version;
wenzelm
parents:
28607
diff
changeset
|
13 |
MAKEDIST=$HOME/bin/makedist |
22410
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
14 |
MAKEALL=$HOME/bin/isatest-makeall |
27084 | 15 |
TAR=tar |
22410
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
16 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
17 |
SSH="ssh -f" |
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 |
## diagnostics |
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 |
PRG="$(basename "$0")" |
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 |
function usage() |
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 |
echo |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
26 |
echo "Usage: $PRG" |
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 " 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
|
29 |
echo |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
30 |
exit 1 |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
31 |
} |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
32 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
33 |
function fail() |
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 |
echo "$1" >&2 |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
36 |
exit 2 |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
37 |
} |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
38 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
39 |
## main |
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 |
# cleanup old error log and test-still-running files |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
42 |
rm -f $ERRORLOG |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
43 |
rm -f $ERRORDIR/isatest-*.log |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
44 |
rm -f $RUNNING/*.runnning |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
45 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
46 |
export DISTPREFIX |
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 |
DATE=$(date "+%Y-%m-%d") |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
49 |
DISTLOG=$LOGPREFIX/isatest-makedist-$DATE.log |
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 |
echo ------------------- preparing test release --- `date` --- $HOSTNAME > $DISTLOG 2>&1 |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
52 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
53 |
echo "### cleaning up old dist directory" >> $DISTLOG 2>&1 |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
54 |
rm -rf $DISTPREFIX >> $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 isabelle-* directories" >> $DISTLOG 2>&1 |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
57 |
rm -rf $HOME/isabelle-* |
36242
d65f943b9f07
marked cygwin-poly as "e" test, which means further stages do not depend on it (website etc.);
wenzelm
parents:
36192
diff
changeset
|
58 |
ssh atbroy102 "rm -rf /home/isatest/isabelle-cygwin-poly-e" |
22410
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
59 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
60 |
echo "### building distribution" >> $DISTLOG 2>&1 |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
61 |
mkdir -p $DISTPREFIX |
43358 | 62 |
$MAKEDIST -j "/home/isabelle/contrib_devel/jedit_build-20110521" >> $DISTLOG 2>&1 |
22410
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
63 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
64 |
if [ $? -ne 0 ] |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
65 |
then |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
66 |
echo ------------------- DIST BUILD FAILED --- `date` --- $HOSTNAME >> $DISTLOG 2>&1 |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
67 |
ELAPSED=$("$HOME/bin/showtime" "$SECONDS") |
28539
bdb308737bfd
do logging to MASTERLOG centrally (avoid multiple writers over NFS as
kleing
parents:
28418
diff
changeset
|
68 |
log "dist build FAILED, elapsed time $ELAPSED." |
22410
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
69 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
70 |
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
|
71 |
echo "$HOSTNAME:$DISTLOG" >> $TMP |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
72 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
73 |
for R in $MAILTO; do |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
74 |
$MAIL "isabelle dist build failed" $R $TMP |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
75 |
done |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
76 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
77 |
rm $TMP |
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 |
exit 1 |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
80 |
fi |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
81 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
82 |
cd $DISTPREFIX >> $DISTLOG 2>&1 |
40739
9c84b562620d
recovered global "Isabelle" symlink for isatest (cf. 7f745e4b7cce);
wenzelm
parents:
37874
diff
changeset
|
83 |
ISABELLE_DIST=`cat $DISTPREFIX/ISABELLE_DIST` |
9c84b562620d
recovered global "Isabelle" symlink for isatest (cf. 7f745e4b7cce);
wenzelm
parents:
37874
diff
changeset
|
84 |
$TAR xvzf $ISABELLE_DIST >> $DISTLOG 2>&1 |
9c84b562620d
recovered global "Isabelle" symlink for isatest (cf. 7f745e4b7cce);
wenzelm
parents:
37874
diff
changeset
|
85 |
ln -sf $(basename $ISABELLE_DIST .tar.gz) Isabelle |
41967
6aa69999da8f
isatest: fresh copy of settings avoids odd cumulative environment;
wenzelm
parents:
41599
diff
changeset
|
86 |
cp Isabelle/etc/settings Isabelle/etc/settings.orig |
22410
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
87 |
|
36192
d4ec9ddd0e21
isatest: more robust treatment of remote files, less reliance on mounted file system;
wenzelm
parents:
36161
diff
changeset
|
88 |
ssh atbroy102 "rm -rf /home/isatest/isadist && mkdir -p /home/isatest/isadist" && \ |
d4ec9ddd0e21
isatest: more robust treatment of remote files, less reliance on mounted file system;
wenzelm
parents:
36161
diff
changeset
|
89 |
rsync -a "$HOME/isadist/." atbroy102:/home/isatest/isadist/. |
d4ec9ddd0e21
isatest: more robust treatment of remote files, less reliance on mounted file system;
wenzelm
parents:
36161
diff
changeset
|
90 |
|
22410
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
91 |
echo ------------------- prepared test successfully --- `date` --- $HOSTNAME >> $DISTLOG 2>&1 |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
92 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
93 |
ELAPSED=$("$HOME/bin/showtime" "$SECONDS") |
28539
bdb308737bfd
do logging to MASTERLOG centrally (avoid multiple writers over NFS as
kleing
parents:
28418
diff
changeset
|
94 |
log "dist build successful, elapsed time $ELAPSED." |
22410
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
95 |
|
22413
3df5c44482e2
clean up var/running dir before spawning new tests
kleing
parents:
22411
diff
changeset
|
96 |
## clean up var/running |
3df5c44482e2
clean up var/running dir before spawning new tests
kleing
parents:
22411
diff
changeset
|
97 |
rm -f $RUNNING/* |
22410
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
98 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
99 |
## spawn test runs |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
100 |
|
43350 | 101 |
$SSH macbroy20 "$MAKEALL $HOME/settings/at-poly-test" |
35398
aec00d4ec03d
added at-poly-test, which is intended for performance tests of Poly/ML itself;
wenzelm
parents:
35245
diff
changeset
|
102 |
# give test some time to copy settings and start |
aec00d4ec03d
added at-poly-test, which is intended for performance tests of Poly/ML itself;
wenzelm
parents:
35245
diff
changeset
|
103 |
sleep 15 |
41599
16e290c668ea
isatest: run at-poly on macbroy28 for slightly more robust isatest-doc;
wenzelm
parents:
40739
diff
changeset
|
104 |
$SSH macbroy28 "$MAKEALL $HOME/settings/at-poly" |
28598
cb5f98e2e187
give more time to do inital loggin and settings read
kleing
parents:
28539
diff
changeset
|
105 |
sleep 15 |
41599
16e290c668ea
isatest: run at-poly on macbroy28 for slightly more robust isatest-doc;
wenzelm
parents:
40739
diff
changeset
|
106 |
$SSH macbroy22 "$MAKEALL -l HOL HOL-Library $HOME/settings/at-sml-dev-e" |
32735 | 107 |
sleep 15 |
33760 | 108 |
$SSH macbroy24 "$MAKEALL $HOME/settings/at64-poly" |
28598
cb5f98e2e187
give more time to do inital loggin and settings read
kleing
parents:
28539
diff
changeset
|
109 |
sleep 15 |
32854
7dd4b559e177
macbroy2: bigger jobs first, to avoid danger of swapping during daytime;
wenzelm
parents:
32735
diff
changeset
|
110 |
$SSH macbroy2 "$MAKEALL $HOME/settings/mac-poly64-M4; $MAKEALL $HOME/settings/mac-poly64-M8; $MAKEALL $HOME/settings/mac-poly-M4; $MAKEALL $HOME/settings/mac-poly-M8" |
31581 | 111 |
sleep 15 |
27488 | 112 |
$SSH macbroy5 "$MAKEALL $HOME/settings/mac-poly" |
28598
cb5f98e2e187
give more time to do inital loggin and settings read
kleing
parents:
28539
diff
changeset
|
113 |
sleep 15 |
42423
5a7217f098bd
migrated macbroy6 to macbroy30, which is the new "mobile" server (2 cores, 4 GB, Mac OS 10.5);
wenzelm
parents:
41967
diff
changeset
|
114 |
$SSH macbroy30 "sleep 10800; $MAKEALL $HOME/settings/mac-poly-M2" |
36074
6301046146b6
isatest: basic setup for cygwin-poly on atbroy102;
wenzelm
parents:
35930
diff
changeset
|
115 |
sleep 15 |
36242
d65f943b9f07
marked cygwin-poly as "e" test, which means further stages do not depend on it (website etc.);
wenzelm
parents:
36192
diff
changeset
|
116 |
$SSH atbroy102 "$MAKEALL $HOME/settings/cygwin-poly-e" |
33760 | 117 |
#sleep 15 |
118 |
#$SSH atbroy51 "$HOME/admin/isatest/isatest-annomaly" |
|
22410
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 |
echo ------------------- spawned tests successfully --- `date` --- $HOSTNAME >> $DISTLOG 2>&1 |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
121 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
122 |
gzip -f $DISTLOG |
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
123 |
|
da313b67a04d
moved all isatest/cron job related files to own directory
kleing
parents:
diff
changeset
|
124 |
## end |