qa_stage (9235B)
1 #! /bin/sh 2 ######################################################################## 3 # 4 # /u/sonmi/bin/qa_stage - /u/svbld/bin/init/nss/qa_stage 5 # 6 # this script is supposed to convert the tinderbox and daily QA files 7 # for use on mozilla.org 8 # 9 # parameters 10 # ---------- 11 # nssversion (supported: 30b, 31, tip) 12 # builddate (default - today) 13 # 14 ######################################################################## 15 16 if [ -z "$BUILDNUMBER" ] 17 then 18 BUILDNUMBER=1 19 fi 20 if [ `uname` = "Linux" ] ; then 21 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" 22 export PATH 23 fi 24 25 Echo() 26 { 27 if [ "$O_SILENT" = "OFF" ] ; then 28 echo $* 29 fi 30 } 31 32 ################################### qa_stage_init ########################## 33 # 34 ######################################################################## 35 qa_stage_init() 36 { 37 umask 000 38 39 eval_opts $* 40 41 if [ -z "${QAYEAR}" ] ; then 42 QAYEAR=`date +%Y` 43 elif [ "$QAYEAR" = "" ] ; then 44 QAYEAR=`date +%Y` 45 fi 46 47 Echo "Init..." 48 DAYBUILD=${QAYEAR}${BUILDDATE}.${BUILDNUMBER} 49 NSS_D0=/share/builds/mccrel3/nss 50 NSS_VER_DIR=${NSS_D0}/nss${NSSVER} 51 NTDIST=${NSS_VER_DIR}/builds/${DAYBUILD}/blowfish_NT4.0_Win95/mozilla/dist 52 UXDIST=${NSS_VER_DIR}/builds/${DAYBUILD}/booboo_Solaris8/mozilla/dist 53 TESTSCRIPTDIR=${NSS_VER_DIR}/builds/${DAYBUILD}/booboo_Solaris8/mozilla/security/nss/tests 54 RESULTDIR=${NSS_VER_DIR}/builds/${DAYBUILD}/booboo_Solaris8/mozilla/tests_results/security 55 TBX_RESULTDIR=${NSS_D0}/nsstip/tinderbox/tests_results/security 56 57 MOZ_D0=/pub/security/nss 58 MOZ_RESULTDIR=${MOZ_D0}/daily_qa/${DAYBUILD} 59 MOZ_TBX_RESULTDIR=${MOZ_D0}/tinderbox 60 61 export BUILDDATE NSSVER QAYEAR NTDIST UXDIST TESTSCRIPTDIR RESULTDIR 62 63 64 IPLANET_TBX_URL="http://cindercone.red.iplanet.com${TBX_RESULTDIR}" 65 IPLANET_DQA_URL="http://cindercone.red.iplanet.com${RESULTDIR}" 66 67 MOZ_TBX_URL="ftp://ftp.mozilla.org${MOZ_TBX_RESULTDIR}" 68 MOZ_DQA_URL="ftp://ftp.mozilla.org${MOZ_RESULTDIR}" 69 70 export IPLANET_TBX_URL IPLANET_DQA_URL MOZ_TBX_URL MOZ_DQA_URL 71 STAGE_1=/u/sonmi/tmp/ftp_stage 72 73 if [ ! -d $STAGE_1 ] ; then 74 Echo "Staging area daily QA (DQA): $DQA_STAGE does not exist, exit" 75 exit 1 76 fi 77 cd $STAGE_1 || (Echo "Cant cd to $STAGE_1 , exit"; exit) 78 rm all.tar* 2>/dev/null 79 TBX_STAGE=$STAGE_1/tinderbox 80 DQA_STAGE=$STAGE_1/daily_qa/${DAYBUILD} 81 Echo "Staging area tbx: $TBX_STAGE" 82 Echo "Staging area daily QA (DQA): $DQA_STAGE" 83 Echo "Resultdir (sourcedir) for daily QA (RESULTDIR): $RESULTDIR" 84 } 85 86 ################################### qa_stage_dqa ########################## 87 # 88 ######################################################################## 89 qa_stage_dqa() 90 { 91 Echo "DQA:..." 92 Echo "Resultdir (sourcedir) for daily QA (RESULTDIR): $RESULTDIR" 93 #set -x 94 if [ ! -d $RESULTDIR ] ; then 95 Echo "Resultdir $RESULTDIR does not exist, can't push daily QA" 96 return 97 fi 98 cd $RESULTDIR || return 99 #for w in `find . -name "result*html"` 100 for w in `find . -name "result.html"` 101 do 102 if [ ! -d $DQA_STAGE/`dirname $w` ] ; then 103 mkdir -p $DQA_STAGE/`dirname $w` 104 fi 105 rm $DQA_STAGE/$w 2>/dev/null 106 cat $w | reformat_qa >$DQA_STAGE/$w 107 done 108 for w in `find . -name "output.log" -o -name "results.html"` 109 do 110 #echo $w 111 if [ ! -d $DQA_STAGE/`dirname $w` ] ; then 112 mkdir -p $DQA_STAGE/`dirname $w` 113 fi 114 cp $w $DQA_STAGE/$w 115 done 116 } 117 118 119 ################################### qa_stage_tbx ########################## 120 # 121 ######################################################################## 122 qa_stage_tbx() 123 { 124 Echo "tbx: " 125 if [ ! -d $TBX_RESULTDIR ] ; then 126 Echo "TBX_RESULTDIR $TBX_RESULTDIR does not exist" 127 return 128 fi 129 cd $TBX_RESULTDIR || return 130 Echo "find from $TBX_FIND_FROM" 131 for w in `find $TBX_FIND_FROM -name "result.html"` 132 do 133 if [ ! -d "$TBX_STAGE/`dirname $w`" ] ; then 134 mkdir -p $TBX_STAGE/`dirname $w` 135 fi 136 rm $TBX_STAGE/$w 2>/dev/null 137 cat $w | reformat_qa >$TBX_STAGE/$w 138 done 139 for w in `find $TBX_FIND_FROM -name "output.log" -o -name "results.html"` 140 do 141 if [ ! -d $TBX_STAGE/`dirname $w` ] ; then 142 mkdir -p $TBX_STAGE/`dirname $w` 143 fi 144 cp $w $TBX_STAGE/$w 145 done 146 } 147 148 match_tbxdirs() 149 { 150 YY=`date +%Y` 151 DD=`date +%d` 152 MM=`date +%m` 153 HH=`date +%H` 154 155 TBX_FIND_FROM="*-$YY$MM$DD-$HH.*" 156 i=$1 157 while [ $i -gt 0 ] ; do 158 i=`expr $i - 1` 159 HH=`expr $HH - 1` 160 if [ $HH -lt 0 ] ; then 161 HH=23 162 DD=`expr $DD - 1` 163 if [ $DD -eq 0 ] ; then 164 MM=`expr $MM - 1` 165 case $MM in 166 0) 167 YY=`expr $YY - 1` 168 MM=12 169 DD=31 170 ;; 171 [13578]|10|12) 172 DD=31 173 ;; 174 2) 175 DD=28 176 ;; 177 [469]|11) 178 DD=30 179 ;; 180 esac 181 fi 182 fi 183 case $MM in 184 [123456789]) 185 MM=0$MM 186 ;; 187 esac 188 case $DD in 189 [123456789]) 190 DD=0$DD 191 ;; 192 esac 193 case $HH in 194 [0123456789]) 195 HH=0$HH 196 ;; 197 esac 198 TBX_FIND_FROM="$TBX_FIND_FROM *-$YY$MM$DD-$HH.*" 199 done 200 } 201 202 ################################### eval_opts ########################## 203 # global shell function, evapuates options and parameters, sets flags 204 # variables and defaults 205 ######################################################################## 206 eval_opts() 207 { 208 DO_TBX=OFF 209 DO_DQA=OFF 210 DO_CLEAN=OFF 211 O_SILENT=OFF 212 O_INCREMENTAL=OFF 213 O_MAIL=OFF 214 BUILDDATE=`date +%m%d` 215 NSSVER=tip 216 217 TBX_FIND_FROM="." 218 219 while [ -n "$1" ] 220 do 221 case $1 in 222 -d) 223 DO_DQA=ON 224 ;; 225 -m) 226 O_MAIL=ON 227 shift 228 MAILINGLIST=$1 229 if [ -z "$MAILINGLIST" ] 230 then 231 echo "Error: -m requires a mailinglist to follow, for example sonmi@iplanet.com" 232 exit 233 fi 234 ;; 235 -ti) 236 DO_TBX=ON 237 match_tbxdirs 2 238 O_INCREMENTAL=ON 239 ;; 240 -t) 241 DO_TBX=ON 242 ;; 243 -c) 244 DO_CLEAN=ON 245 ;; 246 -s) 247 O_SILENT=ON 248 ;; 249 250 tip|3[0-9]*) 251 NSSVER=$1 252 ;; 253 [01][0-9][0-3][0-9]) 254 BUILDDATE=$1 255 ;; 256 esac 257 shift 258 done 259 } 260 261 qa_stage_init $* 262 263 if [ "$DO_CLEAN" = "ON" ] ; then 264 Echo "Cleaning old stuff" 265 if [ ! -d $STAGE_1 ] ; then 266 Echo "Staging area daily QA (DQA): $DQA_STAGE does not exist, exit" 267 exit 1 268 fi 269 cd $STAGE_1 || (Echo "Cant cd to $STAGE_1 , exit"; exit) 270 if [ -n "$TBX_STAGE" -a -d "$TBX_STAGE" ] ; then 271 rm -rf $TBX_STAGE/* 272 else 273 Echo "nothing here to clean..." 274 fi 275 fi 276 if [ "$DO_DQA" = "ON" ] ; then 277 qa_stage_dqa 278 if [ "$O_MAIL" = "ON" -a -f "$DQA_STAGE/result.html" ] ; then 279 cat $DQA_STAGE/result.html | /usr/sbin/sendmail $MAILINGLIST 280 fi 281 fi 282 if [ "$DO_TBX" = "ON" ] ; then 283 qa_stage_tbx 284 fi 285 if [ ! -d $STAGE_1 ] ; then 286 Echo "Staging area daily QA (DQA): $DQA_STAGE does not exist, exit" 287 exit 1 288 fi 289 cd $STAGE_1 || (Echo "Cant cd to $STAGE_1 , exit"; exit) 290 Echo "tar..." 291 if [ "$O_SILENT" = "ON" ] ; then 292 TARPARAM=cf 293 else 294 TARPARAM=cvf 295 fi 296 297 298 if [ "$DO_DQA" = "ON" -a "$DO_TBX" = "ON" ] ; then 299 Echo "tar $TARPARAM all.tar daily_qa tinderbox" 300 tar $TARPARAM all.tar daily_qa tinderbox 301 elif [ "$DO_DQA" = "ON" ] ; then 302 Echo "tar $TARPARAM all.tar daily_qa" 303 tar $TARPARAM all.tar daily_qa 304 else 305 Echo "tar $TARPARAM all.tar tinderbox" 306 tar $TARPARAM all.tar tinderbox 307 fi 308 gzip all.tar 309 # ssh-agent > /u/sonmi/.ssh/ssh-agent.info 310 # setenv like it says in that file 311 # ssh-add 312 313 SSH_AUTH_SOCK=`grep SSH_AUTH_SOCK /u/sonmi/.ssh/ssh-agent.info | sed -e 's/setenv SSH_AUTH_SOCK //' -e 's/;//'` 314 SSH_AGENT_PID=`grep SSH_AGENT_PID /u/sonmi/.ssh/ssh-agent.info | sed -e 's/setenv SSH_AGENT_PID //' -e 's/;//'` 315 export SSH_AUTH_SOCK SSH_AGENT_PID 316 if [ "$O_SILENT" = "OFF" ] ; then 317 set -x 318 scp all.tar.gz sonmi@stage.mozilla.org:/home/ftp/pub/security/nss 319 ssh -l sonmi stage.mozilla.org '/home/sonmi/bin/nssqa_stage ' 320 else 321 scp all.tar.gz sonmi@stage.mozilla.org:/home/ftp/pub/security/nss >/dev/null 2>/dev/null 322 ssh -l sonmi stage.mozilla.org '/home/sonmi/bin/nssqa_stage ' >/dev/null 2>/dev/null 323 fi 324 325 #" rlogin huey " 326 #" sftp sonmi@stage.mozilla.org" 327 #" cd /home/ftp/pub/security/nss" 328 #" lcd tmp/ftp_stage" 329 #" put all.tar.gz" 330 #" quit " 331 #" ssh -l sonmi stage.mozilla.org" 332 #" cd /home/ftp/pub/security/nss" 333 #" gunzip all.tar.gz" 334 #" tar xvf all.tar" 335 #" rm all.tar" 336