10 BUILD_ID=$USERNAME-private
12 dir=`dirname $0`/../..
15 hg --config extensions.purge= clean --all || exit
18 DIST=$PWD/nbbuild/dist
21 # XXX should use hg id as the build number; timestamp is useless!
23 # YYYYMMDDhhmmss timestamp
24 BUILDNUMBER=`echo $BUILD_ID | tr -d _-`
27 ant -Dbuildnum=$BUILDNUM -Dbuildnumber=$BUILDNUMBER verify-libs-and-licenses build-nozip || exit
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
31 # ant -Dbuildnum=$BUILD_ID build-nbms -Dmoduleconfig=all -Dbase.nbm.target.dir=${DIST}/nbms || exit
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
40 BASENAME=netbeans-$BUILDNUM
42 mkdir -p $DIST/zip/moduleclusters
44 find netbeans | egrep -v "netbeans/(extra|testtools)" | zip -q $DIST/zip/$BASENAME.zip -@ || exit
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
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]*"
59 find * | egrep -v "^($expat)(/|$)" | zip -q $DIST/zip/moduleclusters/$BASENAME-nb6.0-etc.zip -@ || exit
61 cp -p $DIST/zip/moduleclusters/$BASENAME-platform.zip $DIST/zip/
64 generated=nbbuild/build/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
76 sigtest_prev=`pwd`/../lastSuccessful/archive/nbbuild/build/sigtest/snapshot
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"
89 echo "http://deadlock.netbeans.org/hudson/job/$JOB_NAME/$BUILD_NUMBER/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`";
95 expr "$content" : ".*CDATA\[\(.*\)\]\].*"
96 ) | mail -s "`basename $report` - sigchanges in $JOB_NAME build #$BUILD_NUMBER" $sigtest_email
99 echo SigTest: Checking All Changes Done
101 echo SigTest: Generating Golden Files
103 echo SigTest: Generating Golden Files Done
105 echo SigTest: Incompatible Changes
106 ant check-sigtests-release
107 echo SigTest: Incompatible Changes Done
109 ############### Commit validation tests ##########################
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`
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