nbbuild/hudson/trunk
author Ivan Sidorkin <ivansidorkin@netbeans.org>
Sun Jun 29 22:11:31 2008 +0400 (4 days ago)
changeset 86929 7b1d25417369
parent 86871b995e415c635
permissions -rw-r--r--
Migrating J2EE UI commit validation test
        1 #!/bin/sh
        2 
        3 if [ x$BUILD_ID = x ]
        4 then
        5     # Non-Hudson use.
        6     if [ x$USERNAME = x ]
        7     then
        8         BUILD_ID=private
        9     else
       10         BUILD_ID=$USERNAME-private
       11     fi
       12     dir=`dirname $0`/../..
       13     cd $dir
       14 else
       15     hg --config extensions.purge= clean --all || exit
       16 fi
       17 
       18 DIST=$PWD/nbbuild/dist
       19 rm -rf $DIST/
       20 
       21 # XXX should use hg id as the build number; timestamp is useless!
       22 
       23 # YYYYMMDDhhmmss timestamp
       24 BUILDNUMBER=`echo $BUILD_ID | tr -d _-` 
       25 BUILDNUM=$BUILD_TAG
       26 
       27 ant -Dbuildnum=$BUILDNUM -Dbuildnumber=$BUILDNUMBER verify-libs-and-licenses build-nozip || exit 
       28 
       29 # we can't afford to run build-nbms in hudson builds, on deadlock.netbeans.org it takes 6 minutes from a typical 15 min build run
       30 # mkdir -p $DIST/nbms
       31 # ant -Dbuildnum=$BUILD_ID build-nbms -Dmoduleconfig=all -Dbase.nbm.target.dir=${DIST}/nbms || exit
       32 
       33 cd nbbuild
       34 rm -f netbeans/nb.cluster.*
       35 # Do not delete. It is needed for tests to determine classpath.
       36 #rm -f netbeans/moduleCluster.properties
       37 # Do not delete. It contains 'hg id' of repository in time of build.
       38 #rm -f netbeans/build_info
       39 
       40 BASENAME=netbeans-$BUILDNUM
       41 
       42 mkdir -p $DIST/zip/moduleclusters
       43 
       44 find netbeans | egrep -v "netbeans/(extra|testtools)" | zip -q $DIST/zip/$BASENAME.zip -@ || exit
       45 
       46 find netbeans | egrep -v "netbeans/(extra|testtools|xml|mobility|enterprise|visualweb|uml|ruby|soa|cnd|identity|php|groovy)" | zip -q $DIST/zip/$BASENAME-java.zip -@ || exit
       47 find netbeans | egrep -v "netbeans/(extra|testtools|xml|enterprise|visualweb|uml|ruby|soa|cnd|identity|php|groovy)" | egrep -v "(org-netbeans-modules-mobility-end2end|org-netbeans-modules-mobility-jsr172)" | zip -q $DIST/zip/$BASENAME-mobility.zip -@ || exit
       48 find netbeans | egrep -v "netbeans/(extra|testtools|mobility|uml|ruby|soa|cnd|identity|php)" | zip -q $DIST/zip/$BASENAME-javaee.zip -@ || exit
       49 find netbeans | egrep -v "netbeans/(extra|testtools|xml|java|apisupport|harness|profiler|mobility|enterprise|visualweb|uml|soa|identity|cnd|php|groovy)" | zip -q $DIST/zip/$BASENAME-ruby.zip -@ || exit
       50 find netbeans | egrep -v "netbeans/(extra|testtools|xml|java|apisupport|harness|profiler|mobility|enterprise|visualweb|uml|soa|identity|cnd|ruby|groovy)" | zip -q $DIST/zip/$BASENAME-php.zip -@ || exit
       51 find netbeans | egrep -v "netbeans/(extra|testtools|xml|java|apisupport|harness|profiler|mobility|enterprise|visualweb|uml|ruby|soa|identity|php|groovy)" | zip -q $DIST/zip/$BASENAME-cnd.zip -@ || exit
       52 
       53 cd netbeans
       54 expat='extra|testtools'
       55 for c in platform ide java apisupport harness enterprise profiler uml visualweb ruby mobility soa xml cnd identity gsf php groovy; do
       56     find * | egrep "^$c[0-9]*/" | zip -q $DIST/zip/moduleclusters/$BASENAME-$c.zip -@ || exit
       57     expat="$expat|$c[0-9]*"
       58 done
       59 find * | egrep -v "^($expat)(/|$)" | zip -q $DIST/zip/moduleclusters/$BASENAME-nb6.0-etc.zip -@ || exit
       60 
       61 cp -p $DIST/zip/moduleclusters/$BASENAME-platform.zip $DIST/zip/
       62 
       63 cd ../..
       64 generated=nbbuild/build/generated
       65 rm -rf $generated
       66 ant generate-golden-files generate-files-layout index-layer-paths || exit
       67 cp -v nbbuild/netbeans/THIRDPARTYLICENSE-generated.txt $generated/external-libraries.txt || exit
       68 prev_generated=../lastSuccessful/archive/$generated
       69 if [ -d $prev_generated ]; then
       70     diff -r -U 25 $prev_generated $generated > $generated.diff
       71     if [ -s $generated.diff ]; then
       72         (echo "http://deadlock.netbeans.org/hudson/job/$JOB_NAME/$BUILD_NUMBER/changes"; echo "http://deadlock.netbeans.org/hudson/job/$JOB_NAME/$BUILD_NUMBER/artifact/$generated/"; echo; cat $generated.diff) | mail -s "Golden file changes in $JOB_NAME build #$BUILD_NUMBER" api-changes@netbeans.org
       73     fi
       74 fi
       75 
       76 sigtest_prev=`pwd`/../lastSuccessful/archive/nbbuild/build/sigtest/snapshot
       77 
       78 echo SigTest: Checking All Changes
       79 ant -Dsigtest.basedir=$sigtest_prev check-sigtests
       80 for report in `pwd`/nbbuild/build/sigtest/check-snapshot/*; do
       81   if ! expr "$report" : ".*/TESTS-.*" && grep 'failures="1"' $report >/dev/null; then
       82     sigtest_email=`cat $report | grep "^email:" | grep -v nbm.domain | cut -c 8-`
       83     if [ -z "$sigtest_email" ]; then
       84       sigtest_email="api-changes@netbeans.org"
       85     fi
       86     content=`cat $report`
       87     (
       88         echo "Code changes:";
       89         echo "http://deadlock.netbeans.org/hudson/job/$JOB_NAME/$BUILD_NUMBER/changes"; 
       90         echo "API changes:";
       91         echo "http://deadlock.netbeans.org/hudson/job/$JOB_NAME/$BUILD_NUMBER/artifact/nbbuild/build/sigtest/check-snapshot/html/index.html"; 
       92         echo "Failure output is available as StdErr output of sigtest test for appropriate module.";
       93 #                echo "http://deadlock.netbeans.org/hudson/job/$JOB_NAME/$BUILD_NUMBER/artifact/$sigtest_out/`basename $report`"; 
       94         echo; 
       95         expr "$content" : ".*CDATA\[\(.*\)\]\].*"
       96     ) | mail -s "`basename $report` - sigchanges in $JOB_NAME build #$BUILD_NUMBER" $sigtest_email
       97   fi
       98 done
       99 echo SigTest: Checking All Changes Done
      100 
      101 echo SigTest: Generating Golden Files
      102 ant gen-sigtests 
      103 echo SigTest: Generating Golden Files Done
      104 
      105 echo SigTest: Incompatible Changes
      106 ant check-sigtests-release
      107 echo SigTest: Incompatible Changes Done
      108 
      109 ###############  Commit validation tests  ##########################
      110 TESTS_STARTED=`date`
      111 TESTS_RESULT_DIR="`pwd`/nbbuild/build/test/results"
      112 # Different JDK for tests because JVM crashes often (see 6598709, 6607038)
      113 JDK_TESTS=/opt/jdk1.5.0_14
      114 # standard NetBeans unit and UI validation tests
      115 ant commit-validation
      116 # Init application server for tests
      117 sh -x `dirname $0`/initAppserver.sh
      118 # visualweb UI validation tests
      119 sh -x `dirname $0`/run-vw-sanity.sh
      120 # SOA (BPEL, XSLT) and XML UI validation tests
      121 # ant -f xtest/instance/build.xml -Djdkhome=$JDK_TESTS -Dxtest.config=commit-validation-enterprise -Dxtest.instance.name="Enterprise tests" -Dxtest.no.cleanresults=true runtests
      122 ant -f soa.kit/build.xml -Dtest.config=uicommit -Dbuild.test.qa-functional.results.dir=$TESTS_RESULT_DIR -Dcontinue.after.failing.tests=true test
      123 ant -f xml.schema/build.xml -Dtest.config=uicommit -Dbuild.test.qa-functional.results.dir=$TESTS_RESULT_DIR -Dcontinue.after.failing.tests=true test
      124 # CND UI validation tests
      125 # ant -f xtest/instance/build.xml -Djdkhome=$JDK_TESTS -Dxtest.config=commit-validation-cnd -Dxtest.instance.name="CND tests" -Dxtest.no.cleanresults=true runtests
      126 # Profiler UI validation tests
      127 # ant -f xtest/instance/build.xml -Djdkhome=$JDK_TESTS -Dxtest.config=commit-validation-profiler -Dxtest.instance.name="Profiler tests" -Dxtest.no.cleanresults=true runtests
      128 # J2EE UI validation tests
      129 #ant -f xtest/instance/build.xml -Djdkhome=$JDK_TESTS -Dxtest.config=commit-validation-j2ee -Dxtest.instance.name="J2EE tests" -Dxtest.no.cleanresults=true -D"xtest.userdata|com.sun.aas.installRoot"=/hudson/workdir/jobs/trunk/testappsrv/glassfish runtests
      130 # Mobility UI validation tests
      131 # ant -f xtest/instance/build.xml -Djdkhome=$JDK_TESTS -Dxtest.config=commit-validation-mobility -Dxtest.instance.name="Mobility tests" -Dxtest.no.cleanresults=true -Dwtk.dir=/hudson runtests
      132 # UML UI validation tests
      133 # ant -f xtest/instance/build.xml -Djdkhome=$JDK_TESTS -Dxtest.config=commit-validation-uml -Dxtest.instance.name="UML tests" -Dxtest.no.cleanresults=true runtests
      134 # Ruby UI validation tests
      135 # ant -f xtest/instance/build.xml -Djdkhome=$JDK_TESTS -Dxtest.config=commit-validation-ruby -Dxtest.instance.name="Ruby tests" -Dxtest.no.cleanresults=true runtests
      136 # Ruby UI, Profiler UI and CND UI validation tests
      137 ant -f ide.kit/build.xml -Dtest.config=uicommit -Dbuild.test.qa-functional.results.dir=$TESTS_RESULT_DIR -Dcontinue.after.failing.tests=true -Dtest-qa-functional-sys-prop.com.sun.aas.installRoot=/hudson/workdir/jobs/trunk/testappsrv/glassfish test
      138 echo TESTS STARTED: $TESTS_STARTED
      139 echo TESTS FINISHED: `date`
      140 
      141 # Clean up some stuff dumped in the build by tests:
      142 rm -rf nbbuild/netbeans/testtools
      143 rm -f nbbuild/netbeans/bin/hs_err_*
      144 # Check to see if any other unregistered files remain (if so, delete them now so the problem can be fixed in incremental builds) (cf. #111946):
      145 ant clean-untracked-files