cron-script.sh
author laca
Tue, 18 Nov 2003 10:31:07 +0000
changeset 1418 d6ff07e7887d
parent 1351 a6141f0beecb
child 1521 281281f01ef5
permissions -rwxr-xr-x
2003-11-18 Laszlo Peter <[email protected]> * cron-script.sh, continuous-build.sh: change paths from quicksilver to jds.next * build-gnome2.sh: use latest version from mercury-se branch
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
1418
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1351
diff changeset
    10
RPMSDIR=/sgnome/pkgs/jds.next/rpms
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1351
diff changeset
    11
SRPMSDIR=/sgnome/pkgs/jds.next/srpms
1351
a6141f0beecb add lockfile stuff
re
parents: 1181
diff changeset
    12
LOCKFILE=$RPMSDIR/.build.lock
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    13
9cb957222a98 added comments
laca
parents: 786
diff changeset
    14
# reply-to/to address to send the build log as/to
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    15
[email protected]
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    16
[email protected]
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    17
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    18
# date format appended to the Release tag in the spec files
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    19
# (passed to the date command on the cmd line)
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    20
RELEASE_DATE_FMT="%y%m%d"
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    21
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    22
# date format used for naming the directories
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    23
DIR_DATE_FMT="%Y-%m-%d"
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    24
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    25
RELEASE_DATE=`date +$RELEASE_DATE_FMT`
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    26
DIR_DATE=`date +$DIR_DATE_FMT`
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    27
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    28
# document root of the web server
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    29
WEBROOT=/scde/web/docs
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    30
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    31
# subdir to keep logs and reports on the webserver
1418
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1351
diff changeset
    32
WEBDIR=gnome/releng/jds/jds.next/nightly
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
    33
LOGDIR=$WEBDIR/$DIR_DATE
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    34
9cb957222a98 added comments
laca
parents: 786
diff changeset
    35
# ------------ nothing to configure below this line --------------
9cb957222a98 added comments
laca
parents: 786
diff changeset
    36
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    37
MYNAME="$0"
852
024538443c93 *** empty log message ***
laca
parents: 851
diff changeset
    38
MYDIR=$(cd `dirname $0`; pwd)
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    39
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    40
if [ "x$1" != x ]; then
9cb957222a98 added comments
laca
parents: 786
diff changeset
    41
    SPECDIR="$1"
9cb957222a98 added comments
laca
parents: 786
diff changeset
    42
else
9cb957222a98 added comments
laca
parents: 786
diff changeset
    43
    SPECDIR="$MYDIR"
9cb957222a98 added comments
laca
parents: 786
diff changeset
    44
fi
9cb957222a98 added comments
laca
parents: 786
diff changeset
    45
9cb957222a98 added comments
laca
parents: 786
diff changeset
    46
# remove temporary files on exit
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    47
clean_up () {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    48
  case "$MYNAME" in
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    49
  /tmp/cron-script.copy.* )
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    50
        rm -f $MYNAME
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    51
        ;;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    52
  esac
853
e2a6c954649e *** empty log message ***
laca
parents: 852
diff changeset
    53
  exit
482
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
trap clean_up HUP INT TERM QUIT EXIT
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    57
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    58
# make a copy of the cron script in /tmp and execute that in order to
9cb957222a98 added comments
laca
parents: 786
diff changeset
    59
# avoid disasters caused by cvs update.
485
e7fdca492320 *** empty log message ***
laca
parents: 484
diff changeset
    60
case "$MYNAME" in
e7fdca492320 *** empty log message ***
laca
parents: 484
diff changeset
    61
    /tmp/cron-script.copy.* )
e7fdca492320 *** empty log message ***
laca
parents: 484
diff changeset
    62
        ;;
e7fdca492320 *** empty log message ***
laca
parents: 484
diff changeset
    63
    *)
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    64
        cp $MYNAME /tmp/cron-script.copy.$$
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    65
        chmod 755 /tmp/cron-script.copy.$$
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    66
        cd /tmp
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    67
        exec /tmp/cron-script.copy.$$ "$MYDIR"
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    68
        ;;
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    69
esac
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    70
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    71
fatal_error () {
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    72
  echo "ERROR: $*"
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    73
  exit 1
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    74
}
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    75
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    76
cd $SPECDIR || fatal_error "$SPECDIR not found"
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    77
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
    78
cvs -q up -Pd > /dev/null 2>&1 || fatal_error "CVS update failed"
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    79
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    80
# if the script changed during cvs update, restart with the updated script
608
7e58689b0c2d more typos...
laca
parents: 607
diff changeset
    81
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
    82
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    83
rm -f GNOME*Template*.spec
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    84
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    85
# uninstall all pkgs left behind by a previous build
484
14ebefcf083e remove pkgs quietly
laca
parents: 482
diff changeset
    86
./build-gnome2 -q uninstall-pkgs *.spec
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    87
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    88
rm -f /usr/src/packages/SRPMS/* /usr/src/packages/RPMS/*/*
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
    89
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    90
# if the log directory exists, open a new one with numbered suffix
9cb957222a98 added comments
laca
parents: 786
diff changeset
    91
NEW_LOGDIR=$LOGDIR
9cb957222a98 added comments
laca
parents: 786
diff changeset
    92
N=1
853
e2a6c954649e *** empty log message ***
laca
parents: 852
diff changeset
    93
while [ -d $WEBROOT/$NEW_LOGDIR ]; do
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
    94
    NEW_LOGDIR=$LOGDIR.$N
9cb957222a98 added comments
laca
parents: 786
diff changeset
    95
    N=`expr $N + 1`
9cb957222a98 added comments
laca
parents: 786
diff changeset
    96
done
9cb957222a98 added comments
laca
parents: 786
diff changeset
    97
9cb957222a98 added comments
laca
parents: 786
diff changeset
    98
LOGDIR=$NEW_LOGDIR
648
4db632d73e31 *** empty log message ***
laca
parents: 647
diff changeset
    99
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
   100
1351
a6141f0beecb add lockfile stuff
re
parents: 1181
diff changeset
   101
echo '' | rsh $RHOST -l $RUSER "touch $LOCKFILE"
a6141f0beecb add lockfile stuff
re
parents: 1181
diff changeset
   102
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
   103
# start the build
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
   104
./build-gnome2 -v --nightly --date "$RELEASE_DATE" build --target i586 *.spec \
609
b705c778bcb2 build report fixes
laca
parents: 608
diff changeset
   105
        --logdir=$WEBROOT/$LOGDIR \
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
   106
        --logdir-url=$DIR_DATE \
1418
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1351
diff changeset
   107
	--mail-errors-file=MAINTAINERS \
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1351
diff changeset
   108
	[email protected] \
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1351
diff changeset
   109
	[email protected] \
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1351
diff changeset
   110
        --prodname=jds.next \
786
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 648
diff changeset
   111
        --good-rpms-copy-dir=/tmp/old-rpms-used.$$ \
609
b705c778bcb2 build report fixes
laca
parents: 608
diff changeset
   112
        --summary-log=$WEBROOT/$LOGDIR.html \
608
7e58689b0c2d more typos...
laca
parents: 607
diff changeset
   113
        --summary-title="Nightly Build Report `date +'%d %B %Y'`" \
1418
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1351
diff changeset
   114
        --rpm-url=file:///net/dtserv1.ireland/dtserv1/sgnome/buildenv$RPMSDIR \
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1351
diff changeset
   115
        --srpm-url=file:///net/dtserv1.ireland/dtserv1/sgnome/buildenv$SRPMSDIR  > /tmp/build.log.$$ 2>&1
1181
c4d1b9abc1ef updated for quicksilver directory locations
re
parents: 1059
diff changeset
   116
#        --good-build-dir=/sgnome/pkgs/gnome-2.2/rpms \  FIXME
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   117
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
   118
# 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
   119
FAILED=$?
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   120
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
   121
# rotate rpms dir
9cb957222a98 added comments
laca
parents: 786
diff changeset
   122
echo '' | rsh $RHOST -l $RUSER "rm -f $RPMSDIR.prev/*; rmdir $RPMSDIR.prev"
9cb957222a98 added comments
laca
parents: 786
diff changeset
   123
echo '' | rsh $RHOST -l $RUSER "mv $RPMSDIR $RPMSDIR.prev; mkdir -p $RPMSDIR"
9cb957222a98 added comments
laca
parents: 786
diff changeset
   124
9cb957222a98 added comments
laca
parents: 786
diff changeset
   125
# copy new rpms
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
   126
echo '' | rcp `./build-gnome2 --nightly --date "$RELEASE_DATE" install-order \
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
   127
    --full-path --target i586 \
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   128
    *.spec` $RUSER@$RHOST:$RPMSDIR
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   129
786
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 648
diff changeset
   130
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
   131
    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
   132
    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
   133
fi
164d94045f68 added support for using known good rpms when a component fails to build.
laca
parents: 648
diff changeset
   134
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
   135
# rotate srpms dir
9cb957222a98 added comments
laca
parents: 786
diff changeset
   136
echo '' | rsh $RHOST -l $RUSER "rm -f $SRPMSDIR.prev/*; rmdir $SRPMSDIR.prev"
9cb957222a98 added comments
laca
parents: 786
diff changeset
   137
echo '' | rsh $RHOST -l $RUSER "mv $SRPMSDIR $SRPMSDIR.prev; mkdir -p $SRPMSDIR"
9cb957222a98 added comments
laca
parents: 786
diff changeset
   138
# copy new srpms
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
   139
echo '' | rcp /usr/src/packages/SRPMS/*.$RELEASE_DATE.src.rpm \
482
0b7e38d38dac added laca's build scripts
laca
parents:
diff changeset
   140
	$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
   141
609
b705c778bcb2 build report fixes
laca
parents: 608
diff changeset
   142
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
   143
touch $ALL_REPORTS
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
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
   146
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
   147
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
   148
# update web page
1058
219c9b3fae9f 2003-08-14 Laszlo Peter <[email protected]>
laca
parents: 853
diff changeset
   149
( echo "<TR><TD><A HREF=/$LOGDIR.html>$DIR_DATE</A></TD>"; \
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   150
  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
   151
  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
   152
850
9cb957222a98 added comments
laca
parents: 786
diff changeset
   153
# 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
   154
cat /tmp/build.log.$$ | \
1418
d6ff07e7887d 2003-11-18 Laszlo Peter <[email protected]>
laca
parents: 1351
diff changeset
   155
    mail -s "JDS.next nightly build: $FAILED pkgs failed" \
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   156
         -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
   157
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   158
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
   159
1351
a6141f0beecb add lockfile stuff
re
parents: 1181
diff changeset
   160
echo '' | rsh $RHOST -l $RUSER "rm $LOCKFILE"
a6141f0beecb add lockfile stuff
re
parents: 1181
diff changeset
   161
606
53d75f521e46 added some command line options to the build script for use in the nightly builds.
laca
parents: 581
diff changeset
   162
exit 0