#!/bin/sh #set -x umask 0022 ulimit -n 2048 # variables START_TIME=`date -u +%Y%m%d-%H%M` WORKING_DIR="/shared/technology/epp/epp_build/34" ECLIPSE_DIR="${WORKING_DIR}/eclipse" DOWNLOAD_DIR="/shared/technology/epp/epp_build/34/download" VM="/opt/ibm/java2-ppc-50/bin/java" VMPARAM="-Xms256m -Xmx768m -Dosgi.bundlefile.limit=800" MARKERFILENAME=".epp.nightlybuild" STATUSFILENAME="status34.stub" TESTSTATUSFILENAME="status34test.stub" LOCKFILE="/tmp/epp.build34.lock" CVSPATH="org.eclipse.epp/releng/org.eclipse.epp.config" DOWNLOADPACKAGES="cpp java jee rcp" INCUBATIONPACKAGES="modeling" PLATFORMS="win32.win32.x86.zip linux.gtk.x86.tar.gz linux.gtk.x86_64.tar.gz macosx.carbon.ppc.tar.gz" BASENAME="ganymede-SR2-RC3" BUILDSUCCESS="" ############################################################################### . ${WORKING_DIR}/${CVSPATH}/tools/functions.sh . ${WORKING_DIR}/${CVSPATH}/tools/incubation.sh # only one build process allowed if [ -e ${LOCKFILE} ]; then echo "${START_TIME} EPP build - lockfile ${LOCKFILE} exists" >/dev/stderr exit 1 fi trap "rm -f ${LOCKFILE}; exit" INT TERM EXIT touch ${LOCKFILE} # create target directory TARGET_DIR="${WORKING_DIR}/${START_TIME}" mkdir ${TARGET_DIR} touch ${TARGET_DIR}/${MARKERFILENAME} # log to file exec 1>${TARGET_DIR}/eppbuild.log 2>&1 # check-out configuration echo "...checking out configuration to ${WORKING_DIR}" cvs -q -d :pserver:anonymous@dev.eclipse.org:/cvsroot/technology checkout -P ${CVSPATH} pullAllConfigFiles ${WORKING_DIR}/${CVSPATH}/packages_map.txt ${TARGET_DIR} # build echo "...starting build" # create packages for PACKAGENAME in ${ALL_PACKAGE_NAMES}; do PACKAGECONFIGURATION="${TARGET_DIR}/eclipse_"${PACKAGENAME}"_342.xml" echo "...creating package ${PACKAGENAME} with config ${PACKAGECONFIGURATION}" cd ${ECLIPSE_DIR} WORKSPACE=${WORKING_DIR}/workspace_${PACKAGENAME} rm -rf ${WORKSPACE} mkdir ${WORKSPACE} ${ECLIPSE_DIR}/eclipse \ -nosplash \ -application org.eclipse.epp.packaging.core.application \ -data ${WORKSPACE} \ -consoleLog \ -vm ${VM} \ ${PACKAGECONFIGURATION} \ 2>&1 1>${TARGET_DIR}/${PACKAGENAME}.log if [ $? = "0" ]; then echo -n "...successfully finished ${PACKAGENAME} package build" BUILDSUCCESS="${BUILDSUCCESS} ${PACKAGENAME}" cd ${WORKSPACE} for II in eclipse*; do mv ${II} ${TARGET_DIR}/${START_TIME}\_$II md5sum ${TARGET_DIR}/${START_TIME}\_$II >${TARGET_DIR}/${START_TIME}\_$II.md5 sha1sum ${TARGET_DIR}/${START_TIME}\_$II >>${TARGET_DIR}/${START_TIME}\_$II.sha1 done echo " ...removing workspace" rm -rf ${WORKSPACE} else echo "...failed while building package ${PACKAGENAME}" echo "...workspace ${workspace} not removed" fi done # create index file cat >>$TARGET_DIR/index.html < EPP Ganymede Build Status ${START_TIME}
EPP Ganymede Build Status 

EPP Ganymede Build Status ${START_TIME}

Endofmessage for NAME in ${ALL_PACKAGE_NAMES}; do if [[ "$BUILDSUCCESS" == *${NAME}* ]] then cat >>$TARGET_DIR/index.html < Endofmessage for PLATFORMEXTENSION in ${PLATFORMS}; do cat >>$TARGET_DIR/index.html < package [md5] [sha1] Endofmessage done cat >>$TARGET_DIR/index.html < Endofmessage else cat >>$TARGET_DIR/index.html < Endofmessage fi done cat >>$TARGET_DIR/index.html < Endofmessage # create status file echo "" >>$TARGET_DIR/$STATUSFILENAME echo "" >>$TARGET_DIR/$STATUSFILENAME for PACKAGENAME in $DOWNLOADPACKAGES; do if [[ "$BUILDSUCCESS" == *$PACKAGENAME* ]] then cat >>$TARGET_DIR/$STATUSFILENAME < Success
win32 | other Endofmessage else cat >>$TARGET_DIR/$STATUSFILENAME < Fail Endofmessage fi done echo "
" >>$TARGET_DIR/$STATUSFILENAME # create 2nd status file echo "" >>$TARGET_DIR/$TESTSTATUSFILENAME echo "" >>$TARGET_DIR/$TESTSTATUSFILENAME for PACKAGENAME in ${ALL_PACKAGE_NAMES}; do if [[ "$BUILDSUCCESS" == *$PACKAGENAME* ]] then cat >>$TARGET_DIR/$TESTSTATUSFILENAME < Success
win32 | other Endofmessage else cat >>$TARGET_DIR/$TESTSTATUSFILENAME < Fail Endofmessage fi done echo "
" >>$TARGET_DIR/$TESTSTATUSFILENAME for INCUBATIONPACKAGE in ${INCUBATIONPACKAGES}; do incubationLinkFix $TARGET_DIR/index.html eclipse-${INCUBATIONPACKAGE}-${BASENAME} ${START_TIME} incubationLinkFix $TARGET_DIR/$STATUSFILENAME eclipse-${INCUBATIONPACKAGE}-${BASENAME} ${START_TIME} incubationLinkFix $TARGET_DIR/$TESTSTATUSFILENAME eclipse-${INCUBATIONPACKAGE}-${BASENAME} ${START_TIME} done # move everything to download area echo "...moving files to download directory ${DOWNLOAD_DIR}" rsync -a --stats ${WORKING_DIR}/${START_TIME} ${DOWNLOAD_DIR} if [ $? = "0" ]; then echo -n "...files successfully moved." rm -r ${WORKING_DIR}/${START_TIME} echo " Directory ${WORKING_DIR}/${START_TIME} removed." else echo "...failed moving files. Not deleting source files." fi # remove 'some' (which?) files from the download server echo "...remove oldest build from download directory ${DOWNLOAD_DIR}" cd ${DOWNLOAD_DIR} TOBEDELETED_TEMP=`find . -name ${MARKERFILENAME} | grep -v "\./${MARKERFILENAME}" | sort | head -n 1` TOBEDELETED_DIR=`echo ${TOBEDELETED_TEMP} | cut -d "/" -f 2` echo "...removing ${TOBEDELETED_DIR} from ${DOWNLOAD_DIR}" rm -r ${TOBEDELETED_DIR} # link results somehow in a single file echo "...recreate ${DOWNLOAD_DIR}/${STATUSFILENAME}" rm ${DOWNLOAD_DIR}/${STATUSFILENAME} cd ${DOWNLOAD_DIR} for FILE in `ls -r */${STATUSFILENAME}` do echo "...adding $FILE" cat ${FILE} >>${DOWNLOAD_DIR}/${STATUSFILENAME} done cp -a ${DOWNLOAD_DIR}/${STATUSFILENAME} /home/data/httpd/download.eclipse.org/technology/epp/downloads/testing/ cp -a ${DOWNLOAD_DIR}/${STATUSFILENAME} /home/data/httpd/download.eclipse.org/technology/epp/downloads/testing/status.stub # link results somehow in a 2nd single file echo "...recreate ${DOWNLOAD_DIR}/${TESTSTATUSFILENAME}" rm ${DOWNLOAD_DIR}/${TESTSTATUSFILENAME} cd ${DOWNLOAD_DIR} for FILE in `ls -r */${TESTSTATUSFILENAME}` do echo "...adding $FILE" cat ${FILE} >>${DOWNLOAD_DIR}/${TESTSTATUSFILENAME} done cp -a ${DOWNLOAD_DIR}/${TESTSTATUSFILENAME} /home/data/httpd/download.eclipse.org/technology/epp/downloads/testing/ # remove lockfile rm ${LOCKFILE} ## EOF
Package Windows Linux 32 GTK Linux 64 GTK Mac OSX
${NAME}${NAME} Fail Fail Fail Fail
${START_TIME}
${START_TIME}