You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hama.apache.org by ed...@apache.org on 2008/08/19 04:50:07 UTC
svn commit: r686943 - in /incubator/hama/nightly: hudsonBuildHamaNightly.sh
hudsonBuildHamaPatch.sh processHamaPatchEmail.sh
Author: edwardyoon
Date: Mon Aug 18 19:50:06 2008
New Revision: 686943
URL: http://svn.apache.org/viewvc?rev=686943&view=rev
Log: (empty)
Added:
incubator/hama/nightly/hudsonBuildHamaNightly.sh
incubator/hama/nightly/hudsonBuildHamaPatch.sh
incubator/hama/nightly/processHamaPatchEmail.sh
Added: incubator/hama/nightly/hudsonBuildHamaNightly.sh
URL: http://svn.apache.org/viewvc/incubator/hama/nightly/hudsonBuildHamaNightly.sh?rev=686943&view=auto
==============================================================================
--- incubator/hama/nightly/hudsonBuildHamaNightly.sh (added)
+++ incubator/hama/nightly/hudsonBuildHamaNightly.sh Mon Aug 18 19:50:06 2008
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+ANT_HOME=$1
+FORREST_HOME=$2
+FINDBUGS_HOME=$3
+CLOVER_HOME=$4
+PYTHON_HOME=$5
+ECLIPSE_HOME=$6
+SUPPORT_LIB_DIR=$7
+
+#set -x
+
+ulimit -n 1024
+
+### BUILD_ID is set by Hudson
+trunk=`pwd`/trunk
+
+cd $trunk
+
+### tar target is included in findbugs target
+### run this first before instrumenting classes
+$ANT_HOME/bin/ant -Dversion=$BUILD_ID -Declipse.home=$ECLIPSE_HOME -Dfindbugs.home=$FINDBUGS_HOME -Dforrest.home=$FORREST_HOME clean docs findbugs
+RESULT=$?
+if [ $RESULT != 0 ] ; then
+ echo "Build Failed: remaining tests not run"
+ exit $RESULT
+fi
+mv build/*.tar.gz $trunk
+mv build/test/findbugs $trunk
+mv build/docs/api $trunk
+
+### clean workspace
+$ANT_HOME/bin/ant clean
+
+### Copy in any supporting jar files needed by this process
+cp -r $SUPPORT_LIB_DIR/lib/* ./lib
+
+### run checkstyle and tests with clover
+$ANT_HOME/bin/ant -lib $CLOVER_HOME/lib -Dversion=$BUILD_ID -Drun.clover=true -Dpython.home=$PYTHON_HOME -Dtest.junit.output.format=xml -Dtest.output=yes -Dcompile.c++=yes checkstyle create-c++-configure test generate-clover-reports
+
+
Added: incubator/hama/nightly/hudsonBuildHamaPatch.sh
URL: http://svn.apache.org/viewvc/incubator/hama/nightly/hudsonBuildHamaPatch.sh?rev=686943&view=auto
==============================================================================
--- incubator/hama/nightly/hudsonBuildHamaPatch.sh (added)
+++ incubator/hama/nightly/hudsonBuildHamaPatch.sh Mon Aug 18 19:50:06 2008
@@ -0,0 +1,519 @@
+#!/bin/bash
+
+#set -x
+
+ulimit -n 1024
+
+### The directory of the patch to test. Must be
+### writable by this process.
+PATCH_DIR=$1
+### The directory containing supporting files that need to
+### be copied to the build directory.
+SUPPORT_DIR=$2
+### The complete URL to trigger a build.
+TRIGGER_BUILD_URL=$3
+### The password needed to leave a comment on Jira.
+JIRA_PASSWD=$4
+
+### Setup some variables.
+### JOB_NAME, SVN_REVISION, BUILD_ID, BUILD_NUMBER, and WORKSPACE are set by Hudson
+SVN=/opt/subversion-current/bin/svn
+PS=/usr/ucb/ps
+WGET=/usr/sfw/bin/wget
+GREP=/export/home/nigel/tools/grep/bin/grep
+PATCH=/export/home/nigel/tools/patch/bin/patch
+JIRA=/export/home/nigel/tools/jira_cli/src/cli/jira
+FINDBUGS_HOME=/export/home/nigel/tools/findbugs/latest
+FORREST_HOME=/export/home/nigel/tools/forrest/latest
+
+###############################################################################
+checkout () {
+ echo ""
+ echo ""
+ echo "======================================================================"
+ echo "======================================================================"
+ echo " Testing patch for ${defect}."
+ echo "======================================================================"
+ echo "======================================================================"
+ echo ""
+ echo ""
+ if [[ -d $WORKSPACE/trunk ]] ; then
+ cd $WORKSPACE/trunk
+ $SVN revert -R .
+ rm -rf `$SVN status`
+ $SVN update
+ else
+ cd $WORKSPACE
+ $SVN co http://svn.apache.org/repos/asf/incubator/hama/trunk
+ cd $WORKSPACE/trunk
+ fi
+ return $?
+}
+
+###############################################################################
+setup () {
+ ### Download latest patch file (ignoring .htm and .html)
+ $WGET -q -O $PATCH_DIR/jira http://issues.apache.org/jira/browse/$defect
+ if [[ `$GREP -c 'Patch Available' $PATCH_DIR/jira` == 0 ]] ; then
+ echo "$defect is not \"Patch Available\". Exiting."
+ cleanupAndExit 0
+ fi
+ relativePatchURL=`$GREP -o '"/jira/secure/attachment/[0-9]*/[^"]*' $PATCH_DIR/jira | $GREP -v -e 'htm[l]*$' | sort | tail -1 | $GREP -o '/jira/secure/attachment/[0-9]*/[^"]*'`
+ patchURL="http://issues.apache.org${relativePatchURL}"
+ patchNum=`echo $patchURL | $GREP -o '[0-9]*/' | $GREP -o '[0-9]*'`
+ echo "$defect patch is being downloaded at `date` from"
+ echo "$patchURL"
+ $WGET -q -O $PATCH_DIR/patch $patchURL
+
+ JIRA_COMMENT="Here are the results of testing the latest attachment
+$patchURL
+against trunk revision ${SVN_REVISION}."
+
+ ### Copy in any supporting files needed by this process
+ cp -r $SUPPORT_DIR/lib/* ./lib
+ #PENDING: cp -f $SUPPORT_DIR/etc/checkstyle* ./src/test
+
+ echo ""
+ echo ""
+ echo "======================================================================"
+ echo "======================================================================"
+ echo " Pre-building trunk to determine trunk number"
+ echo " of release audit, javac, and Findbugs warnings."
+ echo "======================================================================"
+ echo "======================================================================"
+ echo ""
+ echo ""
+ $ANT_HOME/bin/ant -Dversion=${SVN_REVISION}_${defect}_PATCH-${patchNum} -DHamaPatchProcess= releaseaudit &> $PATCH_DIR/trunkReleaseAuditWarnings.txt
+ $ANT_HOME/bin/ant -Dversion=${SVN_REVISION}_${defect}_PATCH-${patchNum} -Djavac.args="-Xlint -Xmaxwarns 1000" -DHamaPatchProcess= clean tar &> $PATCH_DIR/trunkJavacWarnings.txt
+ $ANT_HOME/bin/ant -Dversion=${SVN_REVISION}_${defect}_PATCH-${patchNum} -Dfindbugs.home=$FINDBUGS_HOME -DHamaPatchProcess= findbugs &> /dev/null
+ cp $WORKSPACE/trunk/build/test/findbugs/*.xml $PATCH_DIR/trunkFindbugsWarnings.xml
+}
+
+###############################################################################
+### Check for @author tags in the patch
+checkAuthor () {
+ echo ""
+ echo ""
+ echo "======================================================================"
+ echo "======================================================================"
+ echo " Checking there are no @author tags in the patch."
+ echo "======================================================================"
+ echo "======================================================================"
+ echo ""
+ echo ""
+ authorTags=`$GREP -c -i '@author' $PATCH_DIR/patch`
+ echo "There appear to be $authorTags @author tags in the patch."
+ if [[ $authorTags != 0 ]] ; then
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ @author -1. The patch appears to contain $authorTags @author tags which the Hama community has agreed to not allow in code contributions."
+ return 1
+ fi
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ @author +1. The patch does not contain any @author tags."
+ return 0
+}
+
+###############################################################################
+### Check for tests in the patch
+checkTests () {
+ echo ""
+ echo ""
+ echo "======================================================================"
+ echo "======================================================================"
+ echo " Checking there are new or changed tests in the patch."
+ echo "======================================================================"
+ echo "======================================================================"
+ echo ""
+ echo ""
+ testReferences=`$GREP -c -i '/test' $PATCH_DIR/patch`
+ echo "There appear to be $testReferences test files referenced in the patch."
+ if [[ $testReferences == 0 ]] ; then
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ tests included -1. The patch doesn't appear to include any new or modified tests.
+ Please justify why no tests are needed for this patch."
+ return 1
+ fi
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ tests included +1. The patch appears to include $testReferences new or modified tests."
+ return 0
+}
+
+###############################################################################
+### Attempt to apply the patch
+applyPatch () {
+ echo ""
+ echo ""
+ echo "======================================================================"
+ echo "======================================================================"
+ echo " Applying patch."
+ echo "======================================================================"
+ echo "======================================================================"
+ echo ""
+ echo ""
+ $PATCH -E -p0 < $PATCH_DIR/patch
+ if [[ $? != 0 ]] ; then
+ echo "PATCH APPLICATION FAILED"
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ patch -1. The patch command could not apply the patch."
+ return 1
+ fi
+ return 0
+}
+
+###############################################################################
+### Check there are no javadoc warnings
+checkJavadocWarnings () {
+ echo ""
+ echo ""
+ echo "======================================================================"
+ echo "======================================================================"
+ echo " Determining number of patched javadoc warnings."
+ echo "======================================================================"
+ echo "======================================================================"
+ echo ""
+ echo ""
+ $ANT_HOME/bin/ant -Dversion=${SVN_REVISION}_${defect}_PATCH-${patchNum} -DHamaPatchProcess= clean javadoc
+ javadocWarnings=`$GREP -c '\[javadoc\] [0-9]* warning' $WORKSPACE/../builds/$BUILD_ID/log`
+ echo ""
+ echo ""
+ echo "There appear to be $javadocWarnings javadoc warnings generated by the patched build."
+ if [[ $javadocWarnings != 0 ]] ; then
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ javadoc -1. The javadoc tool appears to have generated $javadocWarnings warning messages."
+ return 1
+ fi
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ javadoc +1. The javadoc tool did not generate any warning messages."
+return 0
+}
+
+###############################################################################
+### Check there are no changes in the number of Javac warnings
+checkJavacWarnings () {
+ echo ""
+ echo ""
+ echo "======================================================================"
+ echo "======================================================================"
+ echo " Determining number of patched javac warnings."
+ echo "======================================================================"
+ echo "======================================================================"
+ echo ""
+ echo ""
+ $ANT_HOME/bin/ant -Dversion=${SVN_REVISION}_${defect}_PATCH-${patchNum} -Djavac.args="-Xlint -Xmaxwarns 1000" -DHamaPatchProcess= tar &> $PATCH_DIR/patchJavacWarnings.txt
+
+ ### Compare trunk and patch javac warning numbers
+ if [[ -f $PATCH_DIR/patchJavacWarnings.txt ]] ; then
+ trunkJavacWarnings=`$GREP -o '\[javac\] [0-9]* warning' $PATCH_DIR/trunkJavacWarnings.txt | awk '{total += $2} END {print total}'`
+ patchJavacWarnings=`$GREP -o '\[javac\] [0-9]* warning' $PATCH_DIR/patchJavacWarnings.txt | awk '{total += $2} END {print total}'`
+ echo ""
+ echo ""
+ echo "There appear to be $trunkJavacWarnings javac compiler warnings before the patch and $patchJavacWarnings javac compiler warnings after applying the patch."
+ if [[ $patchJavacWarnings != "" && $trunkJavacWarnings != "" ]] ; then
+ if [[ $patchJavacWarnings > $trunkJavacWarnings ]] ; then
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ javac -1. The applied patch generated $patchJavacWarnings javac compiler warnings (more than the trunk's current $trunkJavacWarnings warnings)."
+ return 1
+ fi
+ fi
+ fi
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ javac +1. The applied patch does not generate any new javac compiler warnings."
+ return 0
+}
+
+###############################################################################
+### Check there are no changes in the number of release audit (RAT) warnings
+checkReleaseAuditWarnings () {
+ echo ""
+ echo ""
+ echo "======================================================================"
+ echo "======================================================================"
+ echo " Determining number of patched release audit warnings."
+ echo "======================================================================"
+ echo "======================================================================"
+ echo ""
+ echo ""
+ $ANT_HOME/bin/ant -Dversion=${SVN_REVISION}_${defect}_PATCH-${patchNum} -DHamaPatchProcess= releaseaudit &> $PATCH_DIR/patchReleaseAuditWarnings.txt
+
+ ### Compare trunk and patch release audit warning numbers
+ if [[ -f $PATCH_DIR/patchReleaseAuditWarnings.txt ]] ; then
+ trunkReleaseAuditWarnings=`$GREP -c '\!?????' $PATCH_DIR/trunkReleaseAuditWarnings.txt`
+ patchReleaseAuditWarnings=`$GREP -c '\!?????' $PATCH_DIR/patchReleaseAuditWarnings.txt`
+ echo ""
+ echo ""
+ echo "There appear to be $trunkReleaseAuditWarnings release audit warnings before the patch and $patchReleaseAuditWarnings release audit warnings after applying the patch."
+ if [[ $patchReleaseAuditWarnings != "" && $trunkReleaseAuditWarnings != "" ]] ; then
+ if [[ $patchReleaseAuditWarnings > $trunkReleaseAuditWarnings ]] ; then
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ release audit -1. The applied patch generated $patchReleaseAuditWarnings release audit warnings (more than the trunk's current $trunkReleaseAuditWarnings warnings)."
+ $GREP '\!?????' $PATCH_DIR/patchReleaseAuditWarnings.txt > $PATCH_DIR/patchReleaseAuditProblems.txt
+ $GREP '\!?????' $PATCH_DIR/trunkReleaseAuditWarnings.txt > $PATCH_DIR/trunkReleaseAuditProblems.txt
+ echo "A diff of patched release audit warnings with trunk release audit warnings." > $PATCH_DIR/releaseAuditDiffWarnings.txt
+ echo "Lines that start with ????? in the release audit report indicate files that do not have an Apache license header." > $PATCH_DIR/releaseAuditDiffWarnings.txt
+ echo "" > $PATCH_DIR/releaseAuditDiffWarnings.txt
+ diff $PATCH_DIR/patchReleaseAuditProblems.txt $PATCH_DIR/trunkReleaseAuditProblems.txt >> $PATCH_DIR/releaseAuditDiffWarnings.txt
+ JIRA_COMMENT_FOOTER="Release audit warnings: http://hudson.zones.apache.org/hudson/job/$JOB_NAME/$BUILD_NUMBER/artifact/trunk/current/releaseAuditDiffWarnings.txt
+$JIRA_COMMENT_FOOTER"
+ return 1
+ fi
+ fi
+ fi
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ release audit +1. The applied patch does not generate any new release audit warnings."
+ return 0
+}
+
+###############################################################################
+### Check there are no changes in the number of Checkstyle warnings
+checkStyle () {
+ echo ""
+ echo ""
+ echo "======================================================================"
+ echo "======================================================================"
+ echo " Determining number of patched checkstyle warnings."
+ echo "======================================================================"
+ echo "======================================================================"
+ echo ""
+ echo ""
+ echo "THIS IS NOT IMPLEMENTED YET"
+ echo ""
+ echo ""
+ $ANT_HOME/bin/ant -Dversion=${SVN_REVISION}_${defect}_PATCH-${patchNum} -DHamaPatchProcess= checkstyle
+ JIRA_COMMENT_FOOTER="Checkstyle results: http://hudson.zones.apache.org/hudson/job/$JOB_NAME/$BUILD_NUMBER/artifact/trunk/build/test/checkstyle-errors.html
+$JIRA_COMMENT_FOOTER"
+ ### TODO: calculate actual patchStyleErrors
+# patchStyleErrors=0
+# if [[ $patchStyleErrors != 0 ]] ; then
+# JIRA_COMMENT="$JIRA_COMMENT
+#
+# checkstyle -1. The patch generated $patchStyleErrors code style errors."
+# return 1
+# fi
+# JIRA_COMMENT="$JIRA_COMMENT
+#
+# checkstyle +1. The patch generated 0 code style errors."
+ return 0
+}
+
+###############################################################################
+### Check there are no changes in the number of Findbugs warnings
+checkFindbugsWarnings () {
+ echo ""
+ echo ""
+ echo "======================================================================"
+ echo "======================================================================"
+ echo " Determining number of patched Findbugs warnings."
+ echo "======================================================================"
+ echo "======================================================================"
+ echo ""
+ echo ""
+ $ANT_HOME/bin/ant -Dversion=${SVN_REVISION}_${defect}_PATCH-${patchNum} -Dfindbugs.home=$FINDBUGS_HOME -DHamaPatchProcess= findbugs
+ if [ $? != 0 ] ; then
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ findbugs -1. The patch appears to cause Findbugs to fail."
+ return 1
+ fi
+JIRA_COMMENT_FOOTER="Findbugs warnings: http://hudson.zones.apache.org/hudson/job/$JOB_NAME/$BUILD_NUMBER/artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
+$JIRA_COMMENT_FOOTER"
+ cp $WORKSPACE/trunk/build/test/findbugs/*.xml $PATCH_DIR/patchFindbugsWarnings.xml
+ $FINDBUGS_HOME/bin/setBugDatabaseInfo -timestamp "01/01/1999" \
+ $PATCH_DIR/trunkFindbugsWarnings.xml \
+ $PATCH_DIR/trunkFindbugsWarnings.xml
+ $FINDBUGS_HOME/bin/setBugDatabaseInfo -timestamp "01/01/2000" \
+ $PATCH_DIR/patchFindbugsWarnings.xml \
+ $PATCH_DIR/patchFindbugsWarnings.xml
+ $FINDBUGS_HOME/bin/computeBugHistory -output $PATCH_DIR/findbugsMerge.xml \
+ $PATCH_DIR/trunkFindbugsWarnings.xml \
+ $PATCH_DIR/patchFindbugsWarnings.xml
+ findbugsWarnings=`$FINDBUGS_HOME/bin/filterBugs -first "01/01/2000" $PATCH_DIR/findbugsMerge.xml \
+ $WORKSPACE/trunk/build/test/findbugs/newPatchFindbugsWarnings.xml | /usr/bin/nawk '{print $1}'`
+ $FINDBUGS_HOME/bin/convertXmlToText -html \
+ $WORKSPACE/trunk/build/test/findbugs/newPatchFindbugsWarnings.xml \
+ $WORKSPACE/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
+ if [[ $findbugsWarnings != 0 ]] ; then
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ findbugs -1. The patch appears to introduce $findbugsWarnings new Findbugs warnings."
+ return 1
+ fi
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ findbugs +1. The patch does not introduce any new Findbugs warnings."
+ return 0
+}
+
+###############################################################################
+### Run the test-core target
+runCoreTests () {
+ echo ""
+ echo ""
+ echo "======================================================================"
+ echo "======================================================================"
+ echo " Running core tests."
+ echo "======================================================================"
+ echo "======================================================================"
+ echo ""
+ echo ""
+ ### Kill any rogue build processes from the last attempt
+ $PS -auxwww | $GREP HamaPatchProcess | /usr/bin/nawk '{print $2}' | /usr/bin/xargs -t -I {} /usr/bin/kill -9 {} > /dev/null
+
+ $ANT_HOME/bin/ant -Dversion=${SVN_REVISION}_${defect}_PATCH-${patchNum} -DHamaPatchProcess= -Dtest.junit.output.format=xml -Dtest.output=yes -Dcompile.c++=yes -Dforrest.home=$FORREST_HOME create-c++-configure docs tar test-core
+ if [[ $? != 0 ]] ; then
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ core tests -1. The patch failed core unit tests."
+ return 1
+ fi
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ core tests +1. The patch passed core unit tests."
+ return 0
+}
+
+###############################################################################
+### Run the test-contrib target
+runContribTests () {
+ echo ""
+ echo ""
+ echo "======================================================================"
+ echo "======================================================================"
+ echo " Running contrib tests."
+ echo "======================================================================"
+ echo "======================================================================"
+ echo ""
+ echo ""
+ ### Kill any rogue build processes from the last attempt
+ $PS -auxwww | $GREP HamaPatchProcess | /usr/bin/nawk '{print $2}' | /usr/bin/xargs -t -I {} /usr/bin/kill -9 {} > /dev/null
+
+ $ANT_HOME/bin/ant -Dversion=${SVN_REVISION}_${defect}_PATCH-${patchNum} -DHamaPatchProcess= -Dtest.junit.output.format=xml -Dtest.output=yes test-contrib
+ if [[ $? != 0 ]] ; then
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ contrib tests -1. The patch failed contrib unit tests."
+ return 1
+ fi
+ JIRA_COMMENT="$JIRA_COMMENT
+
+ contrib tests +1. The patch passed contrib unit tests."
+ return 0
+}
+
+###############################################################################
+### Submit a comment to the defect's Jira
+submitJiraComment () {
+ local result=$1
+ if [[ $result == 0 ]] ; then
+ comment="+1 overall. $JIRA_COMMENT
+
+$JIRA_COMMENT_FOOTER"
+ else
+ comment="-1 overall. $JIRA_COMMENT
+
+$JIRA_COMMENT_FOOTER"
+ fi
+ echo ""
+ echo ""
+ echo "======================================================================"
+ echo "======================================================================"
+ echo " Adding comment to Jira."
+ echo "======================================================================"
+ echo "======================================================================"
+ echo ""
+ echo ""
+ echo "$comment"
+
+ ### Update Jira with a comment
+ export USER=hudson
+ $JIRA -s issues.apache.org/jira login hamaqa $JIRA_PASSWD
+ $JIRA -s issues.apache.org/jira comment $defect "$comment"
+ $JIRA -s issues.apache.org/jira logout
+}
+
+###############################################################################
+### Cleanup files
+cleanupAndExit () {
+ local result=$1
+ if [ -e $PATCH_DIR ] ; then
+ mv $PATCH_DIR $WORKSPACE/trunk
+ fi
+ echo ""
+ echo ""
+ echo "======================================================================"
+ echo "======================================================================"
+ echo " Finished build."
+ echo "======================================================================"
+ echo "======================================================================"
+ echo ""
+ echo ""
+ exit $result
+}
+
+###############################################################################
+###############################################################################
+###############################################################################
+
+export patchNum=""
+export JIRA_COMMENT=""
+export JIRA_COMMENT_FOOTER="Console output: http://hudson.zones.apache.org/hudson/job/$JOB_NAME/$BUILD_NUMBER/console
+
+This message is automatically generated."
+
+### Retrieve the defect number
+if [ ! -e $PATCH_DIR/defectNum ] ; then
+ echo "Could not determine the patch to test. Exiting."
+ cleanupAndExit 0
+fi
+export defect=`cat $PATCH_DIR/defectNum`
+if [ -z "$defect" ] ; then
+ echo "Could not determine the patch to test. Exiting."
+ cleanupAndExit 0
+fi
+
+checkout
+RESULT=$?
+if [[ $? != 0 ]] ; then
+ ### Resubmit build.
+ $WGET -q -O $PATCH_DIR/build $TRIGGER_BUILD_URL
+ exit 100
+fi
+setup
+checkAuthor
+RESULT=$?
+checkTests
+(( RESULT = RESULT + $? ))
+applyPatch
+if [[ $? != 0 ]] ; then
+ submitJiraComment 1
+ cleanupAndExit $?
+fi
+checkJavadocWarnings
+(( RESULT = RESULT + $? ))
+checkJavacWarnings
+(( RESULT = RESULT + $? ))
+checkReleaseAuditWarnings
+(( RESULT = RESULT + $? ))
+checkStyle
+(( RESULT = RESULT + $? ))
+checkFindbugsWarnings
+(( RESULT = RESULT + $? ))
+runCoreTests
+(( RESULT = RESULT + $? ))
+runContribTests
+(( RESULT = RESULT + $? ))
+JIRA_COMMENT_FOOTER="Test results: http://hudson.zones.apache.org/hudson/job/$JOB_NAME/$BUILD_NUMBER/testReport/
+$JIRA_COMMENT_FOOTER"
+
+submitJiraComment $RESULT
+cleanupAndExit $RESULT
Added: incubator/hama/nightly/processHamaPatchEmail.sh
URL: http://svn.apache.org/viewvc/incubator/hama/nightly/processHamaPatchEmail.sh?rev=686943&view=auto
==============================================================================
--- incubator/hama/nightly/processHamaPatchEmail.sh (added)
+++ incubator/hama/nightly/processHamaPatchEmail.sh Mon Aug 18 19:50:06 2008
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+set -x
+
+### The Jira project name. Examples: HADOOP or RIVER or LUCENE
+PROJECT=$1
+### The directory to accumulate the patch queue. Must be
+### writable by this process.
+QUEUE_DIR=$2
+
+GREP=/export/home/nigel/tools/grep/bin/grep
+LOG=$QUEUE_DIR/log.txt
+
+### Scan email
+while read line
+do
+ ### Check to see if this issue was just made "Patch Available"
+ if [[ `echo $line | $GREP -c "Status: Patch Available"` == 1 ]] ; then
+ patch=true
+ fi
+ ### Look for issue number
+ if [[ `echo $line | $GREP -c "Key: $PROJECT-"` == 1 ]] ; then
+ defect=`expr "$line" : ".*\(${PROJECT}-[0-9]*\)"`
+ break
+ fi
+done
+
+### If this email indicates a new patch, start a build
+if [[ -n $patch && ! -d $QUEUE_DIR/$defect ]] ; then
+ echo "$defect is being processed at `date`" >> $LOG
+ mkdir $QUEUE_DIR/$defect
+
+ ### Write the defect number to a file so buildTest.sh
+ ### knows which patch to test.
+ echo $defect > $QUEUE_DIR/$defect/defectNum
+
+ ### Since this script is run by the 'daemon' user by sendmail,
+ ### make sure everything it creates is group writable
+ chmod -R a+w $QUEUE_DIR/$defect
+fi
+exit 0
+