| #!/bin/sh |
| # |
| # The eclipse directory from which eclipse will be started for building and testing. |
| # This eclipse instance will be the build host |
| # the AntRunner application is started within this eclipse installation |
| # |
| # |
| # Reset path |
| PATH=/bin:/usr/bin |
| export PATH |
| # classpath is evil |
| export CLASSPATH="" |
| |
| # |
| # |
| # ----------------- change these ------------------------------ |
| # or use the arguments to this script |
| # |
| export ECLIPSE_HOME="${ECLIPSE_HOME:-/usr/eclipse}" |
| export JAVA_HOME="${JAVA_HOME:-/usr/java/jdk1.5.0_11}" |
| export BUILD_DIRECTORY="${BUILD_DIRECTORY:-$HOME/builds/org.eclipse.bpel}" |
| # -------------------------------------------------------------- |
| export STARTUP_JAR="${ECLIPSE_HOME}/startup.jar" |
| # |
| function Usage { |
| echo "usage: `basename $0` [--java-home=dir] [--eclipse-home=dir] [--skip-build]" >&2 |
| echo " [--skip-site] [--build-directory=dir]" >&2 |
| echo " " >&2 |
| echo " JAVA_HOME=${JAVA_HOME}" >&2 |
| echo " ECLIPSE_HOME=${ECLIPSE_HOME}" >&2 |
| echo "BUILD_DIRECTORY=${BUILD_DIRECTORY}" >&2 |
| exit 2 |
| } |
| |
| skipBuild=0 |
| skipSite=0 |
| # |
| # arguments |
| # |
| while [ $# -gt 0 ]; do |
| case $1 in |
| --eclipse-home) |
| export ECLIPSE_HOME="$2" |
| shift |
| ;; |
| --eclipse-home=*) |
| export ECLIPSE_HOME="${1/--eclipse-home=}" |
| ;; |
| |
| --java-home) |
| export JAVA_HOME="$2" |
| shift |
| ;; |
| |
| --java-home=*) |
| export JAVA_HOME="${1/--java-home=}" |
| ;; |
| |
| --skip-build) |
| skipBuild=1 |
| ;; |
| |
| --skip-site) |
| skipSite=1 |
| ;; |
| |
| --build-directory) |
| export BUILD_DIRECTORY="$2" |
| shift |
| ;; |
| |
| --build-directory=*) |
| export BUILD_DIRECTORY="${1/--build-directory=}" |
| ;; |
| |
| --help| -h|-he|-hel|-help) |
| Usage |
| exit 1 |
| ;; |
| --) |
| shift |
| break |
| ;; |
| esac |
| shift |
| done |
| # |
| # |
| # |
| # Where the build will happen |
| export BUILD_ID="`date +'%Y%m%d'`" |
| # |
| echo "Build-ID: ${BUILD_ID}" |
| # |
| # this location, adjust for cygdrive pathing |
| cd `dirname $0` |
| CWD=`pwd | sed -e 's/^\/cygdrive\/\(.\)/\1:/g'` |
| |
| # Java things |
| export JAVA_CMD="${JAVA_HOME}/jre/bin/java" |
| |
| # ant args like verbose for example ... (-v) |
| # export ANT_ARGS="-v -debug" |
| |
| # reset ant command line args |
| export ANT_CMD_LINE_ARGS="-noclasspath" |
| |
| # Find the build.xml in the org.eclipse.pde.build_* plugin |
| export BUILD_XML="" |
| for d in `find ${ECLIPSE_HOME}/plugins -name 'org.eclipse.pde.build_*.*.*' -a -type d` |
| do |
| f="${d}/scripts/build.xml" |
| |
| if [ ! -f "${f}" ] |
| then |
| continue |
| fi |
| if [ ! -z "${BUILD_XML}" ] |
| then |
| echo "warning: Hmmmm, looks like you have more then 1 version of this. Using the last one" |
| fi |
| echo "Build-File: ${f}" |
| BUILD_XML=${f} |
| done |
| # |
| # http://wiki.eclipse.org/index.php/Equinox_Launcher |
| # |
| if [ ! -f "${STARTUP_JAR}" ] |
| then |
| for f in `find ${ECLIPSE_HOME}/plugins -name 'org.eclipse.equinox.launcher_*.*.*.jar' -a -type f` |
| do |
| echo "Equinox-Launcher-JAR: ${f}" |
| STARTUP_JAR=${f} |
| done |
| fi |
| |
| # basic idiot checks |
| # |
| if [ ! -f "${BUILD_XML}" ] |
| then |
| echo "error: Somehow I cannot find build.xml in ${ECLIPSE_HOME}/plugins/org.eclipse.pde.build_* ..." |
| echo "error: please check your eclipse installation and make sure that this plugin exists and is" |
| echo "error: in fact a directory. Also, check your eclipse installation ..." |
| exit 2 |
| fi |
| if [ ! -f "${JAVA_CMD}" ] |
| then |
| echo "error: Somehow JAVA_CMD=${JAVA_CMD} is not a file that I can run" |
| exit 2 |
| fi |
| # |
| # |
| echo "+------------------------------------------------------------------+" |
| echo "Current-Path: ${CWD}" |
| echo " Using-Java: ${JAVA_CMD}" |
| echo "Eclipse-Home: ${ECLIPSE_HOME}" |
| echo " Build-File: ${BUILD_XML}" |
| echo " Startup-JAR: ${STARTUP_JAR}" |
| echo "+------------------------------------------------------------------+" |
| # |
| # |
| if [ $skipBuild -eq 0 ] |
| then |
| echo "Running build ..." |
| ${JAVA_CMD} -cp \ |
| "${STARTUP_JAR}" \ |
| org.eclipse.equinox.launcher.Main \ |
| -application org.eclipse.ant.core.antRunner \ |
| -buildfile "${BUILD_XML}" \ |
| -data "${BUILD_DIRECTORY}/workspace-build" \ |
| -Dconfigs="*,*,*" \ |
| -Dbuilder="${CWD}" \ |
| -DbuildId="${BUILD_ID}" \ |
| -DbuildDirectory="${BUILD_DIRECTORY}" \ |
| -DbaseLocation="${ECLIPSE_HOME}" ${ANT_ARGS} |
| else |
| echo "Skipping build ..." |
| fi |
| # |
| # |
| echo "+--------------------------------------------------------+" |
| # |
| if [ $? -eq 0 -a $skipSite -eq 0 ] |
| then |
| echo "Attempting to build site ..." |
| cd $BUILD_DIRECTORY |
| for n in `/bin/ls -1d *${BUILD_ID}*` |
| do |
| echo $n |
| if [ ! -d $n ] |
| then |
| continue |
| fi |
| loc=$n |
| break |
| done |
| # |
| if [ ! -d "$loc" ] |
| then |
| echo "I cannot find the build, cannot make the site ... sorry" |
| exit 4 |
| fi |
| echo "Will use $loc as the build since buildId=${BUILD_ID}" |
| siteDir="$BUILD_DIRECTORY/site-$loc" |
| test -d $siteDir || mkdir $siteDir |
| cd $siteDir |
| featureZip="${BUILD_DIRECTORY}/${loc}/org.eclipse.bpel.feature-${BUILD_ID}.zip" |
| echo "Trying to unzip $featureZip into $siteDir" |
| unzip $featureZip |
| if [ $? -ne 0 ] |
| then |
| echo "Failed to unzip the BPEL feature ..." |
| exit 5 |
| fi |
| # |
| test -d plugins && echo "Removing features from $siteDir" && rm -rf plugins |
| test -d features && echo "Removing features from $siteDir" && rm -rf features |
| test -d eclipse && mv eclipse/* . && rm -rf eclipse |
| siteSkel="$CWD/../org.eclipse.bpel.site" |
| |
| if [ -d $siteSkel ] |
| then |
| cp -prfv $siteSkel/web . |
| cp -pfv $siteSkel/* . |
| for d in `find $siteDir -name CVS -a -type d -print` |
| do |
| echo "Removing $d ..." && /bin/rm -fr $d |
| done |
| |
| # edit the site.xml |
| echo "+-------------------------------------------------+" |
| echo "The site is ready in $siteDir" |
| echo "Note: if you want this to be a local site, not hosted on eclipse.org, then " |
| echo " you need to edit site.xml and remove the references to all the urls in it" |
| echo " which includes the mirrorsURL as well." |
| echo "+-------------------------------------------------+" |
| else |
| echo "Cannot find $siteSkel, so I cannot copy the site.xml and other items needed by the update site" |
| echo "These reside in the org.eclipse.bpel.site feature in CVS... you'd have to copy them manually" |
| fi |
| |
| else |
| echo "Skipping build site ..." |
| fi |
| # |
| # |
| exit 0 |