#!/bin/sh #set -x umask 0022 # variables START_TIME=`date -u +%Y%m%d-%H%M` WORKING_DIR="/shared/technology/epp/epp_build/33" ECLIPSE_DIR="${WORKING_DIR}/eclipse" DOWNLOAD_DIR="/shared/technology/epp/epp_build/33/download" VM="/opt/ibm/java2-ppc-50/bin/java" MARKERFILENAME=".epp.nightlybuild" STATUSFILENAME="status33.stub" LOCKFILE="/tmp/epp.build33.lock" CVSPATH="org.eclipse.epp/releng/org.eclipse.epp.config" PACKAGES="cpp java jee rcp" PLATFORMS="win32.win32.x86.zip linux.gtk.x86.tar.gz linux.gtk.x86_64.tar.gz macosx.carbon.ppc.tar.gz" BASENAME="europa-winter" BUILDSUCCESS="" ############################################################################### # 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}" cd ${WORKING_DIR} cvs -q -d :pserver:anonymous@dev.eclipse.org:/cvsroot/technology checkout -P ${CVSPATH} # prepare config files (rename and relocate) cp ${WORKING_DIR}/${CVSPATH}/Eclipse_IDE_for_C_C++_Developers/EclipseCDT_332.xml ${WORKING_DIR}/${CVSPATH}/eclipse_cpp_332.xml cp ${WORKING_DIR}/${CVSPATH}/Eclipse_IDE_for_Java_Developers/EclipseJava_332.xml ${WORKING_DIR}/${CVSPATH}/eclipse_java_332.xml cp ${WORKING_DIR}/${CVSPATH}/Eclipse_for_RCP_Plugin_Developers/EclipseRCP_332.xml ${WORKING_DIR}/${CVSPATH}/eclipse_rcp_332.xml cp ${WORKING_DIR}/${CVSPATH}/Eclipse_IDE_for_JEE_Developers/EclipseJavaEE_332.xml ${WORKING_DIR}/${CVSPATH}/eclipse_jee_332.xml # build echo "...starting build" # create packages for PACKAGENAME in ${PACKAGES}; do PACKAGECONFIGURATION="${WORKING_DIR}/${CVSPATH}/eclipse_"${PACKAGENAME}"_332.xml" echo "...creating package ${PACKAGENAME} with config ${PACKAGECONFIGURATION}" cd ${ECLIPSE_DIR} WORKSPACE=${WORKING_DIR}/workspace_${PACKAGENAME} rm -rf ${WORKSPACE} mkdir ${WORKSPACE} ${ECLIPSE_DIR}/eclipse \ -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; done echo " ...removing workspace" rm -rf ${WORKSPACE} else echo "...failed while building package ${PACKAGENAME}" echo "...workspace ${workspace} not removed" fi done # create checksum files echo "...creating checksum files" cd ${TARGET_DIR} for II in *eclipse*; do md5sum $II >>$II.md5 sha1sum $II >>$II.sha1; done # create index file cat >>$TARGET_DIR/index.html < EPP Europa Build Status ${START_TIME}
EPP Europa Build Status 

EPP Europa Build Status ${START_TIME}

Endofmessage for NAME in ${PACKAGES}; 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 $PACKAGES; 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 # 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 ${DOWNLOAD_DIR}/${STATUSFILENAME} /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}