зеркало из https://github.com/mozilla/gecko-dev.git
337 строки
9.0 KiB
Bash
Executable File
337 строки
9.0 KiB
Bash
Executable File
#! /bin/sh
|
|
########################################################################
|
|
#
|
|
# /u/sonmi/bin/qa_stage - /u/svbld/bin/init/nss/qa_stage
|
|
#
|
|
# this script is supposed to convert the tinderbox and daily QA files
|
|
# for use on mozilla.org
|
|
#
|
|
# parameters
|
|
# ----------
|
|
# nssversion (supported: 30b, 31, tip)
|
|
# builddate (default - today)
|
|
#
|
|
########################################################################
|
|
|
|
if [ -z "$BUILDNUMBER" ]
|
|
then
|
|
BUILDNUMBER=1
|
|
fi
|
|
if [ `uname` = "Linux" ] ; then
|
|
PATH=".:/u/sonmi/bin:/u/sonmi/bin/linux:/usr/bsd:/usr/ucb/:/bin:/usr/bin:/usr/ccs/bin:/usr/sbin:/usr/bin/X11:/usr/etc:/etc:/usr/demos:/usr/demos/bin:/usr/local/bin:/usr/local/X11/bin:/tools/ns/bin"
|
|
export PATH
|
|
fi
|
|
|
|
Echo()
|
|
{
|
|
if [ "$O_SILENT" = "OFF" ] ; then
|
|
echo $*
|
|
fi
|
|
}
|
|
|
|
################################### qa_stage_init ##########################
|
|
#
|
|
########################################################################
|
|
qa_stage_init()
|
|
{
|
|
umask 000
|
|
|
|
eval_opts $*
|
|
|
|
if [ -z "${QAYEAR}" ] ; then
|
|
QAYEAR=`date +%Y`
|
|
elif [ "$QAYEAR" = "" ] ; then
|
|
QAYEAR=`date +%Y`
|
|
fi
|
|
|
|
Echo "Init..."
|
|
DAYBUILD=${QAYEAR}${BUILDDATE}.${BUILDNUMBER}
|
|
NSS_D0=/share/builds/mccrel3/nss
|
|
NSS_VER_DIR=${NSS_D0}/nss${NSSVER}
|
|
NTDIST=${NSS_VER_DIR}/builds/${DAYBUILD}/blowfish_NT4.0_Win95/mozilla/dist
|
|
UXDIST=${NSS_VER_DIR}/builds/${DAYBUILD}/booboo_Solaris8/mozilla/dist
|
|
TESTSCRIPTDIR=${NSS_VER_DIR}/builds/${DAYBUILD}/booboo_Solaris8/mozilla/security/nss/tests
|
|
RESULTDIR=${NSS_VER_DIR}/builds/${DAYBUILD}/booboo_Solaris8/mozilla/tests_results/security
|
|
TBX_RESULTDIR=${NSS_D0}/nsstip/tinderbox/tests_results/security
|
|
|
|
MOZ_D0=/pub/security/nss
|
|
MOZ_RESULTDIR=${MOZ_D0}/daily_qa/${DAYBUILD}
|
|
MOZ_TBX_RESULTDIR=${MOZ_D0}/tinderbox
|
|
|
|
export BUILDDATE NSSVER QAYEAR NTDIST UXDIST TESTSCRIPTDIR RESULTDIR
|
|
|
|
|
|
IPLANET_TBX_URL="http://cindercone.red.iplanet.com${TBX_RESULTDIR}"
|
|
IPLANET_DQA_URL="http://cindercone.red.iplanet.com${RESULTDIR}"
|
|
|
|
MOZ_TBX_URL="ftp://ftp.mozilla.org${MOZ_TBX_RESULTDIR}"
|
|
MOZ_DQA_URL="ftp://ftp.mozilla.org${MOZ_RESULTDIR}"
|
|
|
|
export IPLANET_TBX_URL IPLANET_DQA_URL MOZ_TBX_URL MOZ_DQA_URL
|
|
STAGE_1=/u/sonmi/tmp/ftp_stage
|
|
|
|
if [ ! -d $STAGE_1 ] ; then
|
|
Echo "Staging area daily QA (DQA): $DQA_STAGE does not exist, exit"
|
|
exit 1
|
|
fi
|
|
cd $STAGE_1 || (Echo "Cant cd to $STAGE_1 , exit"; exit)
|
|
rm all.tar* 2>/dev/null
|
|
TBX_STAGE=$STAGE_1/tinderbox
|
|
DQA_STAGE=$STAGE_1/daily_qa/${DAYBUILD}
|
|
Echo "Staging area tbx: $TBX_STAGE"
|
|
Echo "Staging area daily QA (DQA): $DQA_STAGE"
|
|
Echo "Resultdir (sourcedir) for daily QA (RESULTDIR): $RESULTDIR"
|
|
}
|
|
|
|
################################### qa_stage_dqa ##########################
|
|
#
|
|
########################################################################
|
|
qa_stage_dqa()
|
|
{
|
|
Echo "DQA:..."
|
|
Echo "Resultdir (sourcedir) for daily QA (RESULTDIR): $RESULTDIR"
|
|
#set -x
|
|
if [ ! -d $RESULTDIR ] ; then
|
|
Echo "Resultdir $RESULTDIR does not exist, can't push daily QA"
|
|
return
|
|
fi
|
|
cd $RESULTDIR || return
|
|
#for w in `find . -name "result*html"`
|
|
for w in `find . -name "result.html"`
|
|
do
|
|
if [ ! -d $DQA_STAGE/`dirname $w` ] ; then
|
|
mkdir -p $DQA_STAGE/`dirname $w`
|
|
fi
|
|
rm $DQA_STAGE/$w 2>/dev/null
|
|
cat $w | reformat_qa >$DQA_STAGE/$w
|
|
done
|
|
for w in `find . -name "output.log" -o -name "results.html"`
|
|
do
|
|
#echo $w
|
|
if [ ! -d $DQA_STAGE/`dirname $w` ] ; then
|
|
mkdir -p $DQA_STAGE/`dirname $w`
|
|
fi
|
|
cp $w $DQA_STAGE/$w
|
|
done
|
|
}
|
|
|
|
|
|
################################### qa_stage_tbx ##########################
|
|
#
|
|
########################################################################
|
|
qa_stage_tbx()
|
|
{
|
|
Echo "tbx: "
|
|
if [ ! -d $TBX_RESULTDIR ] ; then
|
|
Echo "TBX_RESULTDIR $TBX_RESULTDIR does not exist"
|
|
return
|
|
fi
|
|
cd $TBX_RESULTDIR || return
|
|
Echo "find from $TBX_FIND_FROM"
|
|
for w in `find $TBX_FIND_FROM -name "result.html"`
|
|
do
|
|
if [ ! -d "$TBX_STAGE/`dirname $w`" ] ; then
|
|
mkdir -p $TBX_STAGE/`dirname $w`
|
|
fi
|
|
rm $TBX_STAGE/$w 2>/dev/null
|
|
cat $w | reformat_qa >$TBX_STAGE/$w
|
|
done
|
|
for w in `find $TBX_FIND_FROM -name "output.log" -o -name "results.html"`
|
|
do
|
|
if [ ! -d $TBX_STAGE/`dirname $w` ] ; then
|
|
mkdir -p $TBX_STAGE/`dirname $w`
|
|
fi
|
|
cp $w $TBX_STAGE/$w
|
|
done
|
|
}
|
|
|
|
match_tbxdirs()
|
|
{
|
|
YY=`date +%Y`
|
|
DD=`date +%d`
|
|
MM=`date +%m`
|
|
HH=`date +%H`
|
|
|
|
TBX_FIND_FROM="*-$YY$MM$DD-$HH.*"
|
|
i=$1
|
|
while [ $i -gt 0 ] ; do
|
|
i=`expr $i - 1`
|
|
HH=`expr $HH - 1`
|
|
if [ $HH -lt 0 ] ; then
|
|
HH=23
|
|
DD=`expr $DD - 1`
|
|
if [ $DD -eq 0 ] ; then
|
|
MM=`expr $MM - 1`
|
|
case $MM in
|
|
0)
|
|
YY=`expr $YY - 1`
|
|
MM=12
|
|
DD=31
|
|
;;
|
|
[13578]|10|12)
|
|
DD=31
|
|
;;
|
|
2)
|
|
DD=28
|
|
;;
|
|
[469]|11)
|
|
DD=30
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
case $MM in
|
|
[123456789])
|
|
MM=0$MM
|
|
;;
|
|
esac
|
|
case $DD in
|
|
[123456789])
|
|
DD=0$DD
|
|
;;
|
|
esac
|
|
case $HH in
|
|
[0123456789])
|
|
HH=0$HH
|
|
;;
|
|
esac
|
|
TBX_FIND_FROM="$TBX_FIND_FROM *-$YY$MM$DD-$HH.*"
|
|
done
|
|
}
|
|
|
|
################################### eval_opts ##########################
|
|
# global shell function, evapuates options and parameters, sets flags
|
|
# variables and defaults
|
|
########################################################################
|
|
eval_opts()
|
|
{
|
|
DO_TBX=OFF
|
|
DO_DQA=OFF
|
|
DO_CLEAN=OFF
|
|
O_SILENT=OFF
|
|
O_INCREMENTAL=OFF
|
|
O_MAIL=OFF
|
|
BUILDDATE=`date +%m%d`
|
|
NSSVER=tip
|
|
|
|
TBX_FIND_FROM="."
|
|
|
|
while [ -n "$1" ]
|
|
do
|
|
case $1 in
|
|
-d)
|
|
DO_DQA=ON
|
|
;;
|
|
-m)
|
|
O_MAIL=ON
|
|
shift
|
|
MAILINGLIST=$1
|
|
if [ -z "$MAILINGLIST" ]
|
|
then
|
|
echo "Error: -m requires a mailinglist to follow, for example sonmi@iplanet.com"
|
|
exit
|
|
fi
|
|
;;
|
|
-ti)
|
|
DO_TBX=ON
|
|
match_tbxdirs 2
|
|
O_INCREMENTAL=ON
|
|
;;
|
|
-t)
|
|
DO_TBX=ON
|
|
;;
|
|
-c)
|
|
DO_CLEAN=ON
|
|
;;
|
|
-s)
|
|
O_SILENT=ON
|
|
;;
|
|
|
|
tip|3[0-9]*)
|
|
NSSVER=$1
|
|
;;
|
|
[01][0-9][0-3][0-9])
|
|
BUILDDATE=$1
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
}
|
|
|
|
qa_stage_init $*
|
|
|
|
if [ "$DO_CLEAN" = "ON" ] ; then
|
|
Echo "Cleaning old stuff"
|
|
if [ ! -d $STAGE_1 ] ; then
|
|
Echo "Staging area daily QA (DQA): $DQA_STAGE does not exist, exit"
|
|
exit 1
|
|
fi
|
|
cd $STAGE_1 || (Echo "Cant cd to $STAGE_1 , exit"; exit)
|
|
if [ -n "$TBX_STAGE" -a -d "$TBX_STAGE" ] ; then
|
|
rm -rf $TBX_STAGE/*
|
|
else
|
|
Echo "nothing here to clean..."
|
|
fi
|
|
fi
|
|
if [ "$DO_DQA" = "ON" ] ; then
|
|
qa_stage_dqa
|
|
if [ "$O_MAIL" = "ON" -a -f "$DQA_STAGE/result.html" ] ; then
|
|
cat $DQA_STAGE/result.html | /usr/sbin/sendmail $MAILINGLIST
|
|
fi
|
|
fi
|
|
if [ "$DO_TBX" = "ON" ] ; then
|
|
qa_stage_tbx
|
|
fi
|
|
if [ ! -d $STAGE_1 ] ; then
|
|
Echo "Staging area daily QA (DQA): $DQA_STAGE does not exist, exit"
|
|
exit 1
|
|
fi
|
|
cd $STAGE_1 || (Echo "Cant cd to $STAGE_1 , exit"; exit)
|
|
Echo "tar..."
|
|
if [ "$O_SILENT" = "ON" ] ; then
|
|
TARPARAM=cf
|
|
else
|
|
TARPARAM=cvf
|
|
fi
|
|
|
|
|
|
if [ "$DO_DQA" = "ON" -a "$DO_TBX" = "ON" ] ; then
|
|
Echo "tar $TARPARAM all.tar daily_qa tinderbox"
|
|
tar $TARPARAM all.tar daily_qa tinderbox
|
|
elif [ "$DO_DQA" = "ON" ] ; then
|
|
Echo "tar $TARPARAM all.tar daily_qa"
|
|
tar $TARPARAM all.tar daily_qa
|
|
else
|
|
Echo "tar $TARPARAM all.tar tinderbox"
|
|
tar $TARPARAM all.tar tinderbox
|
|
fi
|
|
gzip all.tar
|
|
# ssh-agent > /u/sonmi/.ssh/ssh-agent.info
|
|
# setenv like it says in that file
|
|
# ssh-add
|
|
|
|
SSH_AUTH_SOCK=`grep SSH_AUTH_SOCK /u/sonmi/.ssh/ssh-agent.info | sed -e 's/setenv SSH_AUTH_SOCK //' -e 's/;//'`
|
|
SSH_AGENT_PID=`grep SSH_AGENT_PID /u/sonmi/.ssh/ssh-agent.info | sed -e 's/setenv SSH_AGENT_PID //' -e 's/;//'`
|
|
export SSH_AUTH_SOCK SSH_AGENT_PID
|
|
if [ "$O_SILENT" = "OFF" ] ; then
|
|
set -x
|
|
scp all.tar.gz sonmi@stage.mozilla.org:/home/ftp/pub/security/nss
|
|
ssh -l sonmi stage.mozilla.org '/home/sonmi/bin/nssqa_stage '
|
|
else
|
|
scp all.tar.gz sonmi@stage.mozilla.org:/home/ftp/pub/security/nss >/dev/null 2>/dev/null
|
|
ssh -l sonmi stage.mozilla.org '/home/sonmi/bin/nssqa_stage ' >/dev/null 2>/dev/null
|
|
fi
|
|
|
|
#" rlogin huey "
|
|
#" sftp sonmi@stage.mozilla.org"
|
|
#" cd /home/ftp/pub/security/nss"
|
|
#" lcd tmp/ftp_stage"
|
|
#" put all.tar.gz"
|
|
#" quit "
|
|
#" ssh -l sonmi stage.mozilla.org"
|
|
#" cd /home/ftp/pub/security/nss"
|
|
#" gunzip all.tar.gz"
|
|
#" tar xvf all.tar"
|
|
#" rm all.tar"
|
|
|