commonScriptsDir=$writableBuildRoot/build/org.eclipse.dash.common.releng/tools/scripts
mkdir -p $commonScriptsDir
cd $commonScriptsDir
configfile=$commonScriptsDir/../../server.properties
export HOME=$writableBuildRoot
if [ "x$javaHome" != "x" ]; then
export JAVA_HOME=$javaHome;
else # use default
export JAVA_HOME=$($commonScriptsDir/readProperty.sh $configfile JAVA_HOME)
javaHome="$JAVA_HOME"
fi
export ANT_HOME=$($commonScriptsDir/readProperty.sh $configfile ANT_HOME);
ANT_BIN=$($commonScriptsDir/readProperty.sh $configfile ANT_BIN);
if [ "x$ANT_BIN" != "x" ]; then
export ANT=$ANT_BIN
else
export ANT=$ANT_HOME"/bin/ant";
fi
# get path to PHP interpreter
if [ -x /usr/bin/php ]; then
PHP=/usr/bin/php
elif [ -x /usr/bin/php5 ]; then
PHP=/usr/bin/php5
elif [ -x /usr/bin/php4 ]; then
PHP=/usr/bin/php4
else
PHP=php
fi
projectPath=modeling/$projectName/$subprojectName;
hasProblem="";
hasFailed="";
downloadsDir=$writableBuildRoot/build/downloads
buildDir=$writableBuildRoot/build/$projectName/$subprojectName/downloads/drops/$version/$buildType$buildTimestamp
mkdir -p $buildDir/eclipse; cd $buildDir;
buildcfg="$buildDir/build.cfg";
cat $tmpfile >> $buildcfg;
echo "" >> $buildcfg;
rm -fr $tmpfile
echo "skipFetch=true" >> $buildcfg;
echo "localSourceCheckoutDir=$localSourceCheckoutDir" >> $buildcfg
# Defaults
quietCVS=-Q
commonRelengBranch="HEAD"
cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/technology $quietCVS ex -r $commonRelengBranch -d org.eclipse.dash.common.releng org.eclipse.dash/athena/org.eclipse.dash.commonbuilder/org.eclipse.dash.commonbuilder.releng"
relengBuilderDir=$buildDir/org.eclipse.$subprojectName2.releng
relengCommonBuilderDir=$buildDir/org.eclipse.dash.common.releng
relengBaseBuilderDir=$buildDir/org.eclipse.releng.basebuilder
echo "java.home=$JAVA_HOME" >> $buildcfg;
if [[ $depsFile != "" ]]; then
if [[ -f $depsFile ]]; then
depNum=$(cat $depsFile | grep "$subprojectName=" | tail -1); depNum=${depNum%%$subprojectName=*};
SDKURL=$(find $buildDir -maxdepth 1 -name "$projectName-$subprojectName-*SDK*.zip" | tail -1);
# TODO: support non-standard SDK names (eg., GEF-SDK*.zip)
if [[ $SDKURL != "" ]]; then
SDKURL=${SDKURL##$buildDir}; SDKURL=${SDKURL##*/};
SDKURL=http://$hostname/$projectPath/downloads/drops/$version/$buildType$buildTimestamp/$SDKURL;
if [[ -w $depsFile ]]; then
echo "$depNum$subprojectName=$SDKURL" >> $depsFile;
echo "[promote] $SDKURL ($depNum$subprojectName) appended to $depsFile.";
else
echo "[promote] *** WARNING: File $depsFile is not writable. Add this manually:";
echo "$depNum$subprojectName=$SDKURL"
echo "[promote] ***";
fi
else
echo "[start] *** WARNING: no SDK zip found in $buildDir. ***";
fi
else
echo "[start] *** WARNING: cannot store SDK. File $depsFile does not exist. ***";
fi
fi
# should set noclean=1, hasProblem/hasFailed & cc: default email address
# if there is a problem in the build
checkBuildStatus()
{
projectNameActual=$projectName;
checkBuildStatusURL="http://$hostname/modeling/build/checkBuildStatus.php?parent=$topprojectName&top=$projectName&project=$subprojectName&version=$version";
checkBuildStatusURL=$checkBuildStatusURL"&buildID=$buildType$buildTimestamp";
echo "[start] Checking build status from $checkBuildStatusURL ...";
result=$(wget "$checkBuildStatusURL" -O - 2>/dev/null);
hasProblem=$(echo $result | egrep "FAIL|ERROR| F| E");
hasFailed=$(echo $result | egrep "FAIL| F");
isUnknown=$(echo $result | egrep "UNKNOWN");
if [[ $hasFailed ]]; then noclean=1; fi
# special case for emf/emft
if [[ $isUnknown ]] && [[ $projectName == "emf" ]]; then
projectName2="emft";
checkBuildStatusURL="http://$hostname/modeling/build/checkBuildStatus.php?parent=$topprojectName&top=$projectName2&project=$subprojectName&version=$version";
checkBuildStatusURL=$checkBuildStatusURL"&buildID=$buildType$buildTimestamp";
echo "[start] Checking build status from $checkBuildStatusURL ...";
result=$(wget "$checkBuildStatusURL" -O - 2>/dev/null);
hasProblem=$(echo $result | egrep "FAIL|ERROR| F| E");
hasFailed=$(echo $result | egrep "FAIL| F");
isUnknown=$(echo $result | egrep "UNKNOWN");
if [[ ! $isUnknown ]]; then
projectNameActual=$projectName2;
fi
if [[ $hasFailed ]]; then noclean=1; fi
fi
if [[ $hasProblem ]]; then
emailDefault=$($commonScriptsDir/readProperty.sh $configfile emailDefault);
emailDefault=${emailDefault#*=> \"};
emailDefault=${emailDefault%%\"*};
if [[ ! $email ]]; then
email=$emailDefault;
elif [[ $email ]] && [[ $emailDefault ]]; then
email=$email","$emailDefault;
fi
fi
}
# must call checkBuildStatus before sendEmail to ensure we have all the right email addresses listed (user-defined + default/backup)
sendEmail ()
{
if [[ $email ]]; then
$commonScriptsDir/executeCommand.sh "$PHP -q $commonScriptsDir/sendEmail.php \
-email $email -proj $projectNameActual -sub $subprojectName \
-branch $branch -version $version -buildID $buildType$buildTimestamp \
-hostname $hostname -parent $topprojectName";
fi
}
rm -fr $buildDir/org.eclipse.dash.common.releng
rm -fr $buildDir/org.eclipse.$subprojectName2.releng
rm -fr $buildDir/org.eclipse.releng.basebuilder
rm -fr $buildDir/eclipse
rm -fr $buildDir/testing