cron-script.sh
author laca
Wed, 30 Jul 2003 02:42:58 +0000
changeset 852 024538443c93
parent 851 c38c68789066
child 853 e2a6c954649e
permissions -rwxr-xr-x
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
     1
#!/bin/bash
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
     2
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
     3
# host to rcp the rpms to
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
     4
RHOST=blader
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
     5
9cb957222a98 added comments
laca
parents: 786
diff changeset
     6
# user to rcp as (has to have root@<this host> in it's .rhosts file)
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
     7
RUSER=gbuild
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
     8
9cb957222a98 added comments
laca
parents: 786
diff changeset
     9
# directory to copy rpms/srpms to on the remote host
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    10
RPMSDIR=/sgnome/pkgs/gnome-2.2/rpms/nightly
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    11
SRPMSDIR=/sgnome/pkgs/gnome-2.2/srpms/nightly
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    12
9cb957222a98 added comments
laca
parents: 786
diff changeset
    13
# reply-to/to address to send the build log as/to
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    14
[email protected]
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    15
[email protected]
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    16
9cb957222a98 added comments
laca
parents: 786
diff changeset
    17
# date format used by the nightlies (passed to date on the cmd line)
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    18
DATE_FMT="%y%m%d"
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    19
9cb957222a98 added comments
laca
parents: 786
diff changeset
    20
# ------------ nothing to configure below this line --------------
9cb957222a98 added comments
laca
parents: 786
diff changeset
    21
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    22
MYNAME="$0"
852
024538443c93 *** empty log message ***
laca
parents: 851
diff changeset
    23
MYDIR=$(cd `dirname $0`; pwd)
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    24
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    25
if [ "x$1" != x ]; then
9cb957222a98 added comments
laca
parents: 786
diff changeset
    26
    SPECDIR="$1"
9cb957222a98 added comments
laca
parents: 786
diff changeset
    27
else
9cb957222a98 added comments
laca
parents: 786
diff changeset
    28
    SPECDIR="$MYDIR"
9cb957222a98 added comments
laca
parents: 786
diff changeset
    29
fi
9cb957222a98 added comments
laca
parents: 786
diff changeset
    30
9cb957222a98 added comments
laca
parents: 786
diff changeset
    31
# remove temporary files on exit
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    32
clean_up () {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    33
  case "$MYNAME" in
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    34
  /tmp/cron-script.copy.* )
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    35
        rm -f $MYNAME
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    36
        ;;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    37
  esac
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    38
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    39
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    40
trap clean_up HUP INT TERM QUIT EXIT
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    41
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    42
# make a copy of the cron script in /tmp and execute that in order to
9cb957222a98 added comments
laca
parents: 786
diff changeset
    43
# avoid disasters caused by cvs update.
485
e7fdca492320 *** empty log message ***
laca
parents: 484
diff changeset
    44
case "$MYNAME" in
e7fdca492320 *** empty log message ***
laca
parents: 484
diff changeset
    45
    /tmp/cron-script.copy.* )
e7fdca492320 *** empty log message ***
laca
parents: 484
diff changeset
    46
        ;;
e7fdca492320 *** empty log message ***
laca
parents: 484
diff changeset
    47
    *)
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    48
        cp $MYNAME /tmp/cron-script.copy.$$
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    49
        chmod 755 /tmp/cron-script.copy.$$
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    50
        cd /tmp
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    51
        exec /tmp/cron-script.copy.$$ "$MYDIR"
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    52
        ;;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    53
esac
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    54
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    55
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    56
DATE=`date +$DATE_FMT`
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    57
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    58
fatal_error () {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    59
  echo "ERROR: $*"
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    60
  exit 1
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    61
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    62
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    63
cd $SPECDIR || fatal_error "$SPECDIR not found"
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    64
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    65
cvs -q up -Pd > /dev/null 2>&1 || fatal_error "CVS update failed"
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    66
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    67
# if the script changed during cvs update, restart with the updated script
608
7e58689b0c2d more typos...
laca
parents: 607
diff changeset
    68
if ! /usr/bin/cmp -s ./cron-script.sh $MYNAME; then exec ./cron-script.sh; fi
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    69
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    70
rm -f GNOME*Template*.spec
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    71
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    72
# uninstall all pkgs left behind by a previous build
484
14ebefcf083e remove pkgs quietly
laca
parents: 482
diff changeset
    73
./build-gnome2 -q uninstall-pkgs *.spec
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    74
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    75
rm -f /usr/src/packages/SRPMS/* /usr/src/packages/RPMS/*/*
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    76
609
b705c778bcb2 build report fixes
laca
parents: 608
diff changeset
    77
WEBROOT=/scde/web/docs
b705c778bcb2 build report fixes
laca
parents: 608
diff changeset
    78
WEBDIR=gnome/releng/2.2/mercury/nightly
648
4db632d73e31 *** empty log message ***
laca
parents: 647
diff changeset
    79
LOGDIR=$WEBDIR/`date +%Y-%m-%d`
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    80
9cb957222a98 added comments
laca
parents: 786
diff changeset
    81
# if the log directory exists, open a new one with numbered suffix
9cb957222a98 added comments
laca
parents: 786
diff changeset
    82
NEW_LOGDIR=$LOGDIR
9cb957222a98 added comments
laca
parents: 786
diff changeset
    83
N=1
851
c38c68789066 *** empty log message ***
laca
parents: 850
diff changeset
    84
while [ -d $WEBROOT/$LOGDIR ]; do
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    85
    NEW_LOGDIR=$LOGDIR.$N
9cb957222a98 added comments
laca
parents: 786
diff changeset
    86
    N=`expr $N + 1`
9cb957222a98 added comments
laca
parents: 786
diff changeset
    87
done
9cb957222a98 added comments
laca
parents: 786
diff changeset
    88
9cb957222a98 added comments
laca
parents: 786
diff changeset
    89
LOGDIR=$NEW_LOGDIR
648
4db632d73e31 *** empty log message ***
laca
parents: 647
diff changeset
    90
mkdir -p $WEBROOT/$LOGDIR
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    91
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    92
# start the build
607
ffc39a2f2880 add missing \
laca
parents: 606
diff changeset
    93
./build-gnome2 -v --nightly --date "$DATE" build *.spec \
609
b705c778bcb2 build report fixes
laca
parents: 608
diff changeset
    94
        --logdir=$WEBROOT/$LOGDIR \
b705c778bcb2 build report fixes
laca
parents: 608
diff changeset
    95
        --logdir-url=`date +%Y-%m-%d` \
786
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 648
diff changeset
    96
        --good-build-dir=/sgnome/pkgs/gnome-2.2/rpms \
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 648
diff changeset
    97
        --good-rpms-copy-dir=/tmp/old-rpms-used.$$ \
609
b705c778bcb2 build report fixes
laca
parents: 608
diff changeset
    98
        --summary-log=$WEBROOT/$LOGDIR.html \
608
7e58689b0c2d more typos...
laca
parents: 607
diff changeset
    99
        --summary-title="Nightly Build Report `date +'%d %B %Y'`" \
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   100
        --rpm-url=file:///net/dtserv1.ireland/dtserv1/sgnome/buildenv/sgnome/pkgs/gnome-2.2/rpms/nightly \
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   101
        --srpm-url=file:///net/dtserv1.ireland/dtserv1/sgnome/buildenv/sgnome/pkgs/gnome-2.2/srpms/nightly  > /tmp/build.log.$$ 2>&1
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   102
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
   103
# the number of failed pkgs is returned
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   104
FAILED=$?
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   105
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
   106
# rotate rpms dir
9cb957222a98 added comments
laca
parents: 786
diff changeset
   107
echo '' | rsh $RHOST -l $RUSER "rm -f $RPMSDIR.prev/*; rmdir $RPMSDIR.prev"
9cb957222a98 added comments
laca
parents: 786
diff changeset
   108
echo '' | rsh $RHOST -l $RUSER "mv $RPMSDIR $RPMSDIR.prev; mkdir -p $RPMSDIR"
9cb957222a98 added comments
laca
parents: 786
diff changeset
   109
9cb957222a98 added comments
laca
parents: 786
diff changeset
   110
# copy new rpms
786
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 648
diff changeset
   111
echo '' | rcp `./build-gnome2 --nightly --date "$DATE" install-order \
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 648
diff changeset
   112
    --full-path \
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   113
    *.spec` $RUSER@$RHOST:$RPMSDIR
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   114
786
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 648
diff changeset
   115
if [ -d /tmp/old-rpms-used.$$ ]; then
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 648
diff changeset
   116
    echo '' | rcp /tmp/old-rpms-used.$$/*.rpm $RUSER@$RHOST:$RPMSDIR
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 648
diff changeset
   117
    rm -rf /tmp/old-rpms-used.$$
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 648
diff changeset
   118
fi
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 648
diff changeset
   119
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
   120
# rotate srpms dir
9cb957222a98 added comments
laca
parents: 786
diff changeset
   121
echo '' | rsh $RHOST -l $RUSER "rm -f $SRPMSDIR.prev/*; rmdir $SRPMSDIR.prev"
9cb957222a98 added comments
laca
parents: 786
diff changeset
   122
echo '' | rsh $RHOST -l $RUSER "mv $SRPMSDIR $SRPMSDIR.prev; mkdir -p $SRPMSDIR"
9cb957222a98 added comments
laca
parents: 786
diff changeset
   123
# copy new srpms
581
dbc6e8f701a4 *** empty log message ***
laca
parents: 485
diff changeset
   124
echo '' | rcp /usr/src/packages/SRPMS/*.$DATE.src.rpm \
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   125
	$RUSER@$RHOST:$SRPMSDIR
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   126
609
b705c778bcb2 build report fixes
laca
parents: 608
diff changeset
   127
ALL_REPORTS=$WEBROOT/$WEBDIR/all_reports.html
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   128
touch $ALL_REPORTS
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   129
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   130
cp $ALL_REPORTS $ALL_REPORTS.old
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   131
export FAILED ALL_REPORTS
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   132
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
   133
# update web page
644
f9dc5b6a3cb2 build report fixes
laca
parents: 609
diff changeset
   134
( echo "<TR><TD><A HREF=/$LOGDIR.html>`date +%Y-%m-%d`</A></TD>"; \
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   135
  echo "    <TD>$FAILED package(s) failed</TD></TR>"; \
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   136
  cat $ALL_REPORTS.old ) > $ALL_REPORTS
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   137
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
   138
# send log by email
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   139
cat /tmp/build.log.$$ | \
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   140
    mail -s "mercury nightly build: $FAILED pkgs failed" \
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   141
         -R $REPLY_TO $EMAIL_ADDR
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   142
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   143
rm -f /tmp/build.log.$$
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   144
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   145
exit 0