#!/bin/sh
# environment variables for my project - change to match yours
export JAVA_HOME="/usr/java/java"
export ANT_HOME="/home/builder/apache-ant-1.7.1"
export ANT_OPTS="-Xmx512m"
export PATH="$JAVA_HOME/bin:$ANT_HOME/bin:$PATH"
export PYTHON_HOME="/home/builder/Python-2.6.4"
export P4USER=dudley
export P4PORT=perforce:1666
export P4CLIENT=buildclient
# my email address
ADMINEMAIL="admin-email-address"
buildtheapp ()
{
#Let us build the app
p4 sync //depot/...@$SYNCTO
#using ant to compile, errors sent to build.err
ant >build.out 2>build.err
ERROR_LOG="./build.err"
if [ -s "$ERROR_LOG" ];
then
BUILDFAILED=1
echo "The build has failed."
echo "bad" >lastBuildStatus
else
echo "good" >lastBuildStatus
fi
}
buildIsStillBroken ()
{
for var3 in `cut -f 2 -d "=" badbuild`
do
# echo $var3
export BADBUILD=$var3
done
p4 describe -s $BADBUILD >cldesc
awk '{ FS = "@" ; print $4 }' cldesc >clparse1
sed s/@/" "/ clparse1 >clparse2
for var1 in `cut -f 1 -d " " clparse2 `
do
echo "$var1"
export SUBMITTER=$var1
echo "Perforce user = $SUBMITTER"
done
SUBMITTEREMAIL=`p4 user -o $SUBMITTER | grep Email: \
| grep -v \# | cut -b8-`
echo "$submitteremail"
FULLEMAIL="'$SUBMITTEREMAIL','$ADMINEMAIL'"
sed -e s/SENDMAILTO/$FULLEMAIL/ stillBrokenTemplate >stillBroken1
sed -e s/CHANGELISTNUMBER/$SYNCTO/ stillBroken1 >stillBroken.py
python stillBroken.py
}
for var3 in `cut -f 2 -d "=" lastBuildStatus `
do
# echo $var3
export LASTBUILDSTATUS=$var3
done
for var1 in `cut -f 2 -d "=" testCompile.ini `
do
# echo "last build was $var1 "
export LASTCHANGE=$var1
done
# echo $LASTCHANGE
check
SYNC_RESULTS="./p4syncResult.txt"
if [ -s "$SYNC_RESULTS" ];
then
BUILDIT="1"
else
# p4review.py
p4changes
for var2 in `cut -f 2 -d "=" p4latestChange.txt `
do
echo "last change was $var1 "
export LASTCHANGE=$var2
sed -e s/clnumb=$var1/clnumb=$var2/ testCompile.ini >templast
cp templast testCompile.ini
done
exit
sed -e /s
fi
let SYNCTO=$var1+1
echo "syncing to $SYNCTO "
p4 sync -n //depot/...@$SYNCTO >p4syncPreview.txt
if [ -s "./p4syncPreview.txt" ];
then
BUILDIT="2"
sed -e s/clnumb=$var1/clnumb=$SYNCTO/ testCompile.ini >templast
cp templast testCompile.ini
else
p4changes
# echo "sync to $var1 "
sed -e s/clnumb=$var1/clnumb=$SYNCTO/ testCompile.ini >templast
cp templast testCompile.ini
fi
if [ $BUILDIT = "2" ] ;
then
echo "we have a build to cook..."
if [ $LASTBUILDSTATUS = "bad" ] ;
then
echo "last build was bad";
sed -e s/CHANGELISTNUMBER/$SYNCTO/ testCompileErrorTemplate >testCompileError.py
sed -e s/email/$EMAIL/ successTemp.py >successTemp1
sed -e s/CHANGELISTNUMBER/$SYNCTO/ successTemp1 >buildGood.py
buildtheapp
if [ "$BUILDFAILED" = "1" ] ;
then
p4 describe -s $SYNCTO >change.txt
sed -e s/clnumb=$var1/clnumb=$SYNCTO/ testCompile.ini >templast
cp templast testCompile.ini
buildIsStillBroken
else
python buildGood.py
fi
fi
if [ $LASTBUILDSTATUS = "good" ] ;
then
echo "last build was good"
sed -e s/CHANGELISTNUMBER/$SYNCTO/ testCompileErrorTemplate >testCompileError.py
sed -e s/CHANGELISTNUMBER/$SYNCTO/ successTemp.py >buildGood.py
buildtheapp
if [ "$BUILDFAILED" = "1" ] ;
then
sed -e s/clnumb=$var1/clnumb=$SYNCTO/ testCompile.ini >templast
cp templast testCompile.ini
echo "$SYNCTO">badbuild
echo "this one failed"
python testCompileError.py
fi
fi
fi
# |
Change |
User |
Description |
Committed |
|
#1
|
19006 |
kosinski |
initial put of testCompile project. |
|
|