From 1897d929b5d31a8a7ce9f38316110e61dc98d529 Mon Sep 17 00:00:00 2001 From: David Williams Date: Mon, 28 Jul 2014 15:04:19 -0400 Subject: Bug 409190 - [restore test] restore some releng tests Bug 411317 - Need to remove some "PDE Transition" code Bug 387872 - BuildTests has no test that reports failures in platform.doc.isv.schema.txt --- bootstrap/bootstrap.shsource | 114 ++ bootstrap/mb4I.sh | 34 +- bootstrap/mb4M.sh | 33 +- bootstrap/mb4N.sh | 33 +- bootstrap/mb4P.sh | 37 +- bootstrap/mb4X.sh | 33 +- bootstrap/mb4Y.sh | 33 +- bootstrap/wgetFresh.sh | 30 +- .../eclipse-junit-tests/pom.xml | 14 + .../src/main/assembly/assembly.xml | 30 + .../src/main/resources/equinoxp2tests.properties | 20 +- .../eclipse-junit-tests/src/main/scripts/test.xml | 30 +- .../publishingFiles/staticDropFiles/download.php | 1 - .../buildproperties.phpHoldForLocalTests | 1 - .../eclipse/publishingFiles/testManifest.xml | 6 +- production/bashUtilities.shsource | 135 ++ production/bootstrapVariables.shsource | 134 ++ production/build-functions.shsource | 1855 +++++++++----------- production/build_eclipse_org.shsource | 26 +- production/get-aggregator.sh | 4 +- production/getEBuilderForDropDir.sh | 34 +- production/master-build.sh | 115 +- production/parse-logs.sh | 2 +- production/pom-version-updater.sh | 2 +- production/promote-build.sh | 32 +- production/publish-eclipse.sh | 3 +- production/publish-equinox.sh | 6 +- production/publish-repo.sh | 2 +- production/run-maven-build.sh | 2 +- production/sdk/collect.sh | 11 +- production/sdk/collectTestResults.xml | 207 ++- production/sdk/promotion/getEBuilder.sh | 22 +- production/sdk/promotion/runAntRunner.sh | 4 +- production/sdk/promotion/sdkPromotionCronJob.sh | 6 +- production/sdk/promotion/startTests.sh | 12 +- production/sdk/promotion/syncDropLocation.sh | 96 +- production/sdk/promotion/syncUpdateUtils.shsource | 470 ++--- production/sdk/promotion/updateDropLocation.sh | 66 +- production/sdk/startTests.sh | 12 +- production/sdk/testdataCronJob.sh | 2 +- production/sdk/updateIndexFilesFunction.shsource | 4 +- production/sdk/wgetFresh.sh | 14 +- production/sdk/wgetFreshSDKdir.sh | 19 +- production/tag-build-input.sh | 2 +- .../testConfigs/linux/equinoxp2tests.properties | 28 +- .../sdk.tests/testConfigs/linux/testing.properties | 4 +- .../testConfigs/linux32/equinoxp2tests.properties | 26 +- .../testConfigs/macmini/equinoxp2tests.properties | 26 +- .../testConfigs/macosx/equinoxp2tests.properties | 26 +- .../testConfigs/win7-64/equinoxp2tests.properties | 26 +- .../testConfigs/win7/equinoxp2tests.properties | 26 +- .../configuration/sdk.tests/testScripts/test.xml | 36 +- .../configuration/streamSpecific-build.properties | 31 +- production/testScripts/genTestIndexes.xml | 23 +- .../testScripts/hudsonBootstrap/getEBuilder.sh | 23 +- .../testScripts/hudsonBootstrap/getEBuilder.xml | 391 ++--- production/testScripts/invokeTestsJSON.xml | 6 +- production/testScripts/runTests2.xml | 54 +- production/testScripts/startTests.sh | 63 +- production/testScripts/updateTestResultsPages.sh | 23 +- production/update-build-input.sh | 2 +- 61 files changed, 2192 insertions(+), 2370 deletions(-) create mode 100644 bootstrap/bootstrap.shsource create mode 100644 production/bashUtilities.shsource create mode 100644 production/bootstrapVariables.shsource diff --git a/bootstrap/bootstrap.shsource b/bootstrap/bootstrap.shsource new file mode 100644 index 000000000..be1b5ffc9 --- /dev/null +++ b/bootstrap/bootstrap.shsource @@ -0,0 +1,114 @@ +#!/usr/bin/env bash + +# Utility to get basic "startup" files for Platform's CBI Build + + +# this localbuildproperties.shsource file is to ease local builds to override some variables. +# It should not be used for production builds. +source localbuildproperties.shsource 2>/dev/null +export GIT_HOST=${GIT_HOST:-"git.eclipse.org"} + +export BUILD_HOME=${BUILD_HOME:-/shared/eclipse/builds} + +if [[ -z "${BRANCH}" ]] +then + export BRANCH=master + printf "/n/tWARNING: %s/n" "BRANCH was not defined. 'master' was assumed" +fi + +# A constant, in Platform builds +export AGGR_REPO_NAME=eclipse.platform.releng.aggregator + +# contrary to intuition (and previous behavior, bash 3.1) do NOT use quotes around right side of expression. +if [[ "${STREAM}" =~ ^([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)$ ]] +then + export STREAMMajor=${BASH_REMATCH[1]} + export STREAMMinor=${BASH_REMATCH[2]} + export STREAMService=${BASH_REMATCH[3]} +else + echo "STREAM must contain major, minor, and service versions, such as 4.3.0" + echo " but found ${STREAM}" + exit 1 +fi + +if [[ ! "${BUILD_TYPE}" =~ [IMNPXY] ]] +then + echo "BUILD_TYPE must by I,M, N, P, X, or Y" + echo " but found ${BUILD_TYPE}" + exit 1 +fi + +# if not defined "externally", we use default for eclipse.org +if [[ -z $REPO_AND_ACCESS ]] +then + # unless we are on 'build' machine + if [[ "build" == "$(hostname)" ]] + then + export REPO_AND_ACCESS=file:///gitroot + else + export REPO_AND_ACCESS=git://git.eclipse.org/gitroot + fi +fi + + +export BUILD_ROOT=${BUILD_ROOT:-${BUILD_HOME}/${STREAMMajor}${BUILD_TYPE}} +echo "Exporting production scripts ... " +echo " STREAM: $STREAM" +echo " STREAMMajor: $STREAMMajor" +echo " STREAMMinor: $STREAMMinor" +echo " STREAMService: $STREAMService" +echo " BUILD_TYPE: $BUILD_TYPE" +echo " BUILD_ROOT: $BUILD_ROOT" +echo " BUILD_HOME: $BUILD_HOME" +echo " PRODUCTION_SCRIPTS_DIR: $PRODUCTION_SCRIPTS_DIR" +echo " REPO_AND_ACCESS: $REPO_AND_ACCESS" + +# We put these in build_root in case two builds get started at once. +# (such as N and I build, both from master). + +# TODO: could maybe do pull here, if already exists? +rm -fr $BUILD_ROOT/tmp/${AGGR_REPO_NAME} 2>/dev/null +if [[ $? != 0 ]] +then + echo "[ERROR] Exiting, since could not remove $BUILD_ROOT/tmp/${AGGR_REPO_NAME} as expected." + exit 1 +fi + +# Make dir in case first run (note: this must be after the above "removes", +# or else first time through they will remove this directory itself. +mkdir -p ${BUILD_ROOT}/tmp +if [[ $? != 0 ]] +then + echo "[ERROR] Exiting, since could not make $BUILD_ROOT/tmp, as expected." + exit 1 +fi + + +git clone -b ${BRANCH} ${REPO_AND_ACCESS}/platform/${AGGR_REPO_NAME} $BUILD_ROOT/tmp/${AGGR_REPO_NAME} +RC=$? +if [[ $RC != 0 ]] +then + echo "Could not clone repo as expected" + exit $RC +fi + +#remove any previous production scripts, to make sure completely fresh +rm -fr $BUILD_ROOT/${PRODUCTION_SCRIPTS_DIR} 2>/dev/null + +# cp whole script directory "up" so directly under build_root, in constant place +cp -r $BUILD_ROOT/tmp/${AGGR_REPO_NAME}/${PRODUCTION_SCRIPTS_DIR} ${BUILD_ROOT} + +if [[ $? != 0 ]] +then + echo "Exiting, since could not copy production scripts, as expected." + exit 1 +fi + +chmod +x ${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/*.sh + +if [[ $? != 0 ]] +then + echo "Could not chmod of production scripts to executable. Running under wrong id?" + exit 1 +fi + diff --git a/bootstrap/mb4I.sh b/bootstrap/mb4I.sh index a412fb487..c1b4e7ead 100755 --- a/bootstrap/mb4I.sh +++ b/bootstrap/mb4I.sh @@ -3,9 +3,9 @@ # Simple utility to run as cronjob to run Eclipse Platform builds # Normally resides in $BUILD_HOME -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null export BUILD_HOME=${BUILD_HOME:-/shared/eclipse/builds} function usage() { @@ -41,7 +41,7 @@ echo "Starting $SCRIPT_NAME at $( date +%Y%m%d-%H%M ) " 1>$LOG_OUT_NAME 2>$LOG_E # Start with minimal path for consistency across machines # plus, cron jobs do not inherit an environment # care is needed not have anything in ${HOME}/bin that would effect the build -# unintentionally, but is required to make use of "source buildeclipse.shsource" on +# unintentionally, but is required to make use of "source localbuildproperties.shsource" on # local machines. # Likely only a "release engineer" would be interested, such as to override "SIGNING" (setting it # to false) for a test I-build on a remote machine. @@ -61,18 +61,9 @@ oldumask=`umask` umask 0002 echo "umask explicitly set to 0002, old value was $oldumask" 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null - -# we should not need the following here in boot strap, for now, but might in future -#export JAVA_HOME=${JAVA_HOME:-/shared/common/jdk1.7.0-latest} -#export ANT_HOME=${ANT_HOME:-/shared/common/apache-ant-1.9.2} -#export ANT_OPTS=${ANT_OPTS:-"-Dbuild.sysclasspath=ignore -Dincludeantruntime=false"} -#export MAVEN_PATH=${MAVEN_PATH:-/shared/common/apache-maven-3.1.1/bin} - -# no override for minimal $PATH -#export PATH=$JAVA_HOME/bin:$MAVEN_PATH:$ANT_HOME/bin:$PATH +source localbuildproperties.shsource 2>/dev/null export BRANCH=master export BUILD_TYPE=I @@ -87,20 +78,9 @@ export BUILD_ROOT=${BUILD_HOME}/${BUILDSTREAMTYPEDIR} export PRODUCTION_SCRIPTS_DIR=production +source $BUILD_HOME/bootstrap.shsource -$BUILD_HOME/bootstrap.sh $BRANCH $BUILD_TYPE $STREAM 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME - -#BOOTSTRAPENVFILE=$BUILD_ROOT/env${BUILDSTREAMTYPEDIR}.txt -#timestamp=$( date +%Y%m%d%H%M ) -#echo "Environment at time of starting build at ${timestamp}." > $BOOTSTRAPENVFILE -#env >> $BOOTSTRAPENVFILE -#echo "= = = = = " >> $BOOTSTRAPENVFILE -#java -version >> $BOOTSTRAPENVFILE 2>&1 -#ant -version >> $BOOTSTRAPENVFILE -#mvn -version >> $BOOTSTRAPENVFILE -#echo "= = = = = " >> $BOOTSTRAPENVFILE - -${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/master-build.sh ${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/build_eclipse_org.shsource 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME & +${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/master-build.sh "${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/build_eclipse_org.shsource" 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME rc=$? if [[ $rc != 0 ]] diff --git a/bootstrap/mb4M.sh b/bootstrap/mb4M.sh index e3fe7de89..c7d1783fd 100755 --- a/bootstrap/mb4M.sh +++ b/bootstrap/mb4M.sh @@ -3,9 +3,9 @@ # Simple utility to run as cronjob to run Eclipse Platform builds # Normally resides in $BUILD_HOME -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null export BUILD_HOME=${BUILD_HOME:-/shared/eclipse/builds} function usage() { @@ -41,7 +41,7 @@ echo "Starting $SCRIPT_NAME at $( date +%Y%m%d-%H%M ) " 1>$LOG_OUT_NAME 2>$LOG_E # Start with minimal path for consistency across machines # plus, cron jobs do not inherit an environment # care is needed not have anything in ${HOME}/bin that would effect the build -# unintentionally, but is required to make use of "source buildeclipse.shsource" on +# unintentionally, but is required to make use of "source localbuildproperties.shsource" on # local machines. # Likely only a "release engineer" would be interested, such as to override "SIGNING" (setting it # to false) for a test I-build on a remote machine. @@ -61,18 +61,9 @@ oldumask=`umask` umask 0002 echo "umask explicitly set to 0002, old value was $oldumask" 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null - -# we should not need the following here in boot strap, for now, but might in future -#export JAVA_HOME=${JAVA_HOME:-/shared/common/jdk1.7.0-latest} -#export ANT_HOME=${ANT_HOME:-/shared/common/apache-ant-1.9.2} -#export ANT_OPTS=${ANT_OPTS:-"-Dbuild.sysclasspath=ignore -Dincludeantruntime=false"} -#export MAVEN_PATH=${MAVEN_PATH:-/shared/common/apache-maven-3.1.1/bin} - -# no override for minimal $PATH -#export PATH=$JAVA_HOME/bin:$MAVEN_PATH:$ANT_HOME/bin:$PATH +source localbuildproperties.shsource 2>/dev/null export BRANCH=R4_4_maintenance export BUILD_TYPE=M @@ -87,20 +78,10 @@ export BUILD_ROOT=${BUILD_HOME}/${BUILDSTREAMTYPEDIR} export PRODUCTION_SCRIPTS_DIR=production +source $BUILD_HOME/bootstrap.shsource -$BUILD_HOME/bootstrap.sh $BRANCH $BUILD_TYPE $STREAM 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME - -#BOOTSTRAPENVFILE=$BUILD_ROOT/env${BUILDSTREAMTYPEDIR}.txt -#timestamp=$( date +%Y%m%d%H%M ) -#echo "Environment at time of starting build at ${timestamp}." > $BOOTSTRAPENVFILE -#env >> $BOOTSTRAPENVFILE -#echo "= = = = = " >> $BOOTSTRAPENVFILE -#java -version >> $BOOTSTRAPENVFILE 2>&1 -#ant -version >> $BOOTSTRAPENVFILE -#mvn -version >> $BOOTSTRAPENVFILE -#echo "= = = = = " >> $BOOTSTRAPENVFILE -${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/master-build.sh ${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/build_eclipse_org.shsource 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME & +${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/master-build.sh "${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/build_eclipse_org.shsource" 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME rc=$? if [[ $rc != 0 ]] diff --git a/bootstrap/mb4N.sh b/bootstrap/mb4N.sh index a32357875..e59a08bff 100755 --- a/bootstrap/mb4N.sh +++ b/bootstrap/mb4N.sh @@ -3,9 +3,9 @@ # Simple utility to run as cronjob to run Eclipse Platform builds # Normally resides in $BUILD_HOME -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null export BUILD_HOME=${BUILD_HOME:-/shared/eclipse/builds} function usage() { @@ -41,7 +41,7 @@ echo "Starting $SCRIPT_NAME at $( date +%Y%m%d-%H%M ) " 1>$LOG_OUT_NAME 2>$LOG_E # Start with minimal path for consistency across machines # plus, cron jobs do not inherit an environment # care is needed not have anything in ${HOME}/bin that would effect the build -# unintentionally, but is required to make use of "source buildeclipse.shsource" on +# unintentionally, but is required to make use of "source localbuildproperties.shsource" on # local machines. # Likely only a "release engineer" would be interested, such as to override "SIGNING" (setting it # to false) for a test I-build on a remote machine. @@ -61,18 +61,9 @@ oldumask=`umask` umask 0002 echo "umask explicitly set to 0002, old value was $oldumask" 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null - -# we should not need the following here in boot strap, for now, but might in future -#export JAVA_HOME=${JAVA_HOME:-/shared/common/jdk1.7.0-latest} -#export ANT_HOME=${ANT_HOME:-/shared/common/apache-ant-1.9.2} -#export ANT_OPTS=${ANT_OPTS:-"-Dbuild.sysclasspath=ignore -Dincludeantruntime=false"} -#export MAVEN_PATH=${MAVEN_PATH:-/shared/common/apache-maven-3.1.1/bin} - -# no override for minimal $PATH -#export PATH=$JAVA_HOME/bin:$MAVEN_PATH:$ANT_HOME/bin:$PATH +source localbuildproperties.shsource 2>/dev/null export BRANCH=master export BUILD_TYPE=N @@ -87,20 +78,10 @@ export BUILD_ROOT=${BUILD_HOME}/${BUILDSTREAMTYPEDIR} export PRODUCTION_SCRIPTS_DIR=production +source $BUILD_HOME/bootstrap.shsource -$BUILD_HOME/bootstrap.sh $BRANCH $BUILD_TYPE $STREAM 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME - -#BOOTSTRAPENVFILE=$BUILD_ROOT/env${BUILDSTREAMTYPEDIR}.txt -#timestamp=$( date +%Y%m%d%H%M ) -#echo "Environment at time of starting build at ${timestamp}." > $BOOTSTRAPENVFILE -#env >> $BOOTSTRAPENVFILE -#echo "= = = = = " >> $BOOTSTRAPENVFILE -#java -version >> $BOOTSTRAPENVFILE 2>&1 -#ant -version >> $BOOTSTRAPENVFILE -#mvn -version >> $BOOTSTRAPENVFILE -#echo "= = = = = " >> $BOOTSTRAPENVFILE -${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/master-build.sh ${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/build_eclipse_org.shsource 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME & +${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/master-build.sh "${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/build_eclipse_org.shsource" 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME rc=$? if [[ $rc != 0 ]] diff --git a/bootstrap/mb4P.sh b/bootstrap/mb4P.sh index aa5618e5a..078c87a3b 100755 --- a/bootstrap/mb4P.sh +++ b/bootstrap/mb4P.sh @@ -3,15 +3,11 @@ # Simple utility to run as cronjob to run Eclipse Platform builds # Normally resides in $BUILD_HOME -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null export BUILD_HOME=${BUILD_HOME:-/shared/eclipse/builds} -# uncomment to force to use "local mirror repo" on this machine -#export REPO_AND_ACCESS=file:///gitroot/davidw2 -#export BUILD_HOME=/shared/eclipse/buildsdavidw2 - function usage() { printf "\n\tSimple script start a build of a certain stream." >&2 printf "\n\tUsage: %s [[-h] | [-t]] " $(basename $0) >&2 @@ -45,7 +41,7 @@ echo "Starting $SCRIPT_NAME at $( date +%Y%m%d-%H%M ) " 1>$LOG_OUT_NAME 2>$LOG_E # Start with minimal path for consistency across machines # plus, cron jobs do not inherit an environment # care is needed not have anything in ${HOME}/bin that would effect the build -# unintentionally, but is required to make use of "source buildeclipse.shsource" on +# unintentionally, but is required to make use of "source localbuildproperties.shsource" on # local machines. # Likely only a "release engineer" would be interested, such as to override "SIGNING" (setting it # to false) for a test I-build on a remote machine. @@ -65,18 +61,9 @@ oldumask=`umask` umask 0002 echo "umask explicitly set to 0002, old value was $oldumask" 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null - -# we should not need the following here in boot strap, for now, but might in future -#export JAVA_HOME=${JAVA_HOME:-/shared/common/jdk1.7.0-latest} -#export ANT_HOME=${ANT_HOME:-/shared/common/apache-ant-1.9.2} -#export ANT_OPTS=${ANT_OPTS:-"-Dbuild.sysclasspath=ignore -Dincludeantruntime=false"} -#export MAVEN_PATH=${MAVEN_PATH:-/shared/common/apache-maven-3.1.1/bin} - -# no override for minimal $PATH -#export PATH=$JAVA_HOME/bin:$MAVEN_PATH:$ANT_HOME/bin:$PATH +source localbuildproperties.shsource 2>/dev/null export BRANCH=R4_3_maintenance_Java8 export BUILD_TYPE=P @@ -92,20 +79,10 @@ export BUILD_ROOT=${BUILD_HOME}/${BUILDSTREAMTYPEDIR} export PRODUCTION_SCRIPTS_DIR=production +source $BUILD_HOME/bootstrap.shsource -$BUILD_HOME/bootstrap.sh $BRANCH $BUILD_TYPE $STREAM 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME - -#BOOTSTRAPENVFILE=$BUILD_ROOT/env${BUILDSTREAMTYPEDIR}.txt -#timestamp=$( date +%Y%m%d%H%M ) -#echo "Environment at time of starting build at ${timestamp}." > $BOOTSTRAPENVFILE -#env >> $BOOTSTRAPENVFILE -#echo "= = = = = " >> $BOOTSTRAPENVFILE -#java -version >> $BOOTSTRAPENVFILE 2>&1 -#ant -version >> $BOOTSTRAPENVFILE -#mvn -version >> $BOOTSTRAPENVFILE -#echo "= = = = = " >> $BOOTSTRAPENVFILE -${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/master-build.sh ${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/build_eclipse_org.shsource 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME & +${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/master-build.sh "${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/build_eclipse_org.shsource" 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME rc=$? if [[ $rc != 0 ]] diff --git a/bootstrap/mb4X.sh b/bootstrap/mb4X.sh index cd683b7fd..a7ad409ed 100755 --- a/bootstrap/mb4X.sh +++ b/bootstrap/mb4X.sh @@ -3,9 +3,9 @@ # Simple utility to run as cronjob to run Eclipse Platform builds # Normally resides in $BUILD_HOME -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null export BUILD_HOME=${BUILD_HOME:-/shared/eclipse/builds} function usage() { @@ -41,7 +41,7 @@ echo "Starting $SCRIPT_NAME at $( date +%Y%m%d-%H%M ) " 1>$LOG_OUT_NAME 2>$LOG_E # Start with minimal path for consistency across machines # plus, cron jobs do not inherit an environment # care is needed not have anything in ${HOME}/bin that would effect the build -# unintentionally, but is required to make use of "source buildeclipse.shsource" on +# unintentionally, but is required to make use of "source localbuildproperties.shsource" on # local machines. # Likely only a "release engineer" would be interested, such as to override "SIGNING" (setting it # to false) for a test I-build on a remote machine. @@ -61,18 +61,9 @@ oldumask=`umask` umask 0002 echo "umask explicitly set to 0002, old value was $oldumask" 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null - -# we should not need the following here in boot strap, for now, but might in future -#export JAVA_HOME=${JAVA_HOME:-/shared/common/jdk1.7.0-latest} -#export ANT_HOME=${ANT_HOME:-/shared/common/apache-ant-1.9.2} -#export ANT_OPTS=${ANT_OPTS:-"-Dbuild.sysclasspath=ignore -Dincludeantruntime=false"} -#export MAVEN_PATH=${MAVEN_PATH:-/shared/common/apache-maven-3.1.1/bin} - -# no override for minimal $PATH -#export PATH=$JAVA_HOME/bin:$MAVEN_PATH:$ANT_HOME/bin:$PATH +source localbuildproperties.shsource 2>/dev/null export BRANCH=R4_3_maintenance_Java8 export BUILD_TYPE=X @@ -87,20 +78,10 @@ export BUILD_ROOT=${BUILD_HOME}/${BUILDSTREAMTYPEDIR} export PRODUCTION_SCRIPTS_DIR=production +source $BUILD_HOME/bootstrap.shsource -$BUILD_HOME/bootstrap.sh $BRANCH $BUILD_TYPE $STREAM 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME - -#BOOTSTRAPENVFILE=$BUILD_ROOT/env${BUILDSTREAMTYPEDIR}.txt -#timestamp=$( date +%Y%m%d%H%M ) -#echo "Environment at time of starting build at ${timestamp}." > $BOOTSTRAPENVFILE -#env >> $BOOTSTRAPENVFILE -#echo "= = = = = " >> $BOOTSTRAPENVFILE -#java -version >> $BOOTSTRAPENVFILE 2>&1 -#ant -version >> $BOOTSTRAPENVFILE -#mvn -version >> $BOOTSTRAPENVFILE -#echo "= = = = = " >> $BOOTSTRAPENVFILE -${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/master-build.sh ${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/build_eclipse_org.shsource 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME & +${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/master-build.sh "${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/build_eclipse_org.shsource" 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME rc=$? if [[ $rc != 0 ]] diff --git a/bootstrap/mb4Y.sh b/bootstrap/mb4Y.sh index f2ae64fd1..6796860e2 100755 --- a/bootstrap/mb4Y.sh +++ b/bootstrap/mb4Y.sh @@ -3,9 +3,9 @@ # Simple utility to run as cronjob to run Eclipse Platform builds # Normally resides in $BUILD_HOME -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null export BUILD_HOME=${BUILD_HOME:-/shared/eclipse/builds} function usage() { @@ -41,7 +41,7 @@ echo "Starting $SCRIPT_NAME at $( date +%Y%m%d-%H%M ) " 1>$LOG_OUT_NAME 2>$LOG_E # Start with minimal path for consistency across machines # plus, cron jobs do not inherit an environment # care is needed not have anything in ${HOME}/bin that would effect the build -# unintentionally, but is required to make use of "source buildeclipse.shsource" on +# unintentionally, but is required to make use of "source localbuildproperties.shsource" on # local machines. # Likely only a "release engineer" would be interested, such as to override "SIGNING" (setting it # to false) for a test I-build on a remote machine. @@ -61,18 +61,9 @@ oldumask=`umask` umask 0002 echo "umask explicitly set to 0002, old value was $oldumask" 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null - -# we should not need the following here in boot strap, for now, but might in future -#export JAVA_HOME=${JAVA_HOME:-/shared/common/jdk1.7.0-latest} -#export ANT_HOME=${ANT_HOME:-/shared/common/apache-ant-1.9.2} -#export ANT_OPTS=${ANT_OPTS:-"-Dbuild.sysclasspath=ignore -Dincludeantruntime=false"} -#export MAVEN_PATH=${MAVEN_PATH:-/shared/common/apache-maven-3.1.1/bin} - -# no override for minimal $PATH -#export PATH=$JAVA_HOME/bin:$MAVEN_PATH:$ANT_HOME/bin:$PATH +source localbuildproperties.shsource 2>/dev/null export CBI_JDT_REPO_URL="http://build.eclipse.org/eclipse/jdtx/" export CBI_JDT_VERSION="3.9.2.v20140309-1413" @@ -90,20 +81,10 @@ export BUILD_ROOT=${BUILD_HOME}/${BUILDSTREAMTYPEDIR} export PRODUCTION_SCRIPTS_DIR=production +source $BUILD_HOME/bootstrap.shsource -$BUILD_HOME/bootstrap.sh $BRANCH $BUILD_TYPE $STREAM 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME - -#BOOTSTRAPENVFILE=$BUILD_ROOT/env${BUILDSTREAMTYPEDIR}.txt -#timestamp=$( date +%Y%m%d%H%M ) -#echo "Environment at time of starting build at ${timestamp}." > $BOOTSTRAPENVFILE -#env >> $BOOTSTRAPENVFILE -#echo "= = = = = " >> $BOOTSTRAPENVFILE -#java -version >> $BOOTSTRAPENVFILE 2>&1 -#ant -version >> $BOOTSTRAPENVFILE -#mvn -version >> $BOOTSTRAPENVFILE -#echo "= = = = = " >> $BOOTSTRAPENVFILE -${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/master-build.sh ${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/build_eclipse_org.shsource 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME & +${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/master-build.sh "${BUILD_ROOT}/${PRODUCTION_SCRIPTS_DIR}/build_eclipse_org.shsource" 1>>$LOG_OUT_NAME 2>>$LOG_ERR_NAME rc=$? if [[ $rc != 0 ]] diff --git a/bootstrap/wgetFresh.sh b/bootstrap/wgetFresh.sh index e9d282f24..ca37fabad 100755 --- a/bootstrap/wgetFresh.sh +++ b/bootstrap/wgetFresh.sh @@ -1,8 +1,10 @@ #!/usr/bin/env bash -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null + +export GIT_HOST=${GIT_HOST:-"git.eclipse.org"} # gets a fresh copy of the primary/working "bootstrap" scripts needed in build home. @@ -10,32 +12,32 @@ source buildeclipse.shsource 2>/dev/null initScriptTag=master # tags: -# http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/wgetFresh.sh?tag=vI20120417-0700 +# http://${GIT_HOST}/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/wgetFresh.sh?tag=vI20120417-0700 -# to build, all that's needed is the appropriate mbXZ.sh scripts. along with "bootstrap.sh". +# to build, all that's needed is the appropriate mbXZ.sh scripts. along with "bootstrap.shsource". # It gets what ever else it needs. +echo "Fetching bootstrap files from $GIT_HOST" - -wget --no-verbose --no-cache -O mb4M.sh http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/mb4M.sh?h=$initScriptTag 2>&1; -wget --no-verbose --no-cache -O mb4I.sh http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/mb4I.sh?h=$initScriptTag 2>&1; -wget --no-verbose --no-cache -O mb4N.sh http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/mb4N.sh?h=$initScriptTag 2>&1; -wget --no-verbose --no-cache -O mb4X.sh http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/mb4X.sh?h=$initScriptTag 2>&1; -wget --no-verbose --no-cache -O mb4Y.sh http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/mb4Y.sh?h=$initScriptTag 2>&1; -wget --no-verbose --no-cache -O mb4P.sh http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/mb4P.sh?h=$initScriptTag 2>&1; -wget --no-verbose --no-cache -O bootstrap.sh http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/bootstrap.sh?h=$initScriptTag 2>&1; +wget --no-verbose --no-cache -O mb4M.sh http://${GIT_HOST}/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/mb4M.sh?h=$initScriptTag 2>&1; +wget --no-verbose --no-cache -O mb4I.sh http://${GIT_HOST}/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/mb4I.sh?h=$initScriptTag 2>&1; +wget --no-verbose --no-cache -O mb4N.sh http://${GIT_HOST}/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/mb4N.sh?h=$initScriptTag 2>&1; +#wget --no-verbose --no-cache -O mb4X.sh http://${GIT_HOST}/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/mb4X.sh?h=$initScriptTag 2>&1; +#wget --no-verbose --no-cache -O mb4Y.sh http://${GIT_HOST}/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/mb4Y.sh?h=$initScriptTag 2>&1; +#wget --no-verbose --no-cache -O mb4P.sh http://${GIT_HOST}/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/mb4P.sh?h=$initScriptTag 2>&1; +wget --no-verbose --no-cache -O bootstrap.shsource http://${GIT_HOST}/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/bootstrap.shsource?h=$initScriptTag 2>&1; # handy script to "wrap" a normal build script such as mb4I.sh to set global test/debug settings -#wget --no-verbose -O testBuild.sh http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/testBuild.sh?h=$initScriptTag 2>&1; +#wget --no-verbose -O testBuild.sh http://${GIT_HOST}/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/testBuild.sh?h=$initScriptTag 2>&1; # get this script itself (would have to run twice to make use changes, naturally) # and has trouble "writing over itself" so we put in a file with 'NEW' suffix # but will remove it if no differences found. # and a command line like the following works well -wget --no-verbose --no-cache -O wgetFresh.NEW.sh http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/wgetFresh.sh?h=$initScriptTag 2>&1; +wget --no-verbose --no-cache -O wgetFresh.NEW.sh http://${GIT_HOST}/c/platform/eclipse.platform.releng.aggregator.git/plain/bootstrap/wgetFresh.sh?h=$initScriptTag 2>&1; differs=`diff wgetFresh.NEW.sh wgetFresh.sh` echo "differs: ${differs}" diff --git a/eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/pom.xml b/eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/pom.xml index a702110fe..317d2fa44 100644 --- a/eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/pom.xml +++ b/eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/pom.xml @@ -24,6 +24,20 @@ ${buildTimestamp} + + ../../eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/doc.bin.log + ../../eclipse.platform.common/bundles/org.eclipse.jdt.doc.isv/doc.bin.log + ../../eclipse.platform.common/bundles/org.eclipse.pde.doc.user/doc.bin.log + ../../eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/platformconvert.txt + ../../eclipse.platform.common/bundles/org.eclipse.jdt.doc.isv/jdtconvert.txt + ../../eclipse.platform.common/bundles/org.eclipse.pde.doc.user/pdeconvert.txt - + + diff --git a/eclipse.platform.releng.tychoeclipsebuilder/eclipse/publishingFiles/staticDropFiles/download.php b/eclipse.platform.releng.tychoeclipsebuilder/eclipse/publishingFiles/staticDropFiles/download.php index 8051ea380..a6cf3c1db 100644 --- a/eclipse.platform.releng.tychoeclipsebuilder/eclipse/publishingFiles/staticDropFiles/download.php +++ b/eclipse.platform.releng.tychoeclipsebuilder/eclipse/publishingFiles/staticDropFiles/download.php @@ -36,7 +36,6 @@ if (array_key_exists("SERVER_NAME", $_SERVER)) { // we want the /eclipse/downloads/* part, such as // /eclipse/downloads/drops4, or // /eclipse/downloads/drops, or - // /eclipse/downloads/drops4pdebased, etc. // function can return empty string $refurl=$_SERVER["REQUEST_URI"]; // We expect $BUILD_ID to be defined in buildproperties.php diff --git a/eclipse.platform.releng.tychoeclipsebuilder/eclipse/publishingFiles/templateFiles/buildproperties.phpHoldForLocalTests b/eclipse.platform.releng.tychoeclipsebuilder/eclipse/publishingFiles/templateFiles/buildproperties.phpHoldForLocalTests index 81e8fc7ea..1c213922e 100644 --- a/eclipse.platform.releng.tychoeclipsebuilder/eclipse/publishingFiles/templateFiles/buildproperties.phpHoldForLocalTests +++ b/eclipse.platform.releng.tychoeclipsebuilder/eclipse/publishingFiles/templateFiles/buildproperties.phpHoldForLocalTests @@ -34,7 +34,6 @@ $GIT_PUSH = "echo no git push done since Nightly"; $LOCAL_REPO = "/shared/eclipse/builds/4N/localMavenRepo"; $SCRIPT_PATH = "/shared/eclipse/builds/4N/production"; $STREAMS_PATH = "/shared/eclipse/builds/4N/gitCache/eclipse.platform.releng.aggregator/streams"; -$BUILD_KIND = "CBI"; $CBI_JDT_REPO_URL = ""; $CBI_JDT_REPO_URL_ARG = ""; $CBI_JDT_VERSION = ""; diff --git a/eclipse.platform.releng.tychoeclipsebuilder/eclipse/publishingFiles/testManifest.xml b/eclipse.platform.releng.tychoeclipsebuilder/eclipse/publishingFiles/testManifest.xml index ffbaca2b2..a3d6ab830 100644 --- a/eclipse.platform.releng.tychoeclipsebuilder/eclipse/publishingFiles/testManifest.xml +++ b/eclipse.platform.releng.tychoeclipsebuilder/eclipse/publishingFiles/testManifest.xml @@ -436,7 +436,7 @@ - @@ -1385,11 +1384,10 @@ - diff --git a/production/bashUtilities.shsource b/production/bashUtilities.shsource new file mode 100644 index 000000000..6247fc3bf --- /dev/null +++ b/production/bashUtilities.shsource @@ -0,0 +1,135 @@ +#!/usr/bin/env bash + +# General purpose utilities that are only related to bash (not +# the build, per se. + +# A general purpose utility to check number of arguments match +# what was expected. Its purpose is to help bullet-proof these scripts +# when future changes made. +# Example: (such as in first line of a function) +# checkNArgs $# 3 +# NOTE: can not be called, until buildDirectory has been defined. +checkNArgs () +{ + actual=$1 + expected=$2 + if [[ -z "$actual" || -z "$expected" ]] + then + BUILD_FAILED="${buildDirectory}/buildFailed-program-error" + printf "\n\tPROGRAM ERROR: number of arguments, $actual, or number expected, $expected, was not provided as arguments.\n\n" >${BUILD_FAILED} + printf " Called from ${FUNCNAME[1]}, called from line number ${BASH_LINENO[1]} in ${BASH_SOURCE[2]}.\n\n" >>${BUILD_FAILED} + return 9 + fi + # possible is used when there are optional arguments, corresponds to "max possible", then "expected" means "min possible" + possible=$3 + #echo " DEBUG checkNArgs funcName[1]: ${FUNCNAME[1]}" >> ${TRACE_OUTPUT} + #echo " DEBUG checkNArgs bashSource[2]: ${BASH_SOURCE[2]}" >> ${TRACE_OUTPUT} + #echo " DEBUG checkNArgs bashLineNo[1]: ${BASH_LINENO[1]}" >> ${TRACE_OUTPUT} + if [[ -n "${possible}" ]] + then + # if 3 total arguments, make sure first is between 2 and 3rd args (inclusive) + #echo DEBUG: actual: $actual + #echo DEBUG: min expected: $expected + #echo DEBUG: max possible: $possible + #arg1=$(( $expected <= $actual )) + #arg2=$(( $actual <= $possible )) + #echo "DEBUG: expected <= actual $arg1" + #echo "DEBUG: actual <= possible $arg2" + if (( $expected <= $actual )) && (( $actual <= $possible )) + then + #echo DEBUG: return 0 + return 0 + else + BUILD_FAILED="${buildDirectory}/buildFailed-program-error" + printf "\n\tPROGRAM ERROR: number of arguments, $actual, was not betwen expected, $expected, and possible, $possible.\n" >${BUILD_FAILED} + printf " Called from ${FUNCNAME[1]}, called from line number ${BASH_LINENO[1]} in ${BASH_SOURCE[2]}.\n\n" >>${BUILD_FAILED} + #echo DEBUG: return 1 + return 1 + fi + elif [[ $actual != $expected ]] + then + # depends on buildDirectory being exported + BUILD_FAILED="${buildDirectory}/buildFailed-program-error" + printf "\n\tPROGRAM ERROR: expected $expected arguments but was passed $actual.\n" >${BUILD_FAILED} + printf " Called from ${FUNCNAME[1]}, called from line number ${BASH_LINENO[1]} in ${BASH_SOURCE[2]}.\n\n" >>${BUILD_FAILED} + return 1 + else + return 0 + fi +} + +# general purpose utility for "hard exit" if return code not zero. +# especially useful to call/check after basic things that should normally +# easily succeeed. +# usage: +# checkForErrorExit $? "Failed to copy file (for example)" +checkForErrorExit () +{ + # arg 1 must be return code, $? + # arg 2 (remaining line) can be message to print before exiting do to non-zero exit code + exitCode=$1 + shift + message="$*" + if [[ -z "${exitCode}" ]] + then + echo "PROGRAM ERROR: checkForErrorExit called with no arguments" + exit 1 + fi + + if [[ -z "${message}" ]] + then + echo "WARNING: checkForErrorExit called without message" + message="(Calling program provided no message)" + fi + + # first make sure exit code is well formed + if [[ "${exitCode}" =~ [0] ]] + then + #echo "exitcode was zero" + exitrc=0 + else + if [[ "${exitCode}" =~ ^-?[0-9]+$ ]] + then + #echo "exitcode was indeed a legal, non-zero numeric return code" + exitrc=$exitCode + else + #echo "exitode was not numeric, so will force to 1" + exitrc=1 + fi + fi + + if [[ $exitrc != 0 ]] + then + echo + echo " ERROR. exit code: ${exitrc}" + echo " ERROR. message: ${message}" + echo + exit $exitrc + fi +} + +# A general purpose utility to check if variable is +# undefinded or empty string and exit if so, +# printing a useful diagnosic trace if variable was empty. +# NOTE: only the variable NAME should be passed as argument, +# note its value. Such as +# assertNotEmpty BUILD_ID +# not +# assertNotEmpty $BUILD_ID +assertNotEmpty () +{ + VAR_NAME=$1 + + #echo "DEBUG: VAR_NAME: $VAR_NAME" >&2 + #echo "DEBUG: \$VAR_NAME: ${!VAR_NAME}" >&2 + if [[ -z "${!VAR_NAME}" ]] + then + printf "\n\tPROGRAM ERROR: %s\n" "${VAR_NAME} was unexpectedly empty or undefined." + printf "\t%s\n\n" "in ${FUNCNAME[1]}, called from line number ${BASH_LINENO[0]} in ${BASH_SOURCE[1]}." + exit 1 + else + printf "\n\t%s:\t%s\n" "${VAR_NAME}" "${!VAR_NAME}" + fi + +} + diff --git a/production/bootstrapVariables.shsource b/production/bootstrapVariables.shsource new file mode 100644 index 000000000..b58f31368 --- /dev/null +++ b/production/bootstrapVariables.shsource @@ -0,0 +1,134 @@ +#!/usr/bin/env bash +# boot strap basic variable values, to drive Eclipse Platform builds. + +# we set RAWDATE first thing, just to make it more accurate of "start of build" +if [[ -z "${RAWDATE}" ]] +then + RAWDATE=$( date +%s ) + export RAWDATE +fi + +source "${SCRIPT_PATH}/bashUtilities.shsource" + +# USAGE: fn-git-cache BUILD_ROOT +# ROOT: /shared/eclipse/builds/${major}${type} +fn-git-cache () +{ + # we (now) leave branch our of git-cache path, or else "topic branches", such as + # 'david_williams/II20130409-0900' complicates directory structure + checkNArgs $# 1 + if [[ $? != 0 ]]; then return 1; fi + ROOT="$1"; shift + echo $ROOT/gitCache +} +# USAGE: fn-git-dir GIT_CACHE URL +# GIT_CACHE: /shared/eclipse/builds/R4_2_maintenance/gitCache +# URL: file:///gitroot/platform/eclipse.platform.releng.aggregator.git +fn-git-dir () +{ + checkNArgs $# 2 + if [[ $? != 0 ]]; then return 1; fi + GIT_CACHE="$1"; shift + URL="$1"; shift + echo $GIT_CACHE/$( basename "$URL" .git ) +} + + +# USAGE: fn-build-id BUILD_TYPE +# BUILD_TYPE: I, M, N, X, Y, P + +fn-build-id () +{ + checkNArgs $# 1 + if [[ $? != 0 ]]; then return 1; fi + BUILD_TYPE="$1"; shift + TIMESTAMP=$( date +%Y%m%d-%H%M --date='@'$RAWDATE ) + echo ${BUILD_TYPE}${TIMESTAMP} +} + + +# USAGE: fn-build-dir ROOT BUILD_ID STREAM +# ROOT: /shared/eclipse/builds +# BUILD_ID: M20121119-1900 +# STREAM: 4.3.0 +fn-build-dir () +{ + checkNArgs $# 3 + if [[ $? != 0 ]]; then return 1; fi + ROOT="$1"; shift + BUILD_ID="$1"; shift + STREAM="$1"; shift + eclipseStreamMajor=${STREAM:0:1} + dropDirSegment=siteDir/eclipse/downloads/drops + if (( $eclipseStreamMajor > 3 )) + then + dropDirSegment=siteDir/eclipse/downloads/drops4 + fi + echo $ROOT/$dropDirSegment/$BUILD_ID +} + + + # if not defined "externally", we use default for eclipse.org + if [[ -z "${REPO_AND_ACCESS}" ]] + then + # unless we are on 'build' machine + if [[ "build" == "$(hostname)" ]] + then + export REPO_AND_ACCESS=file:///gitroot + else + export REPO_AND_ACCESS=git://git.eclipse.org/gitroot + fi + fi + + if [[ -z "${AGGREGATOR_REPO}" ]] + then + export AGGREGATOR_REPO=${REPO_AND_ACCESS}/platform/eclipse.platform.releng.aggregator.git + fi + + assertNotEmpty BUILD_ROOT + assertNotEmpty AGGREGATOR_REPO + assertNotEmpty BUILD_TYPE + assertNotEmpty STREAM + + if [[ -z "${gitCache}" ]] + then + gitCache=$( fn-git-cache "${BUILD_ROOT}" ) + assertNotEmpty gitCache + export gitCache + else + echo "gitCache was already defined as $gitCache" + fi + + if [[ -z "${aggDir}" ]] + then + aggDir=$( fn-git-dir "$gitCache" "$AGGREGATOR_REPO" ) + assertNotEmpty aggDir + export aggDir + else + echo "aggDir was already defined as $aggDir" + fi + + if [[ -z "${BUILD_ID}" ]] + then + BUILD_ID=$(fn-build-id "$BUILD_TYPE" ) + assertNotEmpty BUILD_ID + export BUILD_ID + else + echo "BUILD_ID was already defined as $BUILD_ID" + fi + + if [[ -z "${buildDirectory}" ]] + then + buildDirectory=$( fn-build-dir "$BUILD_ROOT" "$BUILD_ID" "$STREAM" ) + assertNotEmpty buildDirectory + export buildDirectory + # this should be when we first create buildDirectory + echo "Making buildDirectory: ${buildDirectory}" + mkdir -p "${buildDirectory}" + # it appears GID bit is not always set correctly, so we'll do so explicitly + chmod -c g+s "${buildDirectory}" + else + echo "buildDirectory was already defined as $buildDirectory" + fi + + diff --git a/production/build-functions.shsource b/production/build-functions.shsource index 26d948d4e..f79846cf1 100755 --- a/production/build-functions.shsource +++ b/production/build-functions.shsource @@ -1,111 +1,10 @@ #!/usr/bin/env bash -# this is not really to be executed, but sourced where needed - -# A general purpose utility to check number of arguments match -# what was expected. Its purpose is to help bullet-proof these scripts -# when future changes made. -# Example: (such as in first line of a function) -# checkNArgs $# 3 -checkNArgs () -{ - actual=$1 - expected=$2 - if [[ -z "$actual" || -z "$expected" ]] - then - BUILD_FAILED="${buildDirectory}/buildFailed-program-error" - printf "\n\tPROGRAM ERROR: number of arguments, $actual, or number expected, $expected, was not provided as arguments.\n\n" >${BUILD_FAILED} - printf " Called from ${FUNCNAME[1]}, called from line number ${BASH_LINENO[1]} in ${BASH_SOURCE[2]}.\n\n" >>${BUILD_FAILED} - return 9 - fi -# possible is used when there are optional arguments, corresponds to "max possible", then "expected" means "min possible" - possible=$3 -#echo " DEBUG checkNArgs funcName[1]: ${FUNCNAME[1]}" >> ${TRACE_OUTPUT} -#echo " DEBUG checkNArgs bashSource[2]: ${BASH_SOURCE[2]}" >> ${TRACE_OUTPUT} -#echo " DEBUG checkNArgs bashLineNo[1]: ${BASH_LINENO[1]}" >> ${TRACE_OUTPUT} - if [[ -n "${possible}" ]] - then -# if 3 total arguments, make sure first is between 2 and 3rd args (inclusive) -#echo DEBUG: actual: $actual -#echo DEBUG: min expected: $expected -#echo DEBUG: max possible: $possible -#arg1=$(( $expected <= $actual )) -#arg2=$(( $actual <= $possible )) -#echo "DEBUG: expected <= actual $arg1" -#echo "DEBUG: actual <= possible $arg2" - if (( $expected <= $actual )) && (( $actual <= $possible )) - then -#echo DEBUG: return 0 - return 0 - else - BUILD_FAILED="${buildDirectory}/buildFailed-program-error" - printf "\n\tPROGRAM ERROR: number of arguments, $actual, was not betwen expected, $expected, and possible, $possible.\n" >${BUILD_FAILED} - printf " Called from ${FUNCNAME[1]}, called from line number ${BASH_LINENO[1]} in ${BASH_SOURCE[2]}.\n\n" >>${BUILD_FAILED} -#echo DEBUG: return 1 - return 1 - fi - elif [[ $actual != $expected ]] - then -# depends on buildDirectory being exported - BUILD_FAILED="${buildDirectory}/buildFailed-program-error" - printf "\n\tPROGRAM ERROR: expected $expected arguments but was passed $actual.\n" >${BUILD_FAILED} - printf " Called from ${FUNCNAME[1]}, called from line number ${BASH_LINENO[1]} in ${BASH_SOURCE[2]}.\n\n" >>${BUILD_FAILED} - return 1 - else - return 0 - fi -} - -# general purpose utility for "hard exit" if return code not zero. -# especially useful to call/check after basic things that should normally -# easily succeeed. -# usage: -# checkForErrorExit $? "Failed to copy file (for example)" -checkForErrorExit () -{ -# arg 1 must be return code, $? -# arg 2 (remaining line) can be message to print before exiting do to non-zero exit code - exitCode=$1 - shift - message="$*" - if [[ -z "${exitCode}" ]] - then - echo "PROGRAM ERROR: checkForErrorExit called with no arguments" - exit 1 - fi - - if [[ -z "${message}" ]] - then - echo "WARNING: checkForErrorExit called without message" - message="(Calling program provided no message)" - fi - -# first make sure exit code is well formed - if [[ "${exitCode}" =~ [0] ]] - then -#echo "exitcode was zero" - exitrc=0 - else - if [[ "${exitCode}" =~ ^-?[0-9]+$ ]] - then -#echo "exitcode was indeed a legal, non-zero numeric return code" - exitrc=$exitCode - else -#echo "exitode was not numeric, so will force to 1" - exitrc=1 - fi - fi - - if [[ $exitrc != 0 ]] - then - echo - echo " ERROR. exit code: ${exitrc}" - echo " ERROR. message: ${message}" - echo - exit $exitrc - fi -} +# General purpose utilities related to git and similar, +# to be sourced where needed +source ${SCRIPT_PATH}/bashUtilities.shsource +source ${SCRIPT_PATH}/bootstrapVariables.shsource # USAGE: fn-git-clone URL [BRANCH [TARGET_DIR] ] # URL: file:///gitroot/platform/eclipse.platform.releng.aggregator.git @@ -114,19 +13,19 @@ checkForErrorExit () fn-git-clone () { URL="$1"; shift - if [ $# -gt 0 ]; then - BRANCH_CMD="-b $1"; shift - fi - if [ $# -gt 0 ]; then - TARGET_DIR="$1"; shift - fi -# We specify --shared so that the -# directory has group write permissions, as well as g+sx, -# which is mostly done for easier "cleanup" of directories, etc., -# by anyone in "eclipse.platform.releng" group, not just e4Build -# owner id itself. - echo git clone --recursive $BRANCH_CMD $URL $TARGET_DIR - git clone --recursive $BRANCH_CMD $URL $TARGET_DIR + if [ $# -gt 0 ]; then + BRANCH_CMD="-b $1"; shift + fi + if [ $# -gt 0 ]; then + TARGET_DIR="$1"; shift + fi + # We specify --shared so that the + # directory has group write permissions, as well as g+sx, + # which is mostly done for easier "cleanup" of directories, etc., + # by anyone in "eclipse.platform.releng" group, not just e4Build + # owner id itself. + echo git clone --recursive $BRANCH_CMD $URL $TARGET_DIR + git clone --recursive $BRANCH_CMD $URL $TARGET_DIR } # USAGE: fn-git-checkout BRANCH | TAG @@ -134,131 +33,131 @@ fn-git-clone () fn-git-checkout () { BRANCH="$1"; shift -# always fetch before checkout, to be sure new -# branches are in local repo (in case we are switching -# to a new branch). - echo git fetch current repo before checkout - git fetch + # always fetch before checkout, to be sure new + # branches are in local repo (in case we are switching + # to a new branch). + echo git fetch current repo before checkout + git fetch + RC=$? + if [[ $RC != 0 ]] + then + echo "[ERROR] RC from git fetch: $RC" + else + echo git checkout "$BRANCH" --force + git checkout "$BRANCH" --force RC=$? if [[ $RC != 0 ]] - then - echo "[ERROR] RC from git fetch: $RC" - else - echo git checkout "$BRANCH" --force - git checkout "$BRANCH" --force - RC=$? - if [[ $RC != 0 ]] - then - echo "[ERROR] RC from git checkout: $RC" - fi - fi - return $RC + then + echo "[ERROR] RC from git checkout: $RC" + fi + fi + return $RC } # USAGE: fn-git-pull fn-git-pull () { echo git pull - git pull + git pull } # USAGE: fn-git-submodule-update fn-git-submodule-update () { echo "git submodule init" - git submodule init - echo "git submodule update --recursive" - git submodule update --recursive + git submodule init + echo "git submodule update --recursive" + git submodule update --recursive } # USAGE: fn-git-update-submodules fn-git-update-submodules () { echo git submodule update --init - git submodule update --init + git submodule update --init } # USAGE: fn-git-clean fn-git-clean () { -# See bug 400657 + # See bug 400657 echo git clean -f -d -x - git clean -f -d -x + git clean -f -d -x + RC=$? + if [[ $RC != 0 ]] + then + echo "[ERROR] RC from git clean: $RC" + return $RC + else + # after initial clean, we'll also use git stash to clean up any temp commits + # and modified tracked files, which will also call clean under the covers, I believe, + # so may eventually want to do this first? (But, that may not allow the -x type cleanup). + git stash RC=$? if [[ $RC != 0 ]] + then + echo "[ERROR] RC from git stash: $RC" + return $RC + else + # we don't really want to save this stash in build directory + git stash clear + RC=$? + if [[ $RC != 0 ]] then - echo "[ERROR] RC from git clean: $RC" + echo "[ERROR] RC from git stash clear: $RC" return $RC - else -# after initial clean, we'll also use git stash to clean up any temp commits -# and modified tracked files, which will also call clean under the covers, I believe, -# so may eventually want to do this first? (But, that may not allow the -x type cleanup). - git stash - RC=$? - if [[ $RC != 0 ]] - then - echo "[ERROR] RC from git stash: $RC" - return $RC - else -# we don't really want to save this stash in build directory - git stash clear - RC=$? - if [[ $RC != 0 ]] - then - echo "[ERROR] RC from git stash clear: $RC" - return $RC - fi - fi - fi - return 0 + fi + fi + fi + return 0 } # USAGE: fn-git-reset fn-git-reset () { echo git reset --hard $@ - git reset --hard $@ - RC=$? - if [[ $RC != 0 ]] - then - echo "[ERROR] RC from git reset: $RC" - fi - return $RC + git reset --hard $@ + RC=$? + if [[ $RC != 0 ]] + then + echo "[ERROR] RC from git reset: $RC" + fi + return $RC } # USAGE: fn-git-clean-submodules fn-git-clean-submodules () { -# See bug 400657 + # See bug 400657 echo git submodule foreach git clean -f -d -x - git submodule foreach git clean -f -d -x + git submodule foreach git clean -f -d -x + RC=$? + if [[ $RC != 0 ]] + then + echo "[ERROR] RC from submodule foreach git clean: $RC" + return $RC + else + # after initial clean, we'll also use git stash to clean up any temp commits + # and modified tracked files, which will also call clean under the covers, I believe, + # so may eventually want to do this first? (But, that may not allow the -x type cleanup). + git submodule foreach git stash RC=$? if [[ $RC != 0 ]] + then + echo "[ERROR] RC from git submodule stash: $RC" + return $RC + else + # we don't really want to save this stash in build directory + git submodule foreach git stash clear + RC=$? + if [[ $RC != 0 ]] then - echo "[ERROR] RC from submodule foreach git clean: $RC" + echo "[ERROR] RC from git submodule stash clear: $RC" return $RC - else -# after initial clean, we'll also use git stash to clean up any temp commits -# and modified tracked files, which will also call clean under the covers, I believe, -# so may eventually want to do this first? (But, that may not allow the -x type cleanup). - git submodule foreach git stash - RC=$? - if [[ $RC != 0 ]] - then - echo "[ERROR] RC from git submodule stash: $RC" - return $RC - else -# we don't really want to save this stash in build directory - git submodule foreach git stash clear - RC=$? - if [[ $RC != 0 ]] - then - echo "[ERROR] RC from git submodule stash clear: $RC" - return $RC - fi - fi - fi - return 0 + fi + fi + fi + return 0 } @@ -266,25 +165,13 @@ fn-git-clean-submodules () fn-git-reset-submodules () { echo git submodule foreach git reset --hard HEAD - git submodule foreach git reset --hard HEAD - RC=$? - if [[ $RC != 0 ]] - then - echo "[ERROR] RC from submodule foreach git reset: $RC" - fi - return $RC -} - -# USAGE: fn-build-id BUILD_TYPE -# BUILD_TYPE: I, M, N, X, Y, P -# TODO: depends on RAWDATE being exported/global -fn-build-id () -{ - checkNArgs $# 1 - if [[ $? != 0 ]]; then return 1; fi - BUILD_TYPE="$1"; shift - TIMESTAMP=$( date +%Y%m%d-%H%M --date='@'$RAWDATE ) - echo ${BUILD_TYPE}${TIMESTAMP} + git submodule foreach git reset --hard HEAD + RC=$? + if [[ $RC != 0 ]] + then + echo "[ERROR] RC from submodule foreach git reset: $RC" + fi + return $RC } # USAGE: fn-local-repo URL @@ -292,16 +179,16 @@ fn-build-id () fn-local-repo () { checkNArgs $# 1 - if [[ $? != 0 ]]; then return 1; fi -# we assume REPO_AND_ACCESS is exported from calling scripts - URL="$1"; shift - TO_REPLACE='git://git.eclipse.org/gitroot' - if [[ -n "${REPO_AND_ACCESS}" && "${REPO_AND_ACCESS}" != "${TO_REPLACE}" ]] - then - echo $URL | sed "s!${TO_REPLACE}!${REPO_AND_ACCESS}!g" - else - echo $URL - fi + if [[ $? != 0 ]]; then return 1; fi + # we assume REPO_AND_ACCESS is exported from calling scripts + URL="$1"; shift + TO_REPLACE='git://git.eclipse.org/gitroot' + if [[ -n "${REPO_AND_ACCESS}" && "${REPO_AND_ACCESS}" != "${TO_REPLACE}" ]] + then + echo $URL | sed "s!${TO_REPLACE}!${REPO_AND_ACCESS}!g" + else + echo $URL + fi } # USAGE: fn-git-clone-aggregator GIT_CACHE URL BRANCH @@ -311,19 +198,19 @@ fn-local-repo () fn-git-clone-aggregator () { checkNArgs $# 3 - if [[ $? != 0 ]]; then return 1; fi - GIT_CACHE="$1"; shift - URL="$1"; shift - BRANCH="$1"; shift - if [ ! -e "$GIT_CACHE" ]; then - mkdir -p "$GIT_CACHE" - fi - pushd "$GIT_CACHE" - fn-git-clone "$URL" "$BRANCH" - popd - pushd $(fn-git-dir "$GIT_CACHE" "$URL" ) - fn-git-submodule-update - popd + if [[ $? != 0 ]]; then return 1; fi + GIT_CACHE="$1"; shift + URL="$1"; shift + BRANCH="$1"; shift + if [ ! -e "$GIT_CACHE" ]; then + mkdir -p "$GIT_CACHE" + fi + pushd "$GIT_CACHE" + fn-git-clone "$URL" "$BRANCH" + popd + pushd $(fn-git-dir "$GIT_CACHE" "$URL" ) + fn-git-submodule-update + popd } # USAGE: fn-git-clean-aggregator AGGREGATOR_DIR BRANCH @@ -332,39 +219,39 @@ fn-git-clone-aggregator () fn-git-clean-aggregator () { checkNArgs $# 2 - if [[ $? != 0 ]]; then return 1; fi - AGGREGATOR_DIR="$1"; shift - BRANCH="$1"; shift - pushd "$AGGREGATOR_DIR" - fn-complete-status "Repo state status before any cleaning." - fn-git-clean + if [[ $? != 0 ]]; then return 1; fi + AGGREGATOR_DIR="$1"; shift + BRANCH="$1"; shift + pushd "$AGGREGATOR_DIR" + fn-complete-status "Repo state status before any cleaning." + fn-git-clean + RC=$? + if [[ $RC == 0 ]] + then + fn-git-clean-submodules + RC=$? + if [[ $RC == 0 ]] + then + fn-complete-status "Repo state status after cleaning but before reset." + fn-git-reset-submodules + RC=$? + if [[ $RC == 0 ]] + then + fn-complete-status "Repo state status after submodules reset but before checkout." + fn-git-checkout "$BRANCH" RC=$? if [[ $RC == 0 ]] - then - fn-git-clean-submodules - RC=$? - if [[ $RC == 0 ]] - then - fn-complete-status "Repo state status after cleaning but before reset." - fn-git-reset-submodules - RC=$? - if [[ $RC == 0 ]] - then - fn-complete-status "Repo state status after submodules reset but before checkout." - fn-git-checkout "$BRANCH" - RC=$? - if [[ $RC == 0 ]] - then - fn-complete-status "Repo state status after checkout but final reset." - fn-git-reset origin/$BRANCH - RC=$? - fn-complete-status "Repo state status after all cleanup in clean-aggregator." - fi - fi - fi - fi - popd - return $RC + then + fn-complete-status "Repo state status after checkout but final reset." + fn-git-reset origin/$BRANCH + RC=$? + fn-complete-status "Repo state status after all cleanup in clean-aggregator." + fi + fi + fi + fi + popd + return $RC } # USAGE: fn-git-clean-aggregator AGGREGATOR_DIR BRANCH @@ -373,85 +260,39 @@ fn-git-clean-aggregator () fn-git-clean-aggregator2 () { checkNArgs $# 2 - if [[ $? != 0 ]]; then return 1; fi - AGGREGATOR_DIR="$1"; shift - BRANCH="$1"; shift - pushd "$AGGREGATOR_DIR" - fn-complete-status "Repo state status before any cleaning." - fn-git-clean + if [[ $? != 0 ]]; then return 1; fi + AGGREGATOR_DIR="$1"; shift + BRANCH="$1"; shift + pushd "$AGGREGATOR_DIR" + fn-complete-status "Repo state status before any cleaning." + fn-git-clean + RC=$? + if [[ $RC == 0 ]] + then + fn-git-clean-submodules + RC=$? + if [[ $RC == 0 ]] + then + fn-complete-status "Repo state status after clean but before checkout." + fn-git-checkout "$BRANCH" + RC=$? + if [[ $RC == 0 ]] + then + fn-complete-status "Repo state status after checkout but before reset." + fn-git-reset origin/$BRANCH RC=$? if [[ $RC == 0 ]] - then - fn-git-clean-submodules - RC=$? - if [[ $RC == 0 ]] - then - fn-complete-status "Repo state status after clean but before checkout." - fn-git-checkout "$BRANCH" - RC=$? - if [[ $RC == 0 ]] - then - fn-complete-status "Repo state status after checkout but before reset." - fn-git-reset origin/$BRANCH - RC=$? - if [[ $RC == 0 ]] - then - fn-complete-status "Repo state status after reset but before forced update." - fn-git-update-submodules - RC=$? - fn-complete-status "Repo state status after all cleanup and init in clean-aggregator." - fi - fi - fi - fi - popd - return $RC -} - -# USAGE: fn-git-cache ROOT BRANCH -# ROOT: /shared/eclipse/builds -# BRANCH: R4_2_maintenance -fn-git-cache () -{ -# we (now) leave branch our of git-cache path, or else "topic branches", such as -# 'david_williams/II20130409-0900' complicates directory structure - checkNArgs $# 2 - if [[ $? != 0 ]]; then return 1; fi - ROOT="$1"; shift - BRANCH="$1"; shift - echo $ROOT/gitCache -} - -# USAGE: fn-git-dir GIT_CACHE URL -# GIT_CACHE: /shared/eclipse/builds/R4_2_maintenance/gitCache -# URL: file:///gitroot/platform/eclipse.platform.releng.aggregator.git -fn-git-dir () -{ - checkNArgs $# 2 - if [[ $? != 0 ]]; then return 1; fi - GIT_CACHE="$1"; shift - URL="$1"; shift - echo $GIT_CACHE/$( basename "$URL" .git ) -} - -# USAGE: fn-build-dir ROOT BUILD_ID STREAM -# ROOT: /shared/eclipse/builds -# BUILD_ID: M20121119-1900 -# STREAM: 4.3.0 -fn-build-dir () -{ - checkNArgs $# 3 - if [[ $? != 0 ]]; then return 1; fi - ROOT="$1"; shift - BUILD_ID="$1"; shift - STREAM="$1"; shift - eclipseStreamMajor=${STREAM:0:1} - dropDirSegment=siteDir/eclipse/downloads/drops - if (( $eclipseStreamMajor > 3 )) - then - dropDirSegment=siteDir/eclipse/downloads/drops4 + then + fn-complete-status "Repo state status after reset but before forced update." + fn-git-update-submodules + RC=$? + fn-complete-status "Repo state status after all cleanup and init in clean-aggregator." fi - echo $ROOT/$dropDirSegment/$BUILD_ID + fi + fi + fi + popd + return $RC } # USAGE: fn-basebuilder-dir ROOT BUILD_ID STREAM @@ -461,12 +302,12 @@ fn-build-dir () fn-basebuilder-dir () { checkNArgs $# 3 - if [[ $? != 0 ]]; then return 1; fi - ROOT="$1"; shift - BUILD_ID="$1"; shift - STREAM="$1"; shift - buildDirectory=$( fn-build-dir "$ROOT" "$BUILD_ID" "$STREAM" ) - echo $buildDirectory/org.eclipse.releng.basebuilder + if [[ $? != 0 ]]; then return 1; fi + ROOT="$1"; shift + BUILD_ID="$1"; shift + STREAM="$1"; shift + buildDirectory=$( fn-build-dir "$ROOT" "$BUILD_ID" "$STREAM" ) + echo $buildDirectory/org.eclipse.releng.basebuilder } @@ -480,74 +321,74 @@ fn-basebuilder-dir () fn-maven-build-aggregator () { checkNArgs $# 7 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - REPO_DIR="$1"; shift - LOCAL_REPO="$1"; shift - DEBUG=$1; shift - QUIET=$1; shift - SIGNING=$1; shift - MAVEN_BREE=$1; shift - - MARGS="-DbuildId=$BUILD_ID" - if $DEBUG; then - MARGS="$MARGS -X" - fi - if $QUIET; then - MARGS="$MARGS -q" - fi - if $SIGNING; then - MARGS="$MARGS -Peclipse-sign" - fi - if [[ -n "${PATCH_BUILD}" ]]; then - MARGS="$MARGS -PpatchBuild" - fi - - MARGS="$MARGS ${MAVEN_BREE}" - -# Here we count on $BUILD_TYPE being exported. TODO: make parameter later? - if [[ -n "$BUILD_TYPE" && "$BUILD_TYPE" == "N" ]] - then - FORCEQUALIFIERARG="-DforceContextQualifier=${BUILD_ID}" - else -# just for safety, make sure unset - FORCEQUALIFIERARG= - fi - - echo "DEBUG: Variables in $0" - echo "DEBUG: BUILD_ID: $BUILD_ID" - echo "DEBUG: REPO_DIR: $REPO_DIR" - echo "DEBUG: LOCAL_REPO: $LOCAL_REPO" - echo "DEBUG: DEBUG: $DEBUG" - echo "DEBUG: QUIET: $QUIET" - echo "" - echo "DEBUG: CBI_JDT_REPO_URL: $CBI_JDT_REPO_URL" - echo "DEBUG: CBI_JDT_VERSION: $CBI_JDT_VERSION" - echo "" - echo "DEBUG: SIGNING: $SIGNING" - echo "DEBUG: MAVEN_BREE: $MAVEN_BREE" - echo "DEBUG: MARGS: $MARGS" - echo "DEBUG: FORCEQUALIFIERARG: $FORCEQUALIFIERARG" - - - -# -fail-at-end gives chance for bundles to compile, even after -# a compile error. Might have to specify --fail-never to see them all? See -# http://www.sonatype.com/books/mvnref-book/reference/running-sect-options.html#running-sect-failure-option - pushd "$REPO_DIR" -#mvn $MARGS --fail-never -V \ -#mvn $MARGS --fail-at-end -V \ -#mvn $MARGS -V \ - mvn $MARGS --fail-at-end -V ${ALT_POM_FILE} \ - clean verify \ - -DskipTests=true \ - -Dmaven.repo.local=$LOCAL_REPO $CBI_JDT_REPO_URL_ARG $CBI_JDT_VERSION_ARG \ - -Dtycho.debug.artifactcomparator \ - -DcontinueOnFail=true -Djgit.dirtyWorkingTree=error \ - -DbuildTimestamp="${TIMESTAMP}" -DbuildType="${BUILD_TYPE}" -DbuildId="${BUILD_ID}" ${FORCEQUALIFIERARG} ${JAVA_DOC_TOOL} - rc=$? - popd - return $rc + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + REPO_DIR="$1"; shift + LOCAL_REPO="$1"; shift + DEBUG=$1; shift + QUIET=$1; shift + SIGNING=$1; shift + MAVEN_BREE=$1; shift + + MARGS="-DbuildId=$BUILD_ID" + if $DEBUG; then + MARGS="$MARGS -X" + fi + if $QUIET; then + MARGS="$MARGS -q" + fi + if $SIGNING; then + MARGS="$MARGS -Peclipse-sign" + fi + if [[ -n "${PATCH_BUILD}" ]]; then + MARGS="$MARGS -PpatchBuild" + fi + + MARGS="$MARGS ${MAVEN_BREE}" + + # Here we count on $BUILD_TYPE being exported. TODO: make parameter later? + if [[ -n "$BUILD_TYPE" && "$BUILD_TYPE" == "N" ]] + then + FORCEQUALIFIERARG="-DforceContextQualifier=${BUILD_ID}" + else + # just for safety, make sure unset + FORCEQUALIFIERARG= + fi + + echo "DEBUG: Variables in $0" + echo "DEBUG: BUILD_ID: $BUILD_ID" + echo "DEBUG: REPO_DIR: $REPO_DIR" + echo "DEBUG: LOCAL_REPO: $LOCAL_REPO" + echo "DEBUG: DEBUG: $DEBUG" + echo "DEBUG: QUIET: $QUIET" + echo "" + echo "DEBUG: CBI_JDT_REPO_URL: $CBI_JDT_REPO_URL" + echo "DEBUG: CBI_JDT_VERSION: $CBI_JDT_VERSION" + echo "" + echo "DEBUG: SIGNING: $SIGNING" + echo "DEBUG: MAVEN_BREE: $MAVEN_BREE" + echo "DEBUG: MARGS: $MARGS" + echo "DEBUG: FORCEQUALIFIERARG: $FORCEQUALIFIERARG" + + + + # -fail-at-end gives chance for bundles to compile, even after + # a compile error. Might have to specify --fail-never to see them all? See + # http://www.sonatype.com/books/mvnref-book/reference/running-sect-options.html#running-sect-failure-option + pushd "$REPO_DIR" + #mvn $MARGS --fail-never -V \ + #mvn $MARGS --fail-at-end -V \ + #mvn $MARGS -V \ + mvn $MARGS --fail-at-end -V ${ALT_POM_FILE} \ + clean verify \ + -DskipTests=true \ + -Dmaven.repo.local=$LOCAL_REPO $CBI_JDT_REPO_URL_ARG $CBI_JDT_VERSION_ARG \ + -Dtycho.debug.artifactcomparator \ + -DcontinueOnFail=true -Djgit.dirtyWorkingTree=error \ + -DbuildTimestamp="${TIMESTAMP}" -DbuildType="${BUILD_TYPE}" -DbuildId="${BUILD_ID}" ${FORCEQUALIFIERARG} ${JAVA_DOC_TOOL} + rc=$? + popd + return $rc } # USAGE: fn-submodule-checkout BUILD_ID REPO_DIR REPOSITORIES_TXT @@ -558,29 +399,29 @@ fn-maven-build-aggregator () fn-submodule-checkout () { checkNArgs $# 4 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - REPO_DIR="$1"; shift - SCRIPT="$1"; shift - REPOSITORIES_TXT="$1"; shift - pushd "$REPO_DIR" - git submodule foreach "/bin/bash $SCRIPT $REPOSITORIES_TXT \$name" - uninit=$( git submodule | grep "^-" | cut -f2 -d" " | sort -u ) - if [ ! -z "$uninit" ]; then - echo Some modules are not initialized: $uninit - return - fi - conflict=$( git submodule | grep "^U" | cut -f2 -d" " | sort -u ) - if [ ! -z "$conflict" ]; then - echo Some modules have conflicts: $conflict - return - fi - adds=$( git submodule | grep "^+" | cut -f2 -d" " ) - if [ -z "$adds" ]; then - echo No updates for the submodules - return - fi - popd + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + REPO_DIR="$1"; shift + SCRIPT="$1"; shift + REPOSITORIES_TXT="$1"; shift + pushd "$REPO_DIR" + git submodule foreach "/bin/bash $SCRIPT $REPOSITORIES_TXT \$name" + uninit=$( git submodule | grep "^-" | cut -f2 -d" " | sort -u ) + if [ ! -z "$uninit" ]; then + echo Some modules are not initialized: $uninit + return + fi + conflict=$( git submodule | grep "^U" | cut -f2 -d" " | sort -u ) + if [ ! -z "$conflict" ]; then + echo Some modules have conflicts: $conflict + return + fi + adds=$( git submodule | grep "^+" | cut -f2 -d" " ) + if [ -z "$adds" ]; then + echo No updates for the submodules + return + fi + popd } # USAGE: fn-add-submodule-updates REPO_DIR @@ -588,17 +429,17 @@ fn-submodule-checkout () fn-add-submodule-updates () { checkNArgs $# 1 - if [[ $? != 0 ]]; then return 1; fi - REPO_DIR="$1"; shift - pushd "$REPO_DIR" - adds=$( git submodule | grep "^+" | cut -f2 -d" " ) - if [ -z "$adds" ]; then - echo No updates for the submodules - return - fi - echo git add $adds - git add $adds - popd + if [[ $? != 0 ]]; then return 1; fi + REPO_DIR="$1"; shift + pushd "$REPO_DIR" + adds=$( git submodule | grep "^+" | cut -f2 -d" " ) + if [ -z "$adds" ]; then + echo No updates for the submodules + return + fi + echo git add $adds + git add $adds + popd } # USAGE: fn-tag-build-inputs BUILD_ID REPO_DIR REPOSITORIES_TXT @@ -608,15 +449,15 @@ fn-add-submodule-updates () fn-tag-build-inputs () { checkNArgs $# 3 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - REPO_DIR="$1"; shift - REPOSITORIES_TXT="$1"; shift - pushd "$REPO_DIR" - git submodule foreach "if grep \"^\${name}:\" $REPOSITORIES_TXT >/dev/null; then git tag $BUILD_ID; $GIT_PUSH --verbose origin $BUILD_ID; else echo Skipping \$name; fi" - git tag $BUILD_ID - $GIT_PUSH --verbose origin $BUILD_ID - popd + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + REPO_DIR="$1"; shift + REPOSITORIES_TXT="$1"; shift + pushd "$REPO_DIR" + git submodule foreach "if grep \"^\${name}:\" $REPOSITORIES_TXT >/dev/null; then git tag $BUILD_ID; $GIT_PUSH --verbose origin $BUILD_ID; else echo Skipping \$name; fi" + git tag $BUILD_ID + $GIT_PUSH --verbose origin $BUILD_ID + popd } # USAGE: fn-pom-version-updater REPO_DIR LOCAL_REPO DEBUG QUIET @@ -627,55 +468,55 @@ fn-pom-version-updater () { checkNArgs $# 4 - if [[ $? != 0 ]]; then return 1; fi - REPO_DIR="$1"; shift - LOCAL_REPO="$1"; shift - DEBUG=$1; shift - QUIET=$1; shift - - MARGS="" - if $DEBUG; then - MARGS="$MARGS -X" - fi - if $QUIET; then - MARGS="$MARGS -q" - fi - if [[ -n "${PATCH_BUILD}" ]]; then - MARGS="$MARGS -PpatchBuild" - fi - echo "DEBUG: Variables in $0" - echo "DEBUG: PATCH_BUILD: $PATCH_BUILD" - echo "DEBUG: REPO_DIR: $REPO_DIR" - echo "DEBUG: LOCAL_REPO: $LOCAL_REPO" - echo "DEBUG: DEBUG: $DEBUG" - echo "DEBUG: QUIET: $QUIET" - echo "DEBUG: MARGS: $MARGS" -# fail fast if not set up correctly - rc=$(fn-check-dir-exists TMP_DIR) - checkForErrorExit "$rc" "$rc" - - report=${TMP_DIR}/pom_${BUILD_ID}.txt - pushd "$REPO_DIR" - mvn $MARGS ${ALT_POM_FILE} \ - org.eclipse.tycho:tycho-versions-plugin:0.20.0:update-pom \ - -Dmaven.repo.local=$LOCAL_REPO \ - -DbuildTimestamp="${TIMESTAMP}" -DbuildType="${BUILD_TYPE}" -DbuildId="${BUILD_ID}" - RC=$? - if [[ $RC != 0 ]] - then - echo "ERROR: tycho-versions-plugin:update-pom returned non-zero return code: $RC" >&2 - else - changes=$( git status --short -uno | cut -c4- ) - if [ -z "$changes" ]; then - echo "INFO: No changes in pom versions" >&2 - RC=0 - else - echo "INFO: Changes in pom versions: $changes" >&2 - RC=0 - fi - fi - popd - return $RC + if [[ $? != 0 ]]; then return 1; fi + REPO_DIR="$1"; shift + LOCAL_REPO="$1"; shift + DEBUG=$1; shift + QUIET=$1; shift + + MARGS="" + if $DEBUG; then + MARGS="$MARGS -X" + fi + if $QUIET; then + MARGS="$MARGS -q" + fi + if [[ -n "${PATCH_BUILD}" ]]; then + MARGS="$MARGS -PpatchBuild" + fi + echo "DEBUG: Variables in $0" + echo "DEBUG: PATCH_BUILD: $PATCH_BUILD" + echo "DEBUG: REPO_DIR: $REPO_DIR" + echo "DEBUG: LOCAL_REPO: $LOCAL_REPO" + echo "DEBUG: DEBUG: $DEBUG" + echo "DEBUG: QUIET: $QUIET" + echo "DEBUG: MARGS: $MARGS" + # fail fast if not set up correctly + rc=$(fn-check-dir-exists TMP_DIR) + checkForErrorExit "$rc" "$rc" + + report=${TMP_DIR}/pom_${BUILD_ID}.txt + pushd "$REPO_DIR" + mvn $MARGS ${ALT_POM_FILE} \ + org.eclipse.tycho:tycho-versions-plugin:0.20.0:update-pom \ + -Dmaven.repo.local=$LOCAL_REPO \ + -DbuildTimestamp="${TIMESTAMP}" -DbuildType="${BUILD_TYPE}" -DbuildId="${BUILD_ID}" + RC=$? + if [[ $RC != 0 ]] + then + echo "ERROR: tycho-versions-plugin:update-pom returned non-zero return code: $RC" >&2 + else + changes=$( git status --short -uno | cut -c4- ) + if [ -z "$changes" ]; then + echo "INFO: No changes in pom versions" >&2 + RC=0 + else + echo "INFO: Changes in pom versions: $changes" >&2 + RC=0 + fi + fi + popd + return $RC } # USAGE: fn-pom-version-update-with-commit BUILD_ID REPO_DIR LOCAL_REPO @@ -688,46 +529,46 @@ fn-pom-version-update-with-commit () { checkNArgs $# 3 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - REPO_DIR="$1"; shift - LOCAL_REPO="$1"; shift - -# fail fast if not set up correctly - rc=$(fn-check-dir-exists TMP_DIR) - checkForErrorExit "$rc" "$rc" - - report=${TMP_DIR}/pom_${BUILD_ID}.txt - MARGS="-DbuildId=$BUILD_ID" - if [[ -n "${PATCH_BUILD}" ]]; then - MARGS="$MARGS -PpatchBuild" - fi - pushd "$REPO_DIR" - mvn $MARGS ${ALT_POM_FILE} \ - org.eclipse.tycho:tycho-versions-plugin:0.20.0:update-pom \ - -Dmaven.repo.local=$LOCAL_REPO \ - -DbuildTimestamp="${TIMESTAMP}" -DbuildType="${BUILD_TYPE}" -DbuildId="${BUILD_ID}" - changes=$( git status --short -uno | cut -c4- ) - if [ -z "$changes" ]; then - echo No changes in pom versions - return - fi - repos=$( git status --short -uno | cut -c4- | grep -v pom.xml ) - for CURRENT_REPO in $repos; do - pushd "$CURRENT_REPO" - pom_only=$( git status --short -uno | grep -v pom.xml | wc -l ) - if [[ pom_only == 0 ]]; then - git add $( git status --short -uno | cut -c4- ) - git commit -m "Update pom versions for build $BUILD_ID" - echo $GIT_PUSH origin HEAD - else - echo Unable to update poms for $CURRENT_REPO - fi - popd - done - echo git add $changes - git add $changes - popd + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + REPO_DIR="$1"; shift + LOCAL_REPO="$1"; shift + + # fail fast if not set up correctly + rc=$(fn-check-dir-exists TMP_DIR) + checkForErrorExit "$rc" "$rc" + + report=${TMP_DIR}/pom_${BUILD_ID}.txt + MARGS="-DbuildId=$BUILD_ID" + if [[ -n "${PATCH_BUILD}" ]]; then + MARGS="$MARGS -PpatchBuild" + fi + pushd "$REPO_DIR" + mvn $MARGS ${ALT_POM_FILE} \ + org.eclipse.tycho:tycho-versions-plugin:0.20.0:update-pom \ + -Dmaven.repo.local=$LOCAL_REPO \ + -DbuildTimestamp="${TIMESTAMP}" -DbuildType="${BUILD_TYPE}" -DbuildId="${BUILD_ID}" + changes=$( git status --short -uno | cut -c4- ) + if [ -z "$changes" ]; then + echo No changes in pom versions + return + fi + repos=$( git status --short -uno | cut -c4- | grep -v pom.xml ) + for CURRENT_REPO in $repos; do + pushd "$CURRENT_REPO" + pom_only=$( git status --short -uno | grep -v pom.xml | wc -l ) + if [[ pom_only == 0 ]]; then + git add $( git status --short -uno | cut -c4- ) + git commit -m "Update pom versions for build $BUILD_ID" + echo $GIT_PUSH origin HEAD + else + echo Unable to update poms for $CURRENT_REPO + fi + popd + done + echo git add $changes + git add $changes + popd } # USAGE: fn-gather-repo BUILD_ID REPO_DIR BUILD_DIR @@ -737,30 +578,30 @@ fn-pom-version-update-with-commit () fn-gather-repo () { checkNArgs $# 3 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - REPO_DIR="$1"; shift - BUILD_DIR="$1"; shift - if [[ -n "${PATCH_BUILD}" ]] - then - ORIG_PATH=eclipse.platform.releng.tychoeclipsebuilder/${PATCH_BUILD}/eclipse.releng.repository.${PATCH_BUILD}/target/site - TARGET_PATH=eclipse.platform.releng.tychoeclipsebuilder/${PATCH_BUILD}/eclipse.releng.repository.${PATCH_BUILD}/target/repository - ORIG_DIR_REPOSITORY=$REPO_DIR/${ORIG_PATH} - REPO_DIR_REPOSITORY=$REPO_DIR/${TARGET_PATH} - mv ${ORIG_DIR_REPOSITORY} ${REPO_DIR_REPOSITORY} - - else - TARGET_PATH=eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/repository - REPO_DIR_REPOSITORY=$REPO_DIR/$TAGET_PATH - fi - if [[ -d "$REPO_DIR_REPOSITORY" ]] - then - pushd "$REPO_DIR" - cp -r ${TARGET_PATH} $BUILD_DIR - popd - else - echo " ERROR: $REPO_DIR_REPOSITORY did not exist in fn-gather-repo" - fi + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + REPO_DIR="$1"; shift + BUILD_DIR="$1"; shift + if [[ -n "${PATCH_BUILD}" ]] + then + ORIG_PATH=eclipse.platform.releng.tychoeclipsebuilder/${PATCH_BUILD}/eclipse.releng.repository.${PATCH_BUILD}/target/site + TARGET_PATH=eclipse.platform.releng.tychoeclipsebuilder/${PATCH_BUILD}/eclipse.releng.repository.${PATCH_BUILD}/target/repository + ORIG_DIR_REPOSITORY=$REPO_DIR/${ORIG_PATH} + REPO_DIR_REPOSITORY=$REPO_DIR/${TARGET_PATH} + mv ${ORIG_DIR_REPOSITORY} ${REPO_DIR_REPOSITORY} + + else + TARGET_PATH=eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/repository + REPO_DIR_REPOSITORY=$REPO_DIR/$TAGET_PATH + fi + if [[ -d "$REPO_DIR_REPOSITORY" ]] + then + pushd "$REPO_DIR" + cp -r ${TARGET_PATH} $BUILD_DIR + popd + else + echo " ERROR: $REPO_DIR_REPOSITORY did not exist in fn-gather-repo" + fi } @@ -772,35 +613,35 @@ fn-gather-repo () fn-gather-sdk () { checkNArgs $# 3 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - REPO_DIR="$1"; shift - BUILD_DIR="$1"; shift - TARGET_PRODUCTS="$REPO_DIR"/eclipse.platform.releng.tychoeclipsebuilder/sdk/target/products - if [[ -d "$TARGET_PRODUCTS" ]] - then - pushd "$TARGET_PRODUCTS" - cp org.eclipse.sdk.ide-aix.gtk.ppc64.zip "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-aix-gtk-ppc64.zip - cp org.eclipse.sdk.ide-aix.gtk.ppc.zip "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-aix-gtk-ppc.zip - cp org.eclipse.sdk.ide-hpux.gtk.ia64.zip "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-hpux-gtk-ia64.zip - cp org.eclipse.sdk.ide-linux.gtk.ppc.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-linux-gtk-ppc.tar.gz - cp org.eclipse.sdk.ide-linux.gtk.ppc64.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-linux-gtk-ppc64.tar.gz - cp org.eclipse.sdk.ide-linux.gtk.s390.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-linux-gtk-s390.tar.gz - cp org.eclipse.sdk.ide-linux.gtk.s390x.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-linux-gtk-s390x.tar.gz - cp org.eclipse.sdk.ide-linux.gtk.x86_64.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-linux-gtk-x86_64.tar.gz - cp org.eclipse.sdk.ide-linux.gtk.x86.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-linux-gtk.tar.gz -#cp org.eclipse.sdk.ide-macosx.cocoa.x86_64.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-macosx-cocoa-x86_64.tar.gz - tar cfz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-macosx-cocoa-x86_64.tar.gz -C org.eclipse.sdk.ide/macosx/cocoa/x86_64 eclipse -#cp org.eclipse.sdk.ide-macosx.cocoa.x86.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-macosx-cocoa.tar.gz - tar cfz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-macosx-cocoa.tar.gz -C org.eclipse.sdk.ide/macosx/cocoa/x86 eclipse - cp org.eclipse.sdk.ide-solaris.gtk.sparc.zip "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-solaris-gtk.zip - cp org.eclipse.sdk.ide-solaris.gtk.x86.zip "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-solaris-gtk-x86.zip - cp org.eclipse.sdk.ide-win32.win32.x86_64.zip "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-win32-x86_64.zip - cp org.eclipse.sdk.ide-win32.win32.x86.zip "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-win32.zip - popd - else - echo " ERROR: $TARGET_PRODUCTS did not exist in fn-gather-sdks" - fi + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + REPO_DIR="$1"; shift + BUILD_DIR="$1"; shift + TARGET_PRODUCTS="$REPO_DIR"/eclipse.platform.releng.tychoeclipsebuilder/sdk/target/products + if [[ -d "$TARGET_PRODUCTS" ]] + then + pushd "$TARGET_PRODUCTS" + cp org.eclipse.sdk.ide-aix.gtk.ppc64.zip "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-aix-gtk-ppc64.zip + cp org.eclipse.sdk.ide-aix.gtk.ppc.zip "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-aix-gtk-ppc.zip + cp org.eclipse.sdk.ide-hpux.gtk.ia64.zip "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-hpux-gtk-ia64.zip + cp org.eclipse.sdk.ide-linux.gtk.ppc.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-linux-gtk-ppc.tar.gz + cp org.eclipse.sdk.ide-linux.gtk.ppc64.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-linux-gtk-ppc64.tar.gz + cp org.eclipse.sdk.ide-linux.gtk.s390.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-linux-gtk-s390.tar.gz + cp org.eclipse.sdk.ide-linux.gtk.s390x.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-linux-gtk-s390x.tar.gz + cp org.eclipse.sdk.ide-linux.gtk.x86_64.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-linux-gtk-x86_64.tar.gz + cp org.eclipse.sdk.ide-linux.gtk.x86.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-linux-gtk.tar.gz + #cp org.eclipse.sdk.ide-macosx.cocoa.x86_64.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-macosx-cocoa-x86_64.tar.gz + tar cfz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-macosx-cocoa-x86_64.tar.gz -C org.eclipse.sdk.ide/macosx/cocoa/x86_64 eclipse + #cp org.eclipse.sdk.ide-macosx.cocoa.x86.tar.gz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-macosx-cocoa.tar.gz + tar cfz "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-macosx-cocoa.tar.gz -C org.eclipse.sdk.ide/macosx/cocoa/x86 eclipse + cp org.eclipse.sdk.ide-solaris.gtk.sparc.zip "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-solaris-gtk.zip + cp org.eclipse.sdk.ide-solaris.gtk.x86.zip "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-solaris-gtk-x86.zip + cp org.eclipse.sdk.ide-win32.win32.x86_64.zip "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-win32-x86_64.zip + cp org.eclipse.sdk.ide-win32.win32.x86.zip "$BUILD_DIR"/eclipse-SDK-${BUILD_ID}-win32.zip + popd + else + echo " ERROR: $TARGET_PRODUCTS did not exist in fn-gather-sdks" + fi } # USAGE: fn-gather-platform BUILD_ID REPO_DIR BUILD_DIR @@ -810,35 +651,35 @@ fn-gather-sdk () fn-gather-platform () { checkNArgs $# 3 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - REPO_DIR="$1"; shift - BUILD_DIR="$1"; shift - TARGET_PRODUCTS="$REPO_DIR"/eclipse.platform.releng.tychoeclipsebuilder/platform/target/products - if [[ -d "$TARGET_PRODUCTS" ]] - then - pushd "$TARGET_PRODUCTS" - cp org.eclipse.platform.ide-aix.gtk.ppc64.zip "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-aix-gtk-ppc64.zip - cp org.eclipse.platform.ide-aix.gtk.ppc.zip "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-aix-gtk-ppc.zip - cp org.eclipse.platform.ide-hpux.gtk.ia64.zip "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-hpux-gtk-ia64.zip - cp org.eclipse.platform.ide-linux.gtk.ppc.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-linux-gtk-ppc.tar.gz - cp org.eclipse.platform.ide-linux.gtk.ppc64.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-linux-gtk-ppc64.tar.gz - cp org.eclipse.platform.ide-linux.gtk.s390.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-linux-gtk-s390.tar.gz - cp org.eclipse.platform.ide-linux.gtk.s390x.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-linux-gtk-s390x.tar.gz - cp org.eclipse.platform.ide-linux.gtk.x86_64.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-linux-gtk-x86_64.tar.gz - cp org.eclipse.platform.ide-linux.gtk.x86.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-linux-gtk.tar.gz -#cp org.eclipse.platform.ide-macosx.cocoa.x86_64.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-macosx-cocoa-x86_64.tar.gz - tar cfz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-macosx-cocoa-x86_64.tar.gz -C org.eclipse.platform.ide/macosx/cocoa/x86_64 eclipse -#cp org.eclipse.platform.ide-macosx.cocoa.x86.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-macosx-cocoa.tar.gz - tar cfz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-macosx-cocoa.tar.gz -C org.eclipse.platform.ide/macosx/cocoa/x86 eclipse - cp org.eclipse.platform.ide-solaris.gtk.sparc.zip "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-solaris-gtk.zip - cp org.eclipse.platform.ide-solaris.gtk.x86.zip "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-solaris-gtk-x86.zip - cp org.eclipse.platform.ide-win32.win32.x86_64.zip "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-win32-x86_64.zip - cp org.eclipse.platform.ide-win32.win32.x86.zip "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-win32.zip - popd - else - echo " ERROR: $TARGET_PRODUCTS did not exist in fn-gather-platform" - fi + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + REPO_DIR="$1"; shift + BUILD_DIR="$1"; shift + TARGET_PRODUCTS="$REPO_DIR"/eclipse.platform.releng.tychoeclipsebuilder/platform/target/products + if [[ -d "$TARGET_PRODUCTS" ]] + then + pushd "$TARGET_PRODUCTS" + cp org.eclipse.platform.ide-aix.gtk.ppc64.zip "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-aix-gtk-ppc64.zip + cp org.eclipse.platform.ide-aix.gtk.ppc.zip "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-aix-gtk-ppc.zip + cp org.eclipse.platform.ide-hpux.gtk.ia64.zip "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-hpux-gtk-ia64.zip + cp org.eclipse.platform.ide-linux.gtk.ppc.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-linux-gtk-ppc.tar.gz + cp org.eclipse.platform.ide-linux.gtk.ppc64.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-linux-gtk-ppc64.tar.gz + cp org.eclipse.platform.ide-linux.gtk.s390.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-linux-gtk-s390.tar.gz + cp org.eclipse.platform.ide-linux.gtk.s390x.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-linux-gtk-s390x.tar.gz + cp org.eclipse.platform.ide-linux.gtk.x86_64.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-linux-gtk-x86_64.tar.gz + cp org.eclipse.platform.ide-linux.gtk.x86.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-linux-gtk.tar.gz + #cp org.eclipse.platform.ide-macosx.cocoa.x86_64.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-macosx-cocoa-x86_64.tar.gz + tar cfz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-macosx-cocoa-x86_64.tar.gz -C org.eclipse.platform.ide/macosx/cocoa/x86_64 eclipse + #cp org.eclipse.platform.ide-macosx.cocoa.x86.tar.gz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-macosx-cocoa.tar.gz + tar cfz "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-macosx-cocoa.tar.gz -C org.eclipse.platform.ide/macosx/cocoa/x86 eclipse + cp org.eclipse.platform.ide-solaris.gtk.sparc.zip "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-solaris-gtk.zip + cp org.eclipse.platform.ide-solaris.gtk.x86.zip "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-solaris-gtk-x86.zip + cp org.eclipse.platform.ide-win32.win32.x86_64.zip "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-win32-x86_64.zip + cp org.eclipse.platform.ide-win32.win32.x86.zip "$BUILD_DIR"/eclipse-platform-${BUILD_ID}-win32.zip + popd + else + echo " ERROR: $TARGET_PRODUCTS did not exist in fn-gather-platform" + fi } # USAGE: fn-gather-swt-zips BUILD_ID REPO_DIR BUILD_DIR @@ -848,22 +689,22 @@ fn-gather-platform () fn-gather-swt-zips () { checkNArgs $# 3 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - REPO_DIR="$1"; shift - BUILD_DIR="$1"; shift -# TODO: this directory sanity check does not accomplish much, since "binaries/bundles" always -# exists. Results in "not found" msg. Doubt there's any simple solution. - SWT_BUNDLES_DIR="$REPO_DIR"/eclipse.platform.swt.binaries/bundles - if [[ -d "$SWT_BUNDLES_DIR" ]] - then - pushd "$SWT_BUNDLES_DIR" - cp */target/*.zip "$BUILD_DIR" - popd - else - echo " ERROR: $SWT_BUNDLES_DIR did not exist in fn-gather-swt-zips" - fi - } + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + REPO_DIR="$1"; shift + BUILD_DIR="$1"; shift + # TODO: this directory sanity check does not accomplish much, since "binaries/bundles" always + # exists. Results in "not found" msg. Doubt there's any simple solution. + SWT_BUNDLES_DIR="$REPO_DIR"/eclipse.platform.swt.binaries/bundles + if [[ -d "$SWT_BUNDLES_DIR" ]] + then + pushd "$SWT_BUNDLES_DIR" + cp */target/*.zip "$BUILD_DIR" + popd + else + echo " ERROR: $SWT_BUNDLES_DIR did not exist in fn-gather-swt-zips" + fi +} # USAGE: fn-gather-test-zips BUILD_ID REPO_DIR BUILD_DIR # BUILD_ID: I20121116-0700 @@ -871,29 +712,29 @@ fn-gather-swt-zips () # BUILD_DIR: /shared/eclipse/builds/R4_2_maintenance/dirs/M20121120-1747 fn-gather-test-zips () { -checkNArgs $# 3 -if [[ $? != 0 ]]; then return 1; fi -BUILD_ID="$1"; shift -REPO_DIR="$1"; shift -BUILD_DIR="$1"; shift -TEST_ZIP_DIR="$REPO_DIR"/eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/target -if [[ -d "$TEST_ZIP_DIR" ]] -then -pushd "$TEST_ZIP_DIR" -cp eclipse-junit-tests-bundle.zip "$BUILD_DIR"/eclipse-Automated-Tests-${BUILD_ID}.zip -TEST_FRAMEWORK_DIR=$TEST_ZIP_DIR/eclipse-test-framework -if [[ -d "$TEST_FRAMEWORK_DIR" ]] -then -pushd "$TEST_FRAMEWORK_DIR" -zip -r "$BUILD_DIR"/eclipse-test-framework-${BUILD_ID}.zip * -popd -else -echo " ERROR: $TEST_FRAMEWORK_DIR did not exist in fn-gather-test-zips." -fi -popd -else -echo " ERROR: $TEST_ZIP_DIR did not exist in fn-gather-test-zips." -fi + checkNArgs $# 3 + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + REPO_DIR="$1"; shift + BUILD_DIR="$1"; shift + TEST_ZIP_DIR="$REPO_DIR"/eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/target + if [[ -d "$TEST_ZIP_DIR" ]] + then + pushd "$TEST_ZIP_DIR" + cp eclipse-junit-tests-bundle.zip "$BUILD_DIR"/eclipse-Automated-Tests-${BUILD_ID}.zip + TEST_FRAMEWORK_DIR=$TEST_ZIP_DIR/eclipse-test-framework + if [[ -d "$TEST_FRAMEWORK_DIR" ]] + then + pushd "$TEST_FRAMEWORK_DIR" + zip -r "$BUILD_DIR"/eclipse-test-framework-${BUILD_ID}.zip * + popd + else + echo " ERROR: $TEST_FRAMEWORK_DIR did not exist in fn-gather-test-zips." + fi + popd + else + echo " ERROR: $TEST_ZIP_DIR did not exist in fn-gather-test-zips." + fi } @@ -903,23 +744,23 @@ fi # BUILD_DIR: /shared/eclipse/builds/R4_2_maintenance/dirs/M20121120-1747 fn-gather-ecj-jars () { -checkNArgs $# 3 -if [[ $? != 0 ]]; then return 1; fi -BUILD_ID="$1"; shift -REPO_DIR="$1"; shift -BUILD_DIR="$1"; shift -ECJ_JAR_DIR="$REPO_DIR"/eclipse.jdt.core/org.eclipse.jdt.core/target -if [[ -d "$ECJ_JAR_DIR" ]] -then -pushd "$ECJ_JAR_DIR" -# The blob wildcard ('*') is to match "any version number", e.g. 3.9.0, 3.9.1, etc. -cp org.eclipse.jdt.core-*-SNAPSHOT-batch-compiler.jar "$BUILD_DIR"/ecj-${BUILD_ID}.jar -cp org.eclipse.jdt.core-*-SNAPSHOT-batch-compiler-src.jar "$BUILD_DIR"/ecjsrc-${BUILD_ID}.jar -popd -else -echo " ERROR: $ECJ_JAR_DIR did not exist in fn-gather-ecj-jars." -#TODO eventually, fail the build here? If they don't exist, something must be pretty wrong? -fi + checkNArgs $# 3 + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + REPO_DIR="$1"; shift + BUILD_DIR="$1"; shift + ECJ_JAR_DIR="$REPO_DIR"/eclipse.jdt.core/org.eclipse.jdt.core/target + if [[ -d "$ECJ_JAR_DIR" ]] + then + pushd "$ECJ_JAR_DIR" + # The blob wildcard ('*') is to match "any version number", e.g. 3.9.0, 3.9.1, etc. + cp org.eclipse.jdt.core-*-SNAPSHOT-batch-compiler.jar "$BUILD_DIR"/ecj-${BUILD_ID}.jar + cp org.eclipse.jdt.core-*-SNAPSHOT-batch-compiler-src.jar "$BUILD_DIR"/ecjsrc-${BUILD_ID}.jar + popd + else + echo " ERROR: $ECJ_JAR_DIR did not exist in fn-gather-ecj-jars." + #TODO eventually, fail the build here? If they don't exist, something must be pretty wrong? + fi } @@ -932,41 +773,41 @@ fi fn-slice-repos () { checkNArgs $# 4 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - REPO_DIR="$1"; shift - BUILD_DIR="$1"; shift - BASEBUILDER_LAUNCHER="$1"; shift - ANT_SCRIPT="$REPO_DIR"/eclipse.platform.releng.tychoeclipsebuilder/repos/buildAll.xml - REPO_DIR_DIR="$REPO_DIR"/eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/repository - if [[ -d "$REPO_DIR_DIR" ]] - then - pushd "$REPO_DIR" - java -Djava.io.tmpdir=$TMP_DIR -jar "$BASEBUILDER_LAUNCHER" \ - -data ${BUILD_DIR}/workspace-buildrepos \ - -application org.eclipse.ant.core.antRunner \ - -buildfile "$ANT_SCRIPT" \ - -Declipse.build.configs="$REPO_DIR"/eclipse.platform.releng.tychoeclipsebuilder \ - -DbuildId="$BUILD_ID" \ - -DbuildRepo="$REPO_DIR_DIR" \ - -DpostingDirectory=$(dirname "$BUILD_DIR") \ - -DequinoxPostingDirectory="$BUILD_ROOT/siteDir/equinox/drops" \ - -DbuildLabel="$BUILD_ID" \ - -Djava.io.tmpdir=$TMP_DIR \ - -DbuildDirectory="$BUILD_DIR" - RC=$? - popd - if [[ $RC != 0 ]] - then - BUILD_FAILED="${buildDirectory}/buildFailed-slice-repo-error" - echo " ERROR: Java antrunner call with $ANT_SCRIPT returned non-zero return code, $RC, in fn-slice-repo" >>${BUILD_FAILED} - return $RC - fi - else - BUILD_FAILED="${buildDirectory}/buildFailed-slice-repo-error" - echo " ERROR: $REPO_DIR_DIR did not exist in fn-slice-repo. Probably due to an earlier error?" >>${BUILD_FAILED} - return 1 + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + REPO_DIR="$1"; shift + BUILD_DIR="$1"; shift + BASEBUILDER_LAUNCHER="$1"; shift + ANT_SCRIPT="$REPO_DIR"/eclipse.platform.releng.tychoeclipsebuilder/repos/buildAll.xml + REPO_DIR_DIR="$REPO_DIR"/eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/repository + if [[ -d "$REPO_DIR_DIR" ]] + then + pushd "$REPO_DIR" + java -Djava.io.tmpdir=$TMP_DIR -jar "$BASEBUILDER_LAUNCHER" \ + -data ${BUILD_DIR}/workspace-buildrepos \ + -application org.eclipse.ant.core.antRunner \ + -buildfile "$ANT_SCRIPT" \ + -Declipse.build.configs="$REPO_DIR"/eclipse.platform.releng.tychoeclipsebuilder \ + -DbuildId="$BUILD_ID" \ + -DbuildRepo="$REPO_DIR_DIR" \ + -DpostingDirectory=$(dirname "$BUILD_DIR") \ + -DequinoxPostingDirectory="$BUILD_ROOT/siteDir/equinox/drops" \ + -DbuildLabel="$BUILD_ID" \ + -Djava.io.tmpdir=$TMP_DIR \ + -DbuildDirectory="$BUILD_DIR" + RC=$? + popd + if [[ $RC != 0 ]] + then + BUILD_FAILED="${buildDirectory}/buildFailed-slice-repo-error" + echo " ERROR: Java antrunner call with $ANT_SCRIPT returned non-zero return code, $RC, in fn-slice-repo" >>${BUILD_FAILED} + return $RC fi + else + BUILD_FAILED="${buildDirectory}/buildFailed-slice-repo-error" + echo " ERROR: $REPO_DIR_DIR did not exist in fn-slice-repo. Probably due to an earlier error?" >>${BUILD_FAILED} + return 1 + fi } @@ -977,22 +818,22 @@ fn-slice-repos () fn-gather-repo-zips () { checkNArgs $# 3 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - REPO_DIR="$1"; shift - BUILD_DIR="$1"; shift - if [[ -d "$REPO_DIR" ]] - then - pushd "$REPO_DIR"/eclipse.platform.repository/target/repos - for r in org.eclipse.*; do - pushd $r - zip -r "$BUILD_DIR"/${r}-${BUILD_ID}.zip * - popd - done - popd - else - echo " ERROR: $REPO_DIR did not exist in fn-gather-repo-zips" - fi + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + REPO_DIR="$1"; shift + BUILD_DIR="$1"; shift + if [[ -d "$REPO_DIR" ]] + then + pushd "$REPO_DIR"/eclipse.platform.repository/target/repos + for r in org.eclipse.*; do + pushd $r + zip -r "$BUILD_DIR"/${r}-${BUILD_ID}.zip * + popd + done + popd + else + echo " ERROR: $REPO_DIR did not exist in fn-gather-repo-zips" + fi } # USAGE: fn-gather-compile-logs BUILD_ID REPO_DIR BUILD_DIR @@ -1002,40 +843,40 @@ fn-gather-repo-zips () fn-gather-compile-logs () { checkNArgs $# 3 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - REPO_DIR="$1"; shift - BUILD_DIR="$1"; shift - if [[ -d "$REPO_DIR" ]] - then - mkdir -p "$BUILD_DIR"/compilelogs/plugins - pushd "$REPO_DIR" - for dot in $( find * -name "@dot.xml" ); do - targetDir=$( dirname "$dot" ) - echo "Processing $dot in $targetDir" - if [ ! -r "$targetDir"/MANIFEST.MF ]; then - echo "**Failed to process $dot in $targetDir. Likely compile error. Will try source MANIFEST.MF in directory containing target." - targetDir=$( dirname "${targetDir}" ) - if [ ! -r "$targetDir"/META-INF/MANIFEST.MF ] - then - echo "**Failed to process $dot in $targetDir." - else - BUNDLE_ID=$( grep Bundle-SymbolicName "$targetDir"/META-INF/MANIFEST.MF | cut -f2 -d" " | cut -f1 -d\; | tr -d '\f\r\n\t' ) - BUNDLE_VERSION=$( grep Bundle-Version "$targetDir"/META-INF/MANIFEST.MF | cut -f2 -d" " | tr -d '\f\r\n\t' ) - mkdir "$BUILD_DIR"/compilelogs/plugins/${BUNDLE_ID}_${BUNDLE_VERSION} - cp "$dot" "$BUILD_DIR"/compilelogs/plugins/${BUNDLE_ID}_${BUNDLE_VERSION} - fi - else - BUNDLE_ID=$( grep Bundle-SymbolicName "$targetDir"/MANIFEST.MF | cut -f2 -d" " | cut -f1 -d\; | tr -d '\f\r\n\t' ) - BUNDLE_VERSION=$( grep Bundle-Version "$targetDir"/MANIFEST.MF | cut -f2 -d" " | tr -d '\f\r\n\t' ) - mkdir "$BUILD_DIR"/compilelogs/plugins/${BUNDLE_ID}_${BUNDLE_VERSION} - cp "$dot" "$BUILD_DIR"/compilelogs/plugins/${BUNDLE_ID}_${BUNDLE_VERSION} - fi + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + REPO_DIR="$1"; shift + BUILD_DIR="$1"; shift + if [[ -d "$REPO_DIR" ]] + then + mkdir -p "$BUILD_DIR"/compilelogs/plugins + pushd "$REPO_DIR" + for dot in $( find * -name "@dot.xml" ); do + targetDir=$( dirname "$dot" ) + echo "Processing $dot in $targetDir" + if [ ! -r "$targetDir"/MANIFEST.MF ]; then + echo "**Failed to process $dot in $targetDir. Likely compile error. Will try source MANIFEST.MF in directory containing target." + targetDir=$( dirname "${targetDir}" ) + if [ ! -r "$targetDir"/META-INF/MANIFEST.MF ] + then + echo "**Failed to process $dot in $targetDir." + else + BUNDLE_ID=$( grep Bundle-SymbolicName "$targetDir"/META-INF/MANIFEST.MF | cut -f2 -d" " | cut -f1 -d\; | tr -d '\f\r\n\t' ) + BUNDLE_VERSION=$( grep Bundle-Version "$targetDir"/META-INF/MANIFEST.MF | cut -f2 -d" " | tr -d '\f\r\n\t' ) + mkdir "$BUILD_DIR"/compilelogs/plugins/${BUNDLE_ID}_${BUNDLE_VERSION} + cp "$dot" "$BUILD_DIR"/compilelogs/plugins/${BUNDLE_ID}_${BUNDLE_VERSION} + fi + else + BUNDLE_ID=$( grep Bundle-SymbolicName "$targetDir"/MANIFEST.MF | cut -f2 -d" " | cut -f1 -d\; | tr -d '\f\r\n\t' ) + BUNDLE_VERSION=$( grep Bundle-Version "$targetDir"/MANIFEST.MF | cut -f2 -d" " | tr -d '\f\r\n\t' ) + mkdir "$BUILD_DIR"/compilelogs/plugins/${BUNDLE_ID}_${BUNDLE_VERSION} + cp "$dot" "$BUILD_DIR"/compilelogs/plugins/${BUNDLE_ID}_${BUNDLE_VERSION} + fi done popd - else - echo " ERROR: $REPO_DIR did not exist in fn-gather-compile-logs" - fi + else + echo " ERROR: $REPO_DIR did not exist in fn-gather-compile-logs" + fi } @@ -1049,19 +890,19 @@ fn-gather-compile-logs () fn-gather-main-index () { checkNArgs $# 6 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - REPO_DIR="$1"; shift - BUILD_DIR="$1"; shift - STREAM="$1"; shift - BUILD_TYPE="$1"; shift - BUILD_PRETTY_DATE="$1"; shift - pushd "$REPO_DIR"/eclipse.platform.releng.tychoeclipsebuilder/eclipse/templateFiles - -# Simplified by creating PHP variables in buildproperties.php - cp "index.php.template${PATCH_BUILD}" "$BUILD_DIR"/index.php - - popd + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + REPO_DIR="$1"; shift + BUILD_DIR="$1"; shift + STREAM="$1"; shift + BUILD_TYPE="$1"; shift + BUILD_PRETTY_DATE="$1"; shift + pushd "$REPO_DIR"/eclipse.platform.releng.tychoeclipsebuilder/eclipse/templateFiles + + # Simplified by creating PHP variables in buildproperties.php + cp "index.php.template${PATCH_BUILD}" "$BUILD_DIR"/index.php + + popd } # USAGE: fn-parse-compile-logs BUILD_ID ANT_SCRIPT BUILD_DIR BASEBUILDER_LAUNCHER @@ -1072,25 +913,25 @@ fn-gather-main-index () fn-parse-compile-logs () { checkNArgs $# 4 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - ANT_SCRIPT="$1"; shift - BUILD_DIR="$1"; shift - BASEBUILDER_LAUNCHER="$1"; shift - EBuilderDir="${BUILD_DIR}/eclipse.platform.releng.aggregator/eclipse.platform.releng.tychoeclipsebuilder" - pushd "$BUILD_DIR" - java -Djava.io.tmpdir=$TMP_DIR -jar "$BASEBUILDER_LAUNCHER" \ - -data ${BUILD_DIR}/workspace-verifyCompile \ - -application org.eclipse.ant.core.antRunner \ - -buildfile "$ANT_SCRIPT" \ - -DbuildDirectory=$(dirname "$BUILD_DIR" ) \ - -DpostingDirectory=$(dirname "$BUILD_DIR" ) \ - -DEBuilderDir="${EBuilderDir}" \ - -DbuildId="$BUILD_ID" \ - -DbuildLabel="$BUILD_ID" \ - -Djava.io.tmpdir=$TMP_DIR \ - verifyCompile - popd + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + ANT_SCRIPT="$1"; shift + BUILD_DIR="$1"; shift + BASEBUILDER_LAUNCHER="$1"; shift + EBuilderDir="${BUILD_DIR}/eclipse.platform.releng.aggregator/eclipse.platform.releng.tychoeclipsebuilder" + pushd "$BUILD_DIR" + java -Djava.io.tmpdir=$TMP_DIR -jar "$BASEBUILDER_LAUNCHER" \ + -data ${BUILD_DIR}/workspace-verifyCompile \ + -application org.eclipse.ant.core.antRunner \ + -buildfile "$ANT_SCRIPT" \ + -DbuildDirectory=$(dirname "$BUILD_DIR" ) \ + -DpostingDirectory=$(dirname "$BUILD_DIR" ) \ + -DEBuilderDir="${EBuilderDir}" \ + -DbuildId="$BUILD_ID" \ + -DbuildLabel="$BUILD_ID" \ + -Djava.io.tmpdir=$TMP_DIR \ + verifyCompile + popd } # USAGE: fn-summarize-comparator-logs BUILD_ID ANT_SCRIPT BUILD_DIR BASEBUILDER_LAUNCHER @@ -1102,25 +943,25 @@ fn-parse-compile-logs () fn-summarize-comparator-logs () { checkNArgs $# 4 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - ANT_SCRIPT="$1"; shift - BUILD_DIR="$1"; shift - BASEBUILDER_LAUNCHER="$1"; shift - EBuilderDir="${BUILD_DIR}/eclipse.platform.releng.aggregator/eclipse.platform.releng.tychoeclipsebuilder" - pushd "$BUILD_DIR" - java -Djava.io.tmpdir=$TMP_DIR -jar "$BASEBUILDER_LAUNCHER" \ - -data ${BUILD_DIR}/workspace-comparatorLogs \ - -application org.eclipse.ant.core.antRunner \ - -buildfile "$ANT_SCRIPT" \ - -DbuildDirectory=$(dirname "$BUILD_DIR" ) \ - -DpostingDirectory=$(dirname "$BUILD_DIR" ) \ - -DEBuilderDir="${EBuilderDir}" \ - -DbuildId="$BUILD_ID" \ - -DbuildLabel="$BUILD_ID" \ - -Djava.io.tmpdir=$TMP_DIR \ - compare - popd + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + ANT_SCRIPT="$1"; shift + BUILD_DIR="$1"; shift + BASEBUILDER_LAUNCHER="$1"; shift + EBuilderDir="${BUILD_DIR}/eclipse.platform.releng.aggregator/eclipse.platform.releng.tychoeclipsebuilder" + pushd "$BUILD_DIR" + java -Djava.io.tmpdir=$TMP_DIR -jar "$BASEBUILDER_LAUNCHER" \ + -data ${BUILD_DIR}/workspace-comparatorLogs \ + -application org.eclipse.ant.core.antRunner \ + -buildfile "$ANT_SCRIPT" \ + -DbuildDirectory=$(dirname "$BUILD_DIR" ) \ + -DpostingDirectory=$(dirname "$BUILD_DIR" ) \ + -DEBuilderDir="${EBuilderDir}" \ + -DbuildId="$BUILD_ID" \ + -DbuildLabel="$BUILD_ID" \ + -Djava.io.tmpdir=$TMP_DIR \ + compare + popd } # USAGE: fn-summarize-apitooling BUILD_ID ANT_SCRIPT BUILD_DIR BASEBUILDER_LAUNCHER # BUILD_ID: I20121116-0700 @@ -1131,45 +972,45 @@ fn-summarize-comparator-logs () fn-summarize-apitooling () { checkNArgs $# 4 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - ANT_SCRIPT="$1"; shift - BUILD_DIR="$1"; shift - BASEBUILDER_LAUNCHER="$1"; shift - EBuilderDir=$BUILD_DIR/eclipse.platform.releng.aggregator/eclipse.platform.releng.tychoeclipsebuilder - pushd "$BUILD_DIR" -# Make sure FREEZE_PARAMS is defined, but empty space, if not using freeze reports. - FREEZE_PARAMS=" " -# When no "freeze" in effect for a release comment these out. Uncomment after M6, changing to appropriate versions. -# FREEZE_PARAMS="-DfreezeBaseURL=http://download.eclipse.org/eclipse/downloads/drops4/S-4.4M6-201403061200/eclipse-SDK-4.4M6-win32.zip \ -# -DfreezeName=Eclipse-SDK-4.4M6 \ -# -DfreezeFilename=eclipse-SDK-4.4M6-win32.zip " -# this API_PREV_REF_LABEL variable should be changed any time the version used -# by previousBaseURL changes. Its purpose is just to localize changes to this one -# place, and not have to make further, hard-coded changes to testResults.php.template. -# Similar for freeze label. - API_PREV_REF_LABEL=4.4.0 - fn-write-property API_PREV_REF_LABEL -# API_FREEZE_REF_LABEL=4.5M6 - API_FREEZE_REF_LABEL=" " - fn-write-property API_FREEZE_REF_LABEL - java -Djava.io.tmpdir=$TMP_DIR -jar "$BASEBUILDER_LAUNCHER" \ - -data ${BUILD_DIR}/workspace-comparatorLogs \ - -application org.eclipse.ant.core.antRunner \ - -buildfile "$ANT_SCRIPT" \ - -DbuildDirectory=$(dirname "$BUILD_DIR" ) \ - -DpostingDirectory=$(dirname "$BUILD_DIR" ) \ - -DEBuilderDir=$EBuilderDir \ - -DbuildId="$BUILD_ID" \ - -DbuildLabel="$BUILD_ID" \ - -DbuildWorkingArea="${BUILD_HOME}/4${BUILD_TYPE}/gitCache/eclipse.platform.releng.aggregator" \ - -DpreviousBaseURL=http://download.eclipse.org/eclipse/downloads/drops4/R-4.4-201406061215/eclipse-SDK-4.4-win32.zip \ - -DpreviousBaselineName=Eclipse-SDK-4.4 \ - -DpreviousBaselineFilename=eclipse-SDK-4.4-win32.zip \ - -Djava.io.tmpdir=$TMP_DIR \ - ${FREEZE_PARAMS} \ - apiToolsReports - popd + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + ANT_SCRIPT="$1"; shift + BUILD_DIR="$1"; shift + BASEBUILDER_LAUNCHER="$1"; shift + EBuilderDir=$BUILD_DIR/eclipse.platform.releng.aggregator/eclipse.platform.releng.tychoeclipsebuilder + pushd "$BUILD_DIR" + # Make sure FREEZE_PARAMS is defined, but empty space, if not using freeze reports. + FREEZE_PARAMS=" " + # When no "freeze" in effect for a release comment these out. Uncomment after M6, changing to appropriate versions. + # FREEZE_PARAMS="-DfreezeBaseURL=http://download.eclipse.org/eclipse/downloads/drops4/S-4.4M6-201403061200/eclipse-SDK-4.4M6-win32.zip \ + # -DfreezeName=Eclipse-SDK-4.4M6 \ + # -DfreezeFilename=eclipse-SDK-4.4M6-win32.zip " + # this API_PREV_REF_LABEL variable should be changed any time the version used + # by previousBaseURL changes. Its purpose is just to localize changes to this one + # place, and not have to make further, hard-coded changes to testResults.php.template. + # Similar for freeze label. + API_PREV_REF_LABEL=4.4.0 + fn-write-property API_PREV_REF_LABEL + # API_FREEZE_REF_LABEL=4.5M6 + API_FREEZE_REF_LABEL=" " + fn-write-property API_FREEZE_REF_LABEL + java -Djava.io.tmpdir=$TMP_DIR -jar "$BASEBUILDER_LAUNCHER" \ + -data ${BUILD_DIR}/workspace-comparatorLogs \ + -application org.eclipse.ant.core.antRunner \ + -buildfile "$ANT_SCRIPT" \ + -DbuildDirectory=$(dirname "$BUILD_DIR" ) \ + -DpostingDirectory=$(dirname "$BUILD_DIR" ) \ + -DEBuilderDir=$EBuilderDir \ + -DbuildId="$BUILD_ID" \ + -DbuildLabel="$BUILD_ID" \ + -DbuildWorkingArea="${BUILD_HOME}/4${BUILD_TYPE}/gitCache/eclipse.platform.releng.aggregator" \ + -DpreviousBaseURL=http://download.eclipse.org/eclipse/downloads/drops4/R-4.4-201406061215/eclipse-SDK-4.4-win32.zip \ + -DpreviousBaselineName=Eclipse-SDK-4.4 \ + -DpreviousBaselineFilename=eclipse-SDK-4.4-win32.zip \ + -Djava.io.tmpdir=$TMP_DIR \ + ${FREEZE_PARAMS} \ + apiToolsReports + popd } # USAGE: fn-publish-eclipse BUILD_TYPE BUILD_STREAM BUILD_ID REPO_DIR BUILD_DIR BASEBUILDER_LAUNCHER @@ -1182,41 +1023,41 @@ fn-summarize-apitooling () fn-publish-eclipse () { checkNArgs $# 6 - if [[ $? != 0 ]]; then return 1; fi - BUILD_TYPE="$1"; shift - BUILD_STREAM="$1"; shift - BUILD_ID="$1"; shift - AGGR_DIR="$1"; shift - BUILD_DIR="$1"; shift - BASEBUILDER_LAUNCHER="$1"; shift - EBuilderDir="$BUILD_DIR"/eclipse.platform.releng.aggregator/eclipse.platform.releng.tychoeclipsebuilder - pushd "$BUILD_DIR" - java -Djava.io.tmpdir=$TMP_DIR -jar "$BASEBUILDER_LAUNCHER" \ - -data ${BUILD_DIR}/workspace-publish \ - -application org.eclipse.ant.core.antRunner \ - -v \ - -buildfile "$EBuilderDir"/eclipse/helper.xml \ - -DbuildId="$BUILD_ID" \ - -DbuildRepo="$AGGR_DIR"/eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/repository \ - -DpostingDirectory="$BUILD_ROOT/siteDir/eclipse/downloads/drops4" \ - -DequinoxPostingDirectory="$BUILD_ROOT/siteDir/equinox/drops" \ - -DpublishingContent="$EBuilderDir"/eclipse/publishingFiles \ - -DdropTemplateFileName="${EBuilderDir}/eclipse/publishingFiles/templateFiles/index.php.template${PATCH_BUILD}" \ - -DbuildLabel="$BUILD_DIR_SEG" \ - -DEBuilderDir="$EBuilderDir" \ - -DAGGR_DIR="$AGGR_DIR" \ - -DeclipseStream=$BUILD_STREAM \ - -DbuildType="$BUILD_TYPE" \ - -Dbase.builder=$(dirname $(dirname "$BASEBUILDER_LAUNCHER" ) ) \ - -DbuildDirectory=$(dirname "$BUILD_DIR") \ - -Djava.io.tmpdir=$TMP_DIR \ - publish -# hide experimental builds, for now - if [[ $BUILD_ID =~ [PXY] ]] - then - touch buildHidden - fi - popd + if [[ $? != 0 ]]; then return 1; fi + BUILD_TYPE="$1"; shift + BUILD_STREAM="$1"; shift + BUILD_ID="$1"; shift + AGGR_DIR="$1"; shift + BUILD_DIR="$1"; shift + BASEBUILDER_LAUNCHER="$1"; shift + EBuilderDir="$BUILD_DIR"/eclipse.platform.releng.aggregator/eclipse.platform.releng.tychoeclipsebuilder + pushd "$BUILD_DIR" + java -Djava.io.tmpdir=$TMP_DIR -jar "$BASEBUILDER_LAUNCHER" \ + -data ${BUILD_DIR}/workspace-publish \ + -application org.eclipse.ant.core.antRunner \ + -v \ + -buildfile "$EBuilderDir"/eclipse/helper.xml \ + -DbuildId="$BUILD_ID" \ + -DbuildRepo="$AGGR_DIR"/eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/repository \ + -DpostingDirectory="$BUILD_ROOT/siteDir/eclipse/downloads/drops4" \ + -DequinoxPostingDirectory="$BUILD_ROOT/siteDir/equinox/drops" \ + -DpublishingContent="$EBuilderDir"/eclipse/publishingFiles \ + -DdropTemplateFileName="${EBuilderDir}/eclipse/publishingFiles/templateFiles/index.php.template${PATCH_BUILD}" \ + -DbuildLabel="$BUILD_DIR_SEG" \ + -DEBuilderDir="$EBuilderDir" \ + -DAGGR_DIR="$AGGR_DIR" \ + -DeclipseStream=$BUILD_STREAM \ + -DbuildType="$BUILD_TYPE" \ + -Dbase.builder=$(dirname $(dirname "$BASEBUILDER_LAUNCHER" ) ) \ + -DbuildDirectory=$(dirname "$BUILD_DIR") \ + -Djava.io.tmpdir=$TMP_DIR \ + publish + # hide experimental builds, for now + if [[ $BUILD_ID =~ [PXY] ]] + then + touch buildHidden + fi + popd } # USAGE: fn-checkout-basebuilder BUILDER_DIR @@ -1224,27 +1065,27 @@ fn-publish-eclipse () fn-checkout-basebuilder () { checkNArgs $# 1 - if [[ $? != 0 ]]; then return 1; fi - BUILDER_DIR="$1"; shift - if [ -e "$BUILDER_DIR" ]; then - echo "A basic builder directory already existed, so not re-fetched." - echo " Directory found at $BUILDER_DIR." - return 0 - fi - echo "A basic builder did not exist, so will fetch platform and tools." - DROP_DIR=$( dirname "$BUILDER_DIR" ) -# Are these as expected? TODO: change comments. - echo "Drop directory: $DROP_DIR" - echo "BUILDER_DIR: $BUILDER_DIR" - EBuilderDir=$DROP_DIR/eclipse.platform.releng.aggregator/eclipse.platform.releng.tychoeclipsebuilder - if [[ ! -d "${EBuilderDir}" ]] - then - echo "EBuilderDir did not exist, so will fetch that first" - ${SCRIPT_PATH}/getEBuilderForDropDir.sh $DROP_DIR $EBUILDER_HASH - else - echo "EBuilderDir already existed, so no need to fetch that" - fi - ant -f $EBuilderDir/eclipse/getBaseBuilderAndTools.xml -DWORKSPACE=$DROP_DIR + if [[ $? != 0 ]]; then return 1; fi + BUILDER_DIR="$1"; shift + if [ -e "$BUILDER_DIR" ]; then + echo "A basic builder directory already existed, so not re-fetched." + echo " Directory found at $BUILDER_DIR." + return 0 + fi + echo "A basic builder did not exist, so will fetch platform and tools." + DROP_DIR=$( dirname "$BUILDER_DIR" ) + # Are these as expected? TODO: change comments. + echo "Drop directory: $DROP_DIR" + echo "BUILDER_DIR: $BUILDER_DIR" + EBuilderDir=$DROP_DIR/eclipse.platform.releng.aggregator/eclipse.platform.releng.tychoeclipsebuilder + if [[ ! -d "${EBuilderDir}" ]] + then + echo "EBuilderDir did not exist, so will fetch that first" + ${SCRIPT_PATH}/getEBuilderForDropDir.sh $DROP_DIR $EBUILDER_HASH + else + echo "EBuilderDir already existed, so no need to fetch that" + fi + ant -f $EBuilderDir/eclipse/getBaseBuilderAndTools.xml -DWORKSPACE=$DROP_DIR } # USAGE: fn-basebuilder-launcher BUILDER_DIR @@ -1252,9 +1093,9 @@ fn-checkout-basebuilder () fn-basebuilder-launcher () { checkNArgs $# 1 - if [[ $? != 0 ]]; then return 1; fi - BUILDER_DIR="$1"; shift - find "$BUILDER_DIR" -name "org.eclipse.equinox.launcher_*.jar" | tail -1 + if [[ $? != 0 ]]; then return 1; fi + BUILDER_DIR="$1"; shift + find "$BUILDER_DIR" -name "org.eclipse.equinox.launcher_*.jar" | tail -1 } # USAGE: fn-pom-version-report BUILD_ID REPO_DIR BUILD_DIR LOCAL_REPO @@ -1264,41 +1105,41 @@ fn-basebuilder-launcher () fn-pom-version-report () { checkNArgs $# 3 - if [[ $? != 0 ]]; then return 1; fi - BUILD_ID="$1"; shift - REPO_DIR="$1"; shift - BUILD_DIR="$1"; shift - pushd "$REPO_DIR" - mkdir -p "$BUILD_DIR"/pom_updates - git submodule foreach "if (git status -s -uno | grep pom.xml >/dev/null ); then git diff >$BUILD_DIR/pom_updates/\$name.diff; fi " - pushd "$BUILD_DIR"/pom_updates - nDiffs=$( ls -1 $BUILD_DIR/pom_updates/*.diff | wc -l ) -# don't create index.html if no diffs to display, as our PHP DL page knows -# not to display link if index.html is not present. -if (( $nDiffs > 0 )) -then -POM_UPDATES="" -echo "" >index.html -echo "" >>index.html -echo "POM version report for $BUILD_ID" >>index.html -echo "" >>index.html -echo "" >>index.html -echo "

POM version report for $BUILD_ID

" >>index.html -echo "

These repositories need patches to bring their pom.xml files up to the correct version.

" >>index.html -echo "
    " >>index.html - -for f in *.diff; do -FNAME=$( basename $f .diff ) -echo "
  • $FNAME
  • " >> index.html -POM_UPDATES="${POM_UPDATES}
  • $FNAME
  • " -done -echo "
" >> index.html -echo "" >> index.html -# we write to property files, for later use in email message -fn-write-property POM_UPDATES -fi -popd -popd + if [[ $? != 0 ]]; then return 1; fi + BUILD_ID="$1"; shift + REPO_DIR="$1"; shift + BUILD_DIR="$1"; shift + pushd "$REPO_DIR" + mkdir -p "$BUILD_DIR"/pom_updates + git submodule foreach "if (git status -s -uno | grep pom.xml >/dev/null ); then git diff >$BUILD_DIR/pom_updates/\$name.diff; fi " + pushd "$BUILD_DIR"/pom_updates + nDiffs=$( ls -1 $BUILD_DIR/pom_updates/*.diff | wc -l ) + # don't create index.html if no diffs to display, as our PHP DL page knows + # not to display link if index.html is not present. + if (( $nDiffs > 0 )) + then + POM_UPDATES="" + echo "" >index.html + echo "" >>index.html + echo "POM version report for $BUILD_ID" >>index.html + echo "" >>index.html + echo "" >>index.html + echo "

POM version report for $BUILD_ID

" >>index.html + echo "

These repositories need patches to bring their pom.xml files up to the correct version.

" >>index.html + echo "
    " >>index.html + + for f in *.diff; do + FNAME=$( basename $f .diff ) + echo "
  • $FNAME
  • " >> index.html + POM_UPDATES="${POM_UPDATES}
  • $FNAME
  • " + done + echo "
" >> index.html + echo "" >> index.html + # we write to property files, for later use in email message + fn-write-property POM_UPDATES + fi + popd + popd } # USAGE: fn-check-dir-exists DIR_VAR_NAME @@ -1309,20 +1150,20 @@ popd # checkForErrorExit "$rc" "$rc" fn-check-dir-exists () { -checkNArgs $# 1 -if [[ $? != 0 ]]; then return 1; fi -DIR_VAR_NAME=$1 -if [[ -z "${!DIR_VAR_NAME}" ]] -then -echo "DIR_VAR_NAME, ${DIR_VAR_NAME}, must be defined before running this script." -else -if [[ ! -d "${!DIR_VAR_NAME}" ]] -then -echo "The directory DIR_VAR_NAME, ${DIR_VAR_NAME} (\"${!DIR_VAR_NAME}\"), must exist before running this script." -else -echo 0 -fi -fi + checkNArgs $# 1 + if [[ $? != 0 ]]; then return 1; fi + DIR_VAR_NAME=$1 + if [[ -z "${!DIR_VAR_NAME}" ]] + then + echo "DIR_VAR_NAME, ${DIR_VAR_NAME}, must be defined before running this script." + else + if [[ ! -d "${!DIR_VAR_NAME}" ]] + then + echo "The directory DIR_VAR_NAME, ${DIR_VAR_NAME} (\"${!DIR_VAR_NAME}\"), must exist before running this script." + else + echo 0 + fi + fi } # USAGE: fn-write-property VAR_NAME @@ -1348,20 +1189,20 @@ fi fn-write-property () { checkNArgs $# 1 - if [[ $? != 0 ]]; then return 1; fi - VAR_NAME=$1 - if [[ -z "${VAR_NAME}" ]] - then - echo "VAR_NAME must be passed to this script, $0." - return 1 - fi - -# bash scripts (export may be overkill ... but, just in case needed) - echo "export ${VAR_NAME}=\"${!VAR_NAME}\"" >> $BUILD_ENV_FILE -# PHP, suitable for direct "include" - echo "\$${VAR_NAME} = \"${!VAR_NAME}\";" >> $BUILD_ENV_FILE_PHP -# standard properties file - echo "${VAR_NAME} = \"${!VAR_NAME}\"" >> $BUILD_ENV_FILE_PROP + if [[ $? != 0 ]]; then return 1; fi + VAR_NAME=$1 + if [[ -z "${VAR_NAME}" ]] + then + echo "VAR_NAME must be passed to this script, $0." + return 1 + fi + + # bash scripts (export may be overkill ... but, just in case needed) + echo "export ${VAR_NAME}=\"${!VAR_NAME}\"" >> $BUILD_ENV_FILE + # PHP, suitable for direct "include" + echo "\$${VAR_NAME} = \"${!VAR_NAME}\";" >> $BUILD_ENV_FILE_PHP + # standard properties file + echo "${VAR_NAME} = \"${!VAR_NAME}\"" >> $BUILD_ENV_FILE_PROP } @@ -1370,15 +1211,15 @@ fn-write-property () fn-write-property-init () { checkNArgs $# 0 - if [[ $? != 0 ]]; then return 1; fi -# nothing really required for bash shsource, but we'll put in some niceties - echo "#!/usr/bin/env bash" > $BUILD_ENV_FILE - echo "# properties written for $BUILD_ID" >> $BUILD_ENV_FILE -# PHP, suitable for direct "include": needs to start and end with - echo " $BUILD_ENV_FILE_PHP - echo "// properties written for $BUILD_ID " >> $BUILD_ENV_FILE_PHP -# standard properties file: nothing special required - echo "! properties written for $BUILD_ID" > $BUILD_ENV_FILE_PROP + if [[ $? != 0 ]]; then return 1; fi + # nothing really required for bash shsource, but we'll put in some niceties + echo "#!/usr/bin/env bash" > $BUILD_ENV_FILE + echo "# properties written for $BUILD_ID" >> $BUILD_ENV_FILE + # PHP, suitable for direct "include": needs to start and end with + echo " $BUILD_ENV_FILE_PHP + echo "// properties written for $BUILD_ID " >> $BUILD_ENV_FILE_PHP + # standard properties file: nothing special required + echo "! properties written for $BUILD_ID" > $BUILD_ENV_FILE_PROP } @@ -1387,15 +1228,15 @@ fn-write-property-init () fn-write-property-close () { checkNArgs $# 0 - if [[ $? != 0 ]]; then return 1; fi -# nothing really required for bash shsource, but we'll put in some niceties - echo "# finished properties for $BUILD_ID" >> $BUILD_ENV_FILE -# PHP, suitable for direct "include": needs to start and end with -# Note: technically may not need closing ?> for an 'include' ? - echo "// finished properties for $BUILD_ID " >> $BUILD_ENV_FILE_PHP - echo "?>" >> $BUILD_ENV_FILE_PHP -# standard properties file: nothing special required - echo "! finshed properties for $BUILD_ID" >> $BUILD_ENV_FILE_PROP + if [[ $? != 0 ]]; then return 1; fi + # nothing really required for bash shsource, but we'll put in some niceties + echo "# finished properties for $BUILD_ID" >> $BUILD_ENV_FILE + # PHP, suitable for direct "include": needs to start and end with + # Note: technically may not need closing ?> for an 'include' ? + echo "// finished properties for $BUILD_ID " >> $BUILD_ENV_FILE_PHP + echo "?>" >> $BUILD_ENV_FILE_PHP + # standard properties file: nothing special required + echo "! finshed properties for $BUILD_ID" >> $BUILD_ENV_FILE_PROP } @@ -1409,9 +1250,9 @@ fn-write-property-close () fn-complete-status () { checkNArgs $# 1 - if [[ $? != 0 ]]; then return 1; fi - MESSAGE=$1 - printf "\n\t%s\n\n" "${MESSAGE}" - git status - git submodule foreach git status + if [[ $? != 0 ]]; then return 1; fi + MESSAGE=$1 + printf "\n\t%s\n\n" "${MESSAGE}" + git status + git submodule foreach git status } diff --git a/production/build_eclipse_org.shsource b/production/build_eclipse_org.shsource index 38eded1e7..55fa97336 100644 --- a/production/build_eclipse_org.shsource +++ b/production/build_eclipse_org.shsource @@ -2,13 +2,13 @@ # default definitions for this branch -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null export BUILD_HOME=${BUILD_HOME:-/shared/eclipse/builds} export BRANCH=${BRANCH:-master} -export STREAM=${STREAM:-4.4.0} +export STREAM=${STREAM:-4.5.0} export BUILD_TYPE=${BUILD_TYPE:-N} # If not set be caller, make sure its an empty string @@ -24,10 +24,10 @@ export PATCH_BUILD=${PATCH_BUILD:-""} if [[ -n ${PATCH_BUILD} ]] then export ALT_POM_FILE="-f eclipse.platform.releng.tychoeclipsebuilder/${PATCH_BUILD}/pom.xml" -echo "DEBUG: ALT_POM_FILE: $ALT_POM_FILE" +echo " DEBUG: ALT_POM_FILE: $ALT_POM_FILE" else export ALT_POM_FILE="" -echo "DEBUG: ALT_POM_FILE: None. Using normal default." +echo " DEBUG: ALT_POM_FILE: None. Using normal default." fi @@ -57,20 +57,6 @@ export MAVEN_PATH=${MAVEN_PATH:-/shared/common/apache-maven-3.1.1/bin} export PATH=$JAVA_HOME/bin:$MAVEN_PATH:$ANT_HOME/bin:$PATH -# if not defined "externally", we use default for eclipse.org -if [[ -z "${REPO_AND_ACCESS}" ]] -then -# unless we are on 'build' machine -if [[ "build" == "$(hostname)" ]] -then -export REPO_AND_ACCESS=file:///gitroot -else -export REPO_AND_ACCESS=git://git.eclipse.org/gitroot -fi -fi - -AGGREGATOR_REPO=${REPO_AND_ACCESS}/platform/eclipse.platform.releng.aggregator.git - # Only used to start antrunner for tests. May not need here? BASEBUILDER_TAG=R38M6PlusRC3G @@ -87,7 +73,7 @@ MAVEN_BREE=-Pbree-libs # local, non build.eclipse.org builds (or, test builds) may need to override, and turn off signing. -# otherwwise, we always sign if I or M builds, but not N builds +# otherwise, we always sign if I or M builds, but not N builds # if [[ $BUILD_TYPE =~ [IMXYP] ]] then diff --git a/production/get-aggregator.sh b/production/get-aggregator.sh index f1d372531..e1607c40a 100644 --- a/production/get-aggregator.sh +++ b/production/get-aggregator.sh @@ -3,12 +3,14 @@ if [ $# -ne 1 ]; then echo USAGE: $0 env_file + touch "${buildDirectory}/buildFailed-get-aggregator" exit 1 fi if [ ! -r "$1" ]; then echo "$1" cannot be read echo USAGE: $0 env_file + touch "${buildDirectory}/buildFailed-get-aggregator" exit 1 fi @@ -22,7 +24,7 @@ source "$1" cd $BUILD_ROOT # derived values -gitCache=$( fn-git-cache "$BUILD_ROOT" "${BRANCH}" ) +gitCache=$( fn-git-cache "$BUILD_ROOT" ) aggDir=$( fn-git-dir "$gitCache" "$AGGREGATOR_REPO" ) if [[ -r "$aggDir" ]] diff --git a/production/getEBuilderForDropDir.sh b/production/getEBuilderForDropDir.sh index ad8ac9b7d..efb2c461c 100755 --- a/production/getEBuilderForDropDir.sh +++ b/production/getEBuilderForDropDir.sh @@ -1,6 +1,12 @@ #!/usr/bin/env bash # Utility script to get "ebuilder" +printf "\n\tDEBUG: %s\n" "executing ${0}" +printf "\t\t\t%s\n" "As called from ${FUNCNAME[1]}, called from line number ${BASH_LINENO[0]} in ${BASH_SOURCE[1]}." + +SCRIPT_PATH=${SCRIPT_PATH:-$(pwd)} +printf "\n\tINFO: %s\n" "SCRIPT_PATH: $SCRIPT_PATH" +source $SCRIPT_PATH/build-functions.shsource BUILD_DIR=$1 EBUILDER_HASH=$2 @@ -8,13 +14,13 @@ EBUILDER_HASH=$2 if [[ -z "${BUILD_DIR}" ]] then - echo "BUILD_DIR not supplied, will assume current directory, for testing." + printf "\n\tWARNING: %s\n" "BUILD_DIR not defined, assuming $BUILD_DIR" BUILD_DIR=${PWD} else # normally will exist by now, but if not, we'll create it. if [[ ! -d "${BUILD_DIR}" ]] then - echo "WARNING: BUILD_DIR did not exist, so created it: $BUILD_DIR." + printf "\n\tWARNING: %s\n" "BUILD_DIR did not exist when expected. Creating $BUILD_DIR" mkdir -p $BUILD_DIR fi fi @@ -26,18 +32,24 @@ then fi EBUILDER=eclipse.platform.releng.aggregator +# derived values +gitCache=$( fn-git-cache "$BUILD_ROOT") +aggDir=$( fn-git-dir "$gitCache" "$AGGREGATOR_REPO" ) RC=0 # don't clone, if already exists. if [[ ! -d ${BUILD_DIR}/${EBUILDER} ]] then - # Not sure 'REPO_AND_ACCESS' is defined in all possible scenerios, so we'll provide a default. - # It is in main scenerios, but not sure about things like "re-running unit tests at a later time". + # Not sure 'REPO_AND_ACCESS' is defined in all possible scenarios, so we'll provide a default. + # It is in main scenarios, but not sure about things like "re-running unit tests at a later time". # If directory doesn't exist yet, create it first, so we can assign proper access # permissions for later "clean up" routines. mkdir -p "${BUILD_DIR}/${EBUILDER}" chmod -c g+ws "${BUILD_DIR}/${EBUILDER}" - git clone ${REPO_AND_ACCESS:-git://git.eclipse.org/gitroot}/platform/${EBUILDER} ${BUILD_DIR}/${EBUILDER} + # note the use of "reference" ... we typically only need a little bit of + # new stuff, that the gitCache version doesn't have already, if any. + + git clone --reference $aggDir ${AGGREGATOR_REPO} ${BUILD_DIR}/${EBUILDER} RC=$? if [[ $RC != 0 ]] then @@ -66,6 +78,16 @@ else fi popd fi - +# prepare a (small) zip, for easy retrieval of "production" files, during unit tests on Hudson. +# This basic function used to be provided by CGit, but was turned off for "snapshots" of commits, +# and was a bit overkill for those doing their own "remote" test builds (or tests). +# This small zip is stored, unadvertised, on download site, and retrieved as part of the +# Hudson test "bootstrap". The "production" directory in general, though, is also +# used during the build itself. +# (hard to know "where" we are at ... so we'll make sure. +printf "\n\tDEBUG: %s\n" "About to create EBuilder zip: ${EBUILDER}-${EBUILDER_HASH}.zip" +pushd ${buildDirectory} +zip -r "${buildDirectory}/${EBUILDER}-${EBUILDER_HASH}.zip" "${EBUILDER}/production/testScripts" +popd exit $RC diff --git a/production/master-build.sh b/production/master-build.sh index 65d215a27..8cdaf559d 100644 --- a/production/master-build.sh +++ b/production/master-build.sh @@ -1,6 +1,5 @@ #!/usr/bin/env bash -# master script to drive Eclipse Platform builds. -RAWDATE=$( date +%s ) + if [ $# -ne 1 ]; then echo USAGE: $0 env_file @@ -9,22 +8,31 @@ fi INITIAL_ENV_FILE=$1 + if [ ! -r "$INITIAL_ENV_FILE" ]; then echo "$INITIAL_ENV_FILE" cannot be read echo USAGE: $0 env_file exit 1 fi -export BUILD_TIME_PATCHES=${BUILD_TIME_PATCHES:-false} -# force "test build" if doing patch build (since, it really is for tests) -# and this simply makes sure a human does not forget the "-t" and end up -# trying to push some patched build (and promoting to downloads). +export SCRIPT_PATH="${BUILD_ROOT}/production" + + +source "${SCRIPT_PATH}/build-functions.shsource" + +source "${INITIAL_ENV_FILE}" + +source "${SCRIPT_PATH}/bashUtilities.shsource" +source "${SCRIPT_PATH}/bootstrapVariables.shsource" + + +assertNotEmpty gitCache +assertNotEmpty aggDir +assertNotEmpty BUILD_ID +assertNotEmpty buildDirectory + -if [[ "${BUILD_TIME_PATCHES}" == "true" ]] -then - testbuildonly=true -fi # remember, local "test builds" that use this script must change # or override 'GIT_PUSH' to simply echo, not actually push. Only @@ -34,10 +42,7 @@ if [[ "${testbuildonly}" == "true" ]] then GIT_PUSH='echo no git push since testbuildonly' fi -if [[ "${BUILD_TIME_PATCHES}" == "true" ]] -then - GIT_PUSH='echo no git push since testbuildonly AND patched build' -fi + if [[ "${BUILD_TYPE}" == "N" ]] then GIT_PUSH='echo no git push done since Nightly' @@ -49,19 +54,6 @@ fi GIT_PUSH=${GIT_PUSH:-'git push'} - -export SCRIPT_PATH="${BUILD_ROOT}/production" - - -source "${SCRIPT_PATH}/build-functions.shsource" - -source "${INITIAL_ENV_FILE}" - -# BUILD_KIND allows fine tuning of how promoted, tested, download site name, etc. -# CBI is only primary production build value. In future may use special values for -# special cases, such as TEST, JAVA8, etc. -export BUILD_KIND=${BUILD_KIND:-CBI} - cd $BUILD_ROOT buildrc=0 @@ -70,7 +62,7 @@ buildrc=0 # correct values for cbi-jdt-repo.url and cbi-jdt-version are # codified in the parent pom. These variables give an easy way -# to test "experimental versions" in production build. +# to test "experimental versions" in production-like build. if [[ -n $CBI_JDT_REPO_URL ]] then @@ -81,19 +73,9 @@ then export CBI_JDT_VERSION_ARG="-Dcbi-jdt-version=$CBI_JDT_VERSION" fi -BUILD_ID=$(fn-build-id "$BUILD_TYPE" ) -export buildDirectory=$( fn-build-dir "$BUILD_ROOT" "$BUILD_ID" "$STREAM" ) -if [[ -z "${buildDirectory}" ]] -then - echo "PROGRAM ERROR: buildDirectory returned from fn-build-dir was empty" - exit 1 -else - # this should be when we first create buildDirectory - echo "Making buildDirectory: ${buildDirectory}" - mkdir -p "${buildDirectory}" - # it appears GID bit is not always set correctly, so we'll do so explicitly - chmod -c g+s "${buildDirectory}" -fi +assertNotEmpty buildDirectory +echo "buildDirectory: >${buildDirectory}<" + export logsDirectory="${buildDirectory}/buildlogs" mkdir -p "${logsDirectory}" checkForErrorExit $? "Could not create buildlogs directory: ${logsDirectory}" @@ -112,14 +94,14 @@ TIMESTAMP=$( date +%Y%m%d-%H%M --date='@'$RAWDATE ) export TRACE_OUTPUT=${TRACE_OUTPUT:-$buildDirectory/buildlogs/trace_output.txt} echo $BUILD_PRETTY_DATE > ${TRACE_OUTPUT} +assertNotEmpty buildDirectory + # These files have variable/value pairs for this build, suitable for use in # shell scripts, PHP files, or as Ant (or Java) properties export BUILD_ENV_FILE=${buildDirectory}/buildproperties.shsource export BUILD_ENV_FILE_PHP=${buildDirectory}/buildproperties.php export BUILD_ENV_FILE_PROP=${buildDirectory}/buildproperties.properties -gitCache=$( fn-git-cache "$BUILD_ROOT" "$BRANCH" ) -aggDir=$( fn-git-dir "$gitCache" "$AGGREGATOR_REPO" ) export LOCAL_REPO="${BUILD_ROOT}"/localMavenRepo # In production builds, we normally specify CLEAN_LOCAL, @@ -205,7 +187,6 @@ fn-write-property GIT_PUSH fn-write-property LOCAL_REPO fn-write-property SCRIPT_PATH fn-write-property STREAMS_PATH -fn-write-property BUILD_KIND fn-write-property CBI_JDT_REPO_URL fn-write-property CBI_JDT_REPO_URL_ARG fn-write-property CBI_JDT_VERSION @@ -218,6 +199,7 @@ if [[ "${testbuildonly}" == "true" ]] then fn-write-property testbuildonly fi +fn-write-property buildDirectory fn-write-property BUILD_ENV_FILE fn-write-property BUILD_ENV_FILE_PHP fn-write-property BUILD_ENV_FILE_PROP @@ -229,11 +211,9 @@ fn-write-property BUILD_TYPE_NAME fn-write-property TRACE_OUTPUT fn-write-property comparatorRepository fn-write-property logsDirectory -fn-write-property BUILD_TIME_PATCHES fn-write-property BUILD_HOME - $SCRIPT_PATH/get-aggregator.sh $BUILD_ENV_FILE 2>&1 | tee ${GET_AGGREGATOR_BUILD_LOG} # if file exists, then get-aggregator failed if [[ -f "${buildDirectory}/buildFailed-get-aggregator" ]] @@ -249,47 +229,6 @@ else $SCRIPT_PATH/update-build-input.sh $BUILD_ENV_FILE 2>&1 | tee $logsDirectory/mb020_update-build-input_output.txt checkForErrorExit $? "Error occurred while updating build input" - if $BUILD_TIME_PATCHES ; then - # temp patches for bugs - # apply the pre-created patch from tempPatches - # patches created, typically, by navigating to repoToPath, then - # git diff --no-prefix > ../eclipse.platform.releng.aggregator/production/tempPatches/ - # (then commit and push change to "tempPatches" directory, with normal ID, not with build id) - - repoToPatch=eclipse.jdt.core - patchFile=jdtComparatorFix.patch - echo "INFO: apply patch file, $patchFile, in repo $repoToPatch" - patch -p0 --backup -d $aggDir/$repoToPatch -i $aggDir/production/tempPatches/$patchFile - #checkForErrorExit $? "Error occurred applying patch" - - # Note: to "simulate" qualifier increases, when needed, - # the fix/patch must be "committed" (to build repo, not pushed to origin). - # This requires more effort to "reset" ... say to HEAD~1, or re-clone the repo, - # or else the 'checkout/pull' in next run will not succeed. - echo "INFO: commit to build machine repository (no push): $repoToPatch" - pushd $aggDir/$repoToPatch/ - git commit --all -m "temp patch for testing" - #checkForErrorExit $? "Error occurred committing patch" - popd - - # Note: to "simulate" qualifier increases, when needed, - # the fix/patch must be "committed" (to build repo, not pushed to origin). - # This requires more effort to "reset" ... say to HEAD~1, or re-clone the repo, - # or else the 'checkout/pull' in next run will not succeed. - #pushd $aggDir/$repoToPatch - #git commit --all -m "temp patch for testing" - #checkForErrorExit $? "Error occurred committing patch" - #popd - - #repoToPatch=rt.equinox.p2 - #patchFile=p2SourceFix.patch - #echo "INFO: apply patch file, $patchFile, in repo $repoToPatch" - - #patch -p0 --backup -d $aggDir/$repoToPatch -i $aggDir/production/tempPatches/$patchFile - #checkForErrorExit $? "Error occurred applying patch" - - - fi # We always make tag commits, if build successful or not, but don't push # back to origin if doing N builds or test builds. @@ -416,7 +355,7 @@ then fi # if all ended well, put "promotion scripts" in known locations -$SCRIPT_PATH/promote-build.sh $BUILD_KIND $BUILD_ENV_FILE 2>&1 | tee $logsDirectory/mb090_promote-build_output.txt +$SCRIPT_PATH/promote-build.sh $BUILD_ENV_FILE 2>&1 | tee $logsDirectory/mb090_promote-build_output.txt checkForErrorExit $? "Error occurred during promote-build" fn-write-property-close diff --git a/production/parse-logs.sh b/production/parse-logs.sh index 13b6bda40..5d7fe3588 100644 --- a/production/parse-logs.sh +++ b/production/parse-logs.sh @@ -22,7 +22,7 @@ source "$1" cd $BUILD_ROOT # derived values -gitCache=$( fn-git-cache "$BUILD_ROOT" "$BRANCH" ) +gitCache=$( fn-git-cache "$BUILD_ROOT" ) aggDir=$( fn-git-dir "$gitCache" "$AGGREGATOR_REPO" ) if [ -z "$BUILD_ID" ]; then diff --git a/production/pom-version-updater.sh b/production/pom-version-updater.sh index 3b2b690c4..66d412508 100755 --- a/production/pom-version-updater.sh +++ b/production/pom-version-updater.sh @@ -22,7 +22,7 @@ source "$1" cd $BUILD_ROOT # derived values -gitCache=$( fn-git-cache "$BUILD_ROOT" "$BRANCH" ) +gitCache=$( fn-git-cache "$BUILD_ROOT" ) aggDir=$( fn-git-dir "$gitCache" "$AGGREGATOR_REPO" ) buildDirectory=$( fn-build-dir "$BUILD_ROOT" "$BUILD_ID" "$STREAM" ) diff --git a/production/promote-build.sh b/production/promote-build.sh index d02a5b384..c92c96fc9 100755 --- a/production/promote-build.sh +++ b/production/promote-build.sh @@ -8,29 +8,9 @@ function usage () { - printf "\n\n\t%s\n" "promote-build.sh (BUILD_KIND) if none specified, CBI assumed" + printf "\n\n\t%s\n" "promote-build.sh env_file" } -BUILD_KIND=$1 -if [[ -z "$BUILD_KIND" ]] -then - BUILD_KIND=CBI -fi - -case $BUILD_KIND in - - 'CBI' ) - echo "Promote Build from CBI" - # always assume true, for now, until debugged - # testbuildonly=true; - - ;; - *) echo "ERROR: Invalid or missing argument to $(basename $0)"; - usage; - exit 1; - ;; -esac - if [[ -z ${SCRIPT_PATH} ]] then SCRIPT_PATH=${PWD} @@ -38,7 +18,7 @@ fi source $SCRIPT_PATH/build-functions.shsource -source "$2" 2>/dev/null +source "$1" 2>/dev/null # The 'workLocation' provides a handy central place to have the # promote script, and log results. ASSUMING this works for all @@ -77,12 +57,8 @@ fi ptimestamp=$( date +%Y%m%d%H%M ) echo "#!/usr/bin/env bash" > ${promoteScriptLocationEclipse}/${scriptName} echo "# promotion script created at $ptimestamp" >> ${promoteScriptLocationEclipse}/${scriptName} -# TODO: changed "syncDropLocation" to handle a third parameter (BUILD_KIND) -# And now a fourth ... eBuilder HASHTAG,so won't always have to assume master, and -# so the tests can get their own copy. -# and now a fifth, so we can 'source' all relevent variables ... in particular, we want -# to see if BUILD_FAILED is defined. -echo "$workLocation/syncDropLocation.sh $STREAM $BUILD_ID $BUILD_KIND $EBUILDER_HASH $BUILD_ENV_FILE" >> ${promoteScriptLocationEclipse}/${scriptName} + +echo "$workLocation/syncDropLocation.sh $STREAM $BUILD_ID $EBUILDER_HASH $BUILD_ENV_FILE" >> ${promoteScriptLocationEclipse}/${scriptName} # we restrict "others" rights for a bit more security or safety from accidents chmod -v ug=rwx,o-rwx ${promoteScriptLocationEclipse}/${scriptName} diff --git a/production/publish-eclipse.sh b/production/publish-eclipse.sh index 5847b8c83..4446fda69 100644 --- a/production/publish-eclipse.sh +++ b/production/publish-eclipse.sh @@ -21,7 +21,7 @@ source "$1" cd $BUILD_ROOT # derived values -gitCache=$( fn-git-cache "$BUILD_ROOT" "$BRANCH" ) +gitCache=$( fn-git-cache "$BUILD_ROOT") aggDir=$( fn-git-dir "$gitCache" "$AGGREGATOR_REPO" ) if [ -z "$BUILD_ID" ]; then @@ -31,6 +31,7 @@ fi buildDirectory=$( fn-build-dir "$BUILD_ROOT" "$BUILD_ID" "$STREAM" ) basebuilderDir=$( fn-basebuilder-dir "$BUILD_ROOT" "$BUILD_ID" "$STREAM" ) +printf "/n/tINFO: %s/n" "calling getEBuilderForDropDir.sh from publish-eclipse.sh" $SCRIPT_PATH/getEBuilderForDropDir.sh $buildDirectory $EBUILDER_HASH fn-checkout-basebuilder "$basebuilderDir" diff --git a/production/publish-equinox.sh b/production/publish-equinox.sh index 712991c13..ae0fa0d9e 100644 --- a/production/publish-equinox.sh +++ b/production/publish-equinox.sh @@ -1,8 +1,8 @@ #!/usr/bin/env bash # -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null export BUILD_HOME=${BUILD_HOME:-/shared/eclipse/builds} @@ -175,7 +175,7 @@ fn-publish-equinox () cd $BUILD_ROOT # derived values -gitCache=$( fn-git-cache "$BUILD_ROOT" "$BRANCH" ) +gitCache=$( fn-git-cache "$BUILD_ROOT") aggDir=$( fn-git-dir "$gitCache" "$AGGREGATOR_REPO" ) if [ -z "$BUILD_ID" ]; then diff --git a/production/publish-repo.sh b/production/publish-repo.sh index 58f109338..569c63a23 100644 --- a/production/publish-repo.sh +++ b/production/publish-repo.sh @@ -19,7 +19,7 @@ source $SCRIPT_PATH/build-functions.shsource source "$1" # derived values -gitCache=$( fn-git-cache "$BUILD_ROOT" "$BRANCH" ) +gitCache=$( fn-git-cache "$BUILD_ROOT") aggDir=$( fn-git-dir "$gitCache" "$AGGREGATOR_REPO" ) if [ -z "$BUILD_ID" ]; then diff --git a/production/run-maven-build.sh b/production/run-maven-build.sh index 2a5bfb55c..70849a314 100644 --- a/production/run-maven-build.sh +++ b/production/run-maven-build.sh @@ -22,7 +22,7 @@ source "$1" cd $BUILD_ROOT # derived values -gitCache=$( fn-git-cache "$BUILD_ROOT" "$BRANCH" ) +gitCache=$( fn-git-cache "$BUILD_ROOT" ) aggDir=$( fn-git-dir "$gitCache" "$AGGREGATOR_REPO" ) if [ -z "$BUILD_ID" ]; then diff --git a/production/sdk/collect.sh b/production/sdk/collect.sh index 42f8be8f2..35f203d65 100755 --- a/production/sdk/collect.sh +++ b/production/sdk/collect.sh @@ -11,7 +11,7 @@ # Start with minimal path for consistency across machines # plus, cron jobs do not inherit an environment # care is needed not have anything in ${HOME}/bin that would effect the build -# unintentionally, but is required to make use of "source buildeclipse.shsource" on +# unintentionally, but is required to make use of "source localbuildproperties.shsource" on # local machines. # Likely only a "release engineer" would be interested, such as to override "SIGNING" (setting it # to false) for a test I-build on a remote machine. @@ -31,9 +31,9 @@ oldumask=`umask` umask 0002 echo "umask explicitly set to 0002, old value was $oldumask" -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null export BUILD_HOME=${BUILD_HOME:-/shared/eclipse/builds} export JAVA_HOME=/shared/common/jdk1.7.0-latest @@ -48,14 +48,12 @@ job="$(echo $inputline | cut -d\ -f1)" buildNumber="$(echo $inputline | cut -d\ -f2)" buildId="$(echo $inputline | cut -d\ -f3)" eclipseStream="$(echo $inputline | cut -d\ -f4)" -BUILD_KIND="$(echo $inputline | cut -d\ -f5)" -EBUILDER_HASH="$(echo $inputline | cut -d\ -f6)" +EBUILDER_HASH="$(echo $inputline | cut -d\ -f5)" echo "job: $job" echo "buildNumber: $buildNumber" echo "buildId: $buildId" echo "eclipseStream: $eclipseStream" -echo "BUILD_KIND: $BUILD_KIND" echo "EBUILDER_HASH: $EBUILDER_HASH" ${ANT_HOME}/bin/ant -version @@ -65,5 +63,4 @@ ${ANT_HOME}/bin/ant -version -DbuildNumber=${buildNumber} \ -DbuildId=${buildId} \ -DeclipseStream=${eclipseStream} \ - -DBUILD_KIND=${BUILD_KIND} \ -DEBUILDER_HASH=${EBUILDER_HASH} diff --git a/production/sdk/collectTestResults.xml b/production/sdk/collectTestResults.xml index 7542f89c7..e415e3017 100644 --- a/production/sdk/collectTestResults.xml +++ b/production/sdk/collectTestResults.xml @@ -1,91 +1,94 @@ + name="collectTestResults" + default="collectTestResults" + basedir="."> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + name="env.HUDSON_HOST" + value="hudson.eclipse.org" /> + name="env.HUDSON_PROTOCOL" + value="https" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + name="env.BUILD_HOME" + value="/shared/eclipse/builds" /> - + - - - - - - - - - - - + + - + - - - + + + - + - + - + \ No newline at end of file diff --git a/production/sdk/promotion/getEBuilder.sh b/production/sdk/promotion/getEBuilder.sh index 8ca4fb78c..90c6ab4b8 100755 --- a/production/sdk/promotion/getEBuilder.sh +++ b/production/sdk/promotion/getEBuilder.sh @@ -3,9 +3,8 @@ # Utility script to "bootstrap" Hudson Eclipse Platform Unit tests, to get the # basic files needed to get all the other required files and start the test framework. -BUILD_KIND=$1 -EBUILDER_HASH=$2 -WORKSPACE=$3 +EBUILDER_HASH=$1 +WORKSPACE=$2 if [[ -z "${WORKSPACE}" ]] then @@ -25,26 +24,9 @@ then EBUILDER_HASH=master fi -if [[ -z "${BUILD_KIND}" ]] -then - echo "BUILD_KIND not supplied, assuming CBI" - BUILD_KIND=CBI -fi - -if [[ "${BUILD_KIND}" == "CBI" ]] -then EBUILDER=eclipse.platform.releng.aggregator TARGETNAME=eclipse.platform.releng.aggregator ESCRIPT_LOC=${EBUILDER}/production/testScripts -elif [[ "$BUILD_KIND" == "PDE" ]] -then - EBUILDER=eclipse.platform.releng.eclipsebuilder - TARGETNAME=org.eclipse.releng.eclipsebuilder - ESCRIPT_LOC=${TARGETNAME} -else - echo "ERROR: Unexpected value of BUILD_KIND: ${BUILD_KIND}" - exit 1 -fi # don't re-fetch, if already exists. # TODO: May need to provide a "force" parameter to use when testing? diff --git a/production/sdk/promotion/runAntRunner.sh b/production/sdk/promotion/runAntRunner.sh index 0c7d0ea9c..3f0a02b43 100755 --- a/production/sdk/promotion/runAntRunner.sh +++ b/production/sdk/promotion/runAntRunner.sh @@ -6,9 +6,9 @@ # the build file, if not build.xml, must be second argument # that can be followed be target or other arguments -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null export BUILD_HOME=${BUILD_HOME:-/shared/eclipse/builds} # If used for other things, where a build doesn't exist, diff --git a/production/sdk/promotion/sdkPromotionCronJob.sh b/production/sdk/promotion/sdkPromotionCronJob.sh index 6aeb03262..4cf4d92a7 100755 --- a/production/sdk/promotion/sdkPromotionCronJob.sh +++ b/production/sdk/promotion/sdkPromotionCronJob.sh @@ -16,7 +16,7 @@ # Start with minimal path for consistency across machines # plus, cron jobs do not inherit an environment # care is needed not have anything in ${HOME}/bin that would effect the build -# unintentionally, but is required to make use of "source buildeclipse.shsource" on +# unintentionally, but is required to make use of "source localbuildproperties.shsource" on # local machines. # Likely only a "release engineer" would be interested, such as to override "SIGNING" (setting it # to false) for a test I-build on a remote machine. @@ -37,9 +37,9 @@ umask 0002 # Remember, don't echo except when testing, or mail will be sent each time it runs. #echo "umask explicitly set to 0002, old value was $oldumask" -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null diff --git a/production/sdk/promotion/startTests.sh b/production/sdk/promotion/startTests.sh index f5fea3058..3cc4080f4 100755 --- a/production/sdk/promotion/startTests.sh +++ b/production/sdk/promotion/startTests.sh @@ -28,8 +28,7 @@ source buildParams.shsource 2>/dev/null # which is how invoke from "promote script" eclipseStream=${eclipseStream:-${1}} buildId=${buildId:-${2}} -BUILD_KIND=${BUILD_KIND:-${3}} -EBUILDER_HASH=${EBUILDER_HASH:-${4}} +EBUILDER_HASH=${EBUILDER_HASH:-${3}} if [[ -z ${eclipseStream} || -z ${buildId} ]] then @@ -38,11 +37,6 @@ then exit 1 fi -if [[ -z "${BUILD_KIND}" ]] -then - BUILD_KIND=CBI -fi - if [[ -z "${EBUILDER_HASH}" ]] then EBUILDER_HASH=master @@ -71,7 +65,7 @@ else exit 1 fi -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null echo "values in ${0}" echo "eclipseStream: $eclipseStream" @@ -80,7 +74,6 @@ echo "eclipseStreamMinor: $eclipseStreamMinor" echo "eclipseStreamService: $eclipseStreamService" echo "buildType: $buildType" echo "buildId: $buildId" -echo "BUILD_KIND: $BUILD_KIND" echo "EBUILDER_HASH: $EBUILDER_HASH" @@ -106,7 +99,6 @@ HUDSON_TOKEN=windows2012tests ant \ -DpostingDirectory=${postingDirectory} \ -DbuildId=${buildId} \ -DeclipseStream=${eclipseStream} \ - -DBUILD_KIND=${BUILD_KIND} \ -DEBUILDER_HASH=${EBUILDER_HASH} \ -f ${builderDir}/invokeTestsJSON.xml diff --git a/production/sdk/promotion/syncDropLocation.sh b/production/sdk/promotion/syncDropLocation.sh index 960997141..5bfeb8758 100755 --- a/production/sdk/promotion/syncDropLocation.sh +++ b/production/sdk/promotion/syncDropLocation.sh @@ -4,9 +4,9 @@ SCRIPTDIR=$( dirname $0 ) echo "SCRIPTDIR: ${SCRIPTDIR}" source ${SCRIPTDIR}/syncUpdateUtils.shsource -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null function sendPromoteMail () { @@ -30,16 +30,8 @@ function sendPromoteMail () fi echo " buildId: ${buildId}" - BUILD_KIND=$3 - if [[ -z "${BUILD_KIND}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide BUILD_KIND as third argumnet, for this function $(basename $0)" - return 1; - fi - echo " BUILD_KIND: ${BUILD_KIND}" - # optional? Or blank? - BUILD_FAILED=$4 + BUILD_FAILED=$3 eclipseStreamMajor=${eclipseStream:0:1} @@ -76,7 +68,7 @@ function sendPromoteMail () # and catch anything of substance. comparatorLogMinimumSize=500 - mainPath=$( dlToPath "$eclipseStream" "$buildId" "$BUILD_KIND" ) + mainPath=$( dlToPath "$eclipseStream" "$buildId") echo " mainPath: $mainPath" if [[ "$mainPath" == 1 ]] then @@ -109,16 +101,10 @@ function sendPromoteMail () EXTRA_SUBJECT_STRING="${EXTRA_SUBJECT_STRING} - POM UPDATES REQUIRED" fi - if [[ "${BUILD_KIND}" == "CBI" ]] - then # 4.3.0 Build: I20120411-2034 SUBJECT="${eclipseStream} ${buildType}-Build: ${buildId} $EXTRA_SUBJECT_STRING" - else - # 4.3.0 Build: I20120411-2034 - SUBJECT="${BUILD_KIND} based ${eclipseStream} ${buildType}-Build: ${buildId} $EXTRA_SUBJECT_STRING" - fi - # override in buildeclipse.shsource if doing local tests + # override in localbuildproperties.shsource if doing local tests TO=${TO:-"platform-releng-dev@eclipse.org"} # for initial testing, only to me -- change as desired after initial testing. @@ -180,7 +166,7 @@ function sendPromoteMail () fi - if [[ "${BUILD_KIND}" == "CBI" && ${buildType} =~ [NMI] ]] + if [[ ${buildType} =~ [NMI] ]] then ( echo "To: ${TO}" @@ -192,7 +178,7 @@ function sendPromoteMail () echo -e "${message1}" echo "" ) | /usr/lib/sendmail -t - elif [[ "${BUILD_KIND}" == "CBI" && ${buildType} =~ [PYX] ]] + elif [[ ${buildType} =~ [PYX] ]] then ( echo "To: ${TO}" @@ -218,8 +204,7 @@ function startTests() buildType=$2 eclipseStream=$3 buildId=$4 - BUILD_KIND=$5 - EBUILDER_HASH=$6 + EBUILDER_HASH=$5 if [[ -z "${EBUILDER_HASH}" ]] then printf "\n\n\t%s\n\n" "ERROR: Must provide builder (or aggregator) hash as fourth argumnet, for this function $(basename $0)" @@ -230,38 +215,19 @@ function startTests() echo "buildType: $buildType" echo "eclipseStream: $eclipseStream" echo "buildId: $buildId" - echo "BUILD_KIND: $BUILD_KIND" echo "EBUILDER_HASH: $EBUILDER_HASH" - if [[ "${BUILD_KIND}" == 'CBI' ]] - then + BUILD_ROOT=${BUILD_HOME}/${eclipseStreamMajor}${buildType} eclipsebuilder=eclipse.platform.releng.aggregator/production/testScripts - dlFromPath=$( dlFromPath $eclipseStream $buildId $BUILD_KIND ) + dlFromPath=$( dlFromPath $eclipseStream $buildId ) echo "DEBUG CBI dlFromPath: $dlFromPath" buildDropDir=${BUILD_ROOT}/siteDir/$dlFromPath/${buildId} echo "DEBGUG CBI buildDropDir: $buildDropDir" builderDropDir=${buildDropDir}/${eclipsebuilder} echo "DEBUG: CBI builderDropDir: ${builderDropDir}" - elif [[ "${BUILD_KIND}" == 'PDE' ]] - then - BUILD_ROOT=/shared/eclipse/eclipse${eclipseStreamMajor}${buildType} - buildDir=${BUILD_ROOT}/build - supportDir=${buildDir}/supportDir - eclipsebuilder=org.eclipse.releng.eclipsebuilder - builderDir=${supportDir}/$eclipsebuilder - # assumed in fixed location, for now, for PDE builds - builderDropDir=/shared/eclipse/sdk/promotion - echo "DEBUG: PDE builderDropDir for PDE: ${builderDropDir}" - dlFromPath=$( dlFromPath $eclipseStream $buildId $BUILD_KIND ) - echo "DEBUG: PDE dlFromPath: $dlFromPath" - buildDropDir=${BUILD_ROOT}/siteDir/$dlFromPath/${buildId} - echo "DEBUG: PDE builderDropDir: ${builderDropDir}" - else - echo "ERROR. Unrecognized value of BUILD_KIND: $BUILD_KIND" - fi # finally, execute - ${builderDropDir}/startTests.sh ${eclipseStream} ${buildId} ${BUILD_KIND} ${EBUILDER_HASH} + ${builderDropDir}/startTests.sh ${eclipseStream} ${buildId} ${EBUILDER_HASH} } # this funtion currently syncs local repo on build machine, and adds @@ -283,13 +249,6 @@ function syncRepoSite () return 1; fi - BUILD_KIND=$3 - if [[ -z "${BUILD_KIND}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide BUILD_KIND as third argumnet, for this function $(basename $0)" >&2 - return 1; - fi - # contrary to intuition (and previous behavior, bash 3.1) do NOT use quotes around right side of expression. if [[ "${eclipseStream}" =~ ^([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)$ ]] then @@ -301,8 +260,8 @@ function syncRepoSite () return 1 fi - fromDir=$(updateSiteOnBuildDir "$eclipseStream" "$buildId" "$BUILD_KIND") - toDir=$(updateSiteOnDL "$eclipseStream" "$buildId" "$BUILD_KIND") + fromDir=$(updateSiteOnBuildDir "$eclipseStream" "$buildId" ) + toDir=$(updateSiteOnDL "$eclipseStream" "$buildId" ) #toDir="/home/data/httpd/download.eclipse.org/eclipse/updates/4.3-builds" if [[ -n "${fromDir}" && -d "${fromDir}" && -n "${toDir}" && -d "${toDir}" ]] @@ -327,7 +286,7 @@ function syncRepoSite () # runAntRunner requires basebuilder to be installed at drop site, so we'll check here if it exists yet, # and if not, fetch it. - dropFromBuildDir=$( dropFromBuildDir "$eclipseStream" "$buildId" "$BUILD_KIND" ) + dropFromBuildDir=$( dropFromBuildDir "$eclipseStream" "$buildId" ) EBuilderDir=$dropFromBuildDir/eclipse.platform.releng.aggregator/eclipse.platform.releng.tychoeclipsebuilder # assume ant is on the path @@ -345,7 +304,6 @@ function syncRepoSite () # it requires four arguments # eclipseStream (e.g. 4.2 or 3.8) # buildId (e.g. N20120415-2015) -# BUILD_KIND (CBI or special value) # EBUILDER_HASH (SHA1 HASH or branch of eclipse builder to used if (( $# < 4 )) @@ -355,7 +313,6 @@ then printf "\n\t%s\n" "This script, $scriptname requires four arguments, in order: " printf "\t\t%s\t%s\n" "eclipseStream" "(e.g. 4.2.2 or 3.8.2) " printf "\t\t%s\t%s\n" "buildId" "(e.g. N20120415-2015) " - printf "\t\t%s\t%s\n" "BUILD_KIND" "(e.g. PDE or special cased value) " printf "\t\t%s\t%s\n" "EBUILDER_HASH" "(SHA1 HASH for eclipe builder used) " printf "\t%s\n" "for example," printf "\t%s\n\n" "./$scriptname 4.2 N N20120415-2015 CBI master" @@ -381,16 +338,8 @@ then fi echo "buildId: $buildId" -BUILD_KIND=$3 -if [[ -z "${BUILD_KIND}" ]] -then - printf "\n\n\t%s\n\n" "ERROR: Must provide BUILD_KIND as third argumnet, for this function $(basename $0)" - exit 1 -fi -echo "BUILD_KIND: $BUILD_KIND" - #TODO: asssume master for now, if unspecified. But should tighten up to through error as scripts get finished. -EBUILDER_HASH=$4 +EBUILDER_HASH=$3 if [[ -z "${EBUILDER_HASH}" ]] then printf "\n\n\t%s\n\n" "WARNING: Must provide builder (or aggregator) hash as fourth argumnet, for this function, $0" @@ -401,7 +350,7 @@ echo "EBUILDER_HASH: $EBUILDER_HASH" # we get all build variables here. Currently need it to check if BUILD_FAILED is defined. # if BUILD FAILED, we still "publish", but dont' update bad repo nor start tests -BUILD_ENV_FILE=$5 +BUILD_ENV_FILE=$4 source $BUILD_ENV_FILE eclipseStreamMajor=${eclipseStream:0:1} @@ -423,13 +372,12 @@ echo "eclipseStream: $eclipseStream" echo "eclipseStreamMajor: $eclipseStreamMajor" echo "eclipseStreamMinor: $eclipseStreamMinor" echo "eclipseStreamService: $eclipseStreamService" -echo "BUILD_KIND: $BUILD_KIND" echo "buildType: $buildType" echo "BUILD_ENV_FILE: $BUILD_ENV_FILE" # = = = = = = = = = # compute dirctiory on build machine -dropFromBuildDir=$( dropFromBuildDir "$eclipseStream" "$buildId" "$BUILD_KIND" ) +dropFromBuildDir=$( dropFromBuildDir "$eclipseStream" "$buildId" ) echo "dropFromBuildDir: $dropFromBuildDir" if [[ ! -d "${dropFromBuildDir}" ]] then @@ -439,12 +387,12 @@ then fi SCRIPTDIR=$( dirname $0 ) echo "SCRIPTDIR: ${SCRIPTDIR}" -${SCRIPTDIR}/getEBuilder.sh "${BUILD_KIND}" "${EBUILDER_HASH}" "${dropFromBuildDir}" +${SCRIPTDIR}/getEBuilder.sh "${EBUILDER_HASH}" "${dropFromBuildDir}" # if build failed, don't promote repo if [[ -z "$BUILD_FAILED" ]] then - syncRepoSite "$eclipseStream" "$buildType" "$BUILD_KIND" + syncRepoSite "$eclipseStream" "$buildType" rccode=$? if [[ $rccode != 0 ]] then @@ -456,7 +404,7 @@ else fi # We still update drop location, even if failed, just to get the logs up there on downloads -syncDropLocation "$eclipseStream" "$buildId" "$BUILD_KIND" "${EBUILDER_HASH}" +syncDropLocation "$eclipseStream" "$buildId" "${EBUILDER_HASH}" rccode=$? if [[ $rccode != 0 ]] then @@ -468,10 +416,10 @@ fi if [[ -z "$BUILD_FAILED" ]] then # if update to downloads succeeded, start the unit tests on Hudson - startTests $eclipseStreamMajor $buildType $eclipseStream $buildId $BUILD_KIND ${EBUILDER_HASH} + startTests $eclipseStreamMajor $buildType $eclipseStream $buildId ${EBUILDER_HASH} fi -sendPromoteMail "$eclipseStream" "$buildId" "$BUILD_KIND" "$BUILD_FAILED" +sendPromoteMail "$eclipseStream" "$buildId" "$BUILD_FAILED" rccode=$? if [[ $rccode != 0 ]] then diff --git a/production/sdk/promotion/syncUpdateUtils.shsource b/production/sdk/promotion/syncUpdateUtils.shsource index 6d99c3503..c469904a8 100644 --- a/production/sdk/promotion/syncUpdateUtils.shsource +++ b/production/sdk/promotion/syncUpdateUtils.shsource @@ -1,183 +1,134 @@ #!/usr/bin/env bash -# this buildeclipse.shsource file is to ease local builds to override some variables. +# this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null export BUILD_HOME=${BUILD_HOME:-/shared/eclipse/builds} function dropOnDLServer() { eclipseStream=$1 - if [[ -z "${eclipseStream}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide eclipseStream as first argumnet, for this function $(basename $0)" >&2 - return 1; + if [[ -z "${eclipseStream}" ]] + then + printf "\n\n\t%s\n\n" "ERROR: Must provide eclipseStream as first argument, for this function $(basename $0)" >&2 + return 1; fi - buildId=$2 - if [[ -z "${buildId}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide buildType as second argumnet, for this function $(basename $0)" >&2 - return 1; - fi - - BUILD_KIND=$3 - if [[ -z "${BUILD_KIND}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide BUILD_KIND as third argumnet, for this function $(basename $0)" >&2 - return 1; + buildId=$2 + if [[ -z "${buildId}" ]] + then + printf "\n\n\t%s\n\n" "ERROR: Must provide buildType as second argument, for this function $(basename $0)" >&2 + return 1; fi - pathToDL=$( dlToPath "$eclipseStream" "$buildId" "$BUILD_KIND" ) + pathToDL=$( dlToPath "$eclipseStream" "$buildId") - if [[ "$pathToDL" == 1 ]] - then - printf "\n\n\t%s\n\n" "ERROR: pathToDL could not be computed." >&2 - return 1 - fi - toDir="/home/data/httpd/download.eclipse.org/${pathToDL}" - echo $toDir + if [[ "$pathToDL" == 1 ]] + then + printf "\n\n\t%s\n\n" "ERROR: pathToDL could not be computed." >&2 + return 1 + fi + toDir="/home/data/httpd/download.eclipse.org/${pathToDL}" + echo $toDir } function updateSiteOnDL() { eclipseStream=$1 - if [[ -z "${eclipseStream}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide eclipseStream as first argumnet, for this function $(basename $0)" >&2 - return 1; + if [[ -z "${eclipseStream}" ]] + then + printf "\n\n\t%s\n\n" "ERROR: Must provide eclipseStream as first argument, for this function $(basename $0)" >&2 + return 1; fi - buildId=$2 - if [[ -z "${buildId}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide buildType as second argumnet, for this function $(basename $0)" >&2 - return 1; + buildId=$2 + if [[ -z "${buildId}" ]] + then + printf "\n\n\t%s\n\n" "ERROR: Must provide buildType as second argument, for this function $(basename $0)" >&2 + return 1; fi - BUILD_KIND=$3 - if [[ -z "${BUILD_KIND}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide BUILD_KIND as third argumnet, for this function $(basename $0)" >&2 - return 1; - fi -# contrary to intuition (and previous behavior, bash 3.1) do NOT use quotes around right side of expression. - if [[ "${eclipseStream}" =~ ([[:digit:]]*)\.([[:digit:]]*)\.([[:digit:]]*) ]] - then - eclipseStreamMajor=${BASH_REMATCH[1]} - eclipseStreamMinor=${BASH_REMATCH[2]} - eclipseStreamService=${BASH_REMATCH[3]} - else - echo "ERROR: eclipseStream, $eclipseStream, must contain major, minor, and service versions, such as 4.2.0" >&2 - exit 1 - fi - buildType=${buildId:0:1} + # contrary to intuition (and previous behavior, bash 3.1) do NOT use quotes around right side of expression. + if [[ "${eclipseStream}" =~ ([[:digit:]]*)\.([[:digit:]]*)\.([[:digit:]]*) ]] + then + eclipseStreamMajor=${BASH_REMATCH[1]} + eclipseStreamMinor=${BASH_REMATCH[2]} + eclipseStreamService=${BASH_REMATCH[3]} + else + echo "ERROR: eclipseStream, $eclipseStream, must contain major, minor, and service versions, such as 4.2.0" >&2 + exit 1 + fi + buildType=${buildId:0:1} toSiteDir="/home/data/httpd/download.eclipse.org/eclipse/updates" - if [[ "${BUILD_KIND}" == 'CBI' ]] - then - updatesSuffix="builds" - elif [[ "${BUILD_KIND}" == 'PDE' ]] - then - updatesSuffix="buildspdebased" - else - echo "ERROR: Unexpected value of BUILD_KIND, $BUILD_KIND" >&2 - fi - toMainUpdateDir=$toSiteDir/${eclipseStreamMajor}.${eclipseStreamMinor}-${buildType}-${updatesSuffix}/ -# We'll check for existence, and create if doesn't exist ... as long as it is "under" our -# toSiteDir, it is likely an intentional new one, rather than an error. + updatesSuffix="builds" + + toMainUpdateDir=$toSiteDir/${eclipseStreamMajor}.${eclipseStreamMinor}-${buildType}-${updatesSuffix}/ + # We'll check for existence, and create if doesn't exist ... as long as it is "under" our + # toSiteDir, it is likely an intentional new one, rather than an error. if [[ ! -d "${toMainUpdateDir}" ]] + then + if [[ -d "${toSiteDir}" ]] then - if [[ -d "${toSiteDir}" ]] - then -# create - mkdir -p "${toMainUpdateDir}" - RC=$? - if [[ $RC != 0 ]] - then - echo "ERROR: could not create main update site: ${toMainUpdateDir}" >&2 -# "return" empty string, as indication of error" - toMainUpdateDir="" - fi - else - echo "PROGRAM ERROR: main update site root did not exist: ${toSiteDir}" >&2 -# "return" empty string, as indication of error" - toMainUpdateDir="" - fi - fi - echo $toMainUpdateDir + # create + mkdir -p "${toMainUpdateDir}" + RC=$? + if [[ $RC != 0 ]] + then + echo "ERROR: could not create main update site: ${toMainUpdateDir}" >&2 + # "return" empty string, as indication of error" + toMainUpdateDir="" + fi + else + echo "PROGRAM ERROR: main update site root did not exist: ${toSiteDir}" >&2 + # "return" empty string, as indication of error" + toMainUpdateDir="" + fi + fi + echo $toMainUpdateDir } # compute update site on build server function updateSiteOnBuildDir() { eclipseStream=$1 - if [[ -z "${eclipseStream}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide eclipseStream as first argumnet, for this function $(basename $0)" >&2 - return 1; + if [[ -z "${eclipseStream}" ]] + then + printf "\n\n\t%s\n\n" "ERROR: Must provide eclipseStream as first argument, for this function $(basename $0)" >&2 + return 1; fi - buildId=$2 - if [[ -z "${buildId}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide buildType as second argumnet, for this function $(basename $0)" >&2 - return 1; - fi - - BUILD_KIND=$3 - if [[ -z "${BUILD_KIND}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide BUILD_KIND as third argumnet, for this function $(basename $0)" >&2 - return 1; + buildId=$2 + if [[ -z "${buildId}" ]] + then + printf "\n\n\t%s\n\n" "ERROR: Must provide buildType as second argument, for this function $(basename $0)" >&2 + return 1; fi -# contrary to intuition (and previous behavior, bash 3.1) do NOT use quotes around right side of expression. - if [[ "${eclipseStream}" =~ ([[:digit:]]*)\.([[:digit:]]*)\.([[:digit:]]*) ]] - then - eclipseStreamMajor=${BASH_REMATCH[1]} - eclipseStreamMinor=${BASH_REMATCH[2]} - eclipseStreamService=${BASH_REMATCH[3]} - else - echo "eclipseStream, $eclipseStream, must contain major, minor, and service versions, such as 4.2.0" >&2 - return 1 - fi - buildType=${buildId:0:1} - - if [[ "${BUILD_KIND}" == 'CBI' ]] - then - buildRoot=${BUILD_HOME}/${eclipseStreamMajor}${buildType} - elif [[ "${BUILD_KIND}" == 'PDE' ]] - then - buildRoot=/shared/eclipse/eclipse${eclipseStreamMajor}${buildType} + # contrary to intuition (and previous behavior, bash 3.1) do NOT use quotes around right side of expression. + if [[ "${eclipseStream}" =~ ([[:digit:]]*)\.([[:digit:]]*)\.([[:digit:]]*) ]] + then + eclipseStreamMajor=${BASH_REMATCH[1]} + eclipseStreamMinor=${BASH_REMATCH[2]} + eclipseStreamService=${BASH_REMATCH[3]} else - echo "ERROR: Unexpected value of BUILD_KIND, $BUILD_KIND" >&2 - return 1 - fi - + echo "eclipseStream, $eclipseStream, must contain major, minor, and service versions, such as 4.2.0" >&2 + return 1 + fi + buildType=${buildId:0:1} - if [[ "${BUILD_KIND}" == 'CBI' ]] - then - siteDir=${buildRoot}/siteDir - updatesSuffix="builds" - fromDir=$siteDir/updates/${eclipseStreamMajor}.${eclipseStreamMinor}-${buildType}-${updatesSuffix}/${buildId} + buildRoot=${BUILD_HOME}/${eclipseStreamMajor}${buildType} - elif [[ "${BUILD_KIND}" == 'PDE' ]] - then siteDir=${buildRoot}/siteDir - updatesSuffix="buildspdebased" + updatesSuffix="builds" fromDir=$siteDir/updates/${eclipseStreamMajor}.${eclipseStreamMinor}-${buildType}-${updatesSuffix}/${buildId} - else - echo "ERROR: Unexpected value of BUILD_KIND, $BUILD_KIND" >&2 - return 1 - fi - echo $fromDir + echo $fromDir } # compute main part of download server drop directory @@ -185,34 +136,24 @@ function dropFromBuildDir () { eclipseStream=$1 - buildId=$2 - BUILD_KIND=$3 - pathFromDL=$( dlFromPath "$eclipseStream" "$buildId" "$BUILD_KIND" ) + buildId=$2 + pathFromDL=$( dlFromPath "$eclipseStream" "$buildId" ) - if [[ "$pathFromDL" == 1 ]] - then - printf "\n\n\t%s\n\n" "ERROR: pathToDL could not be computed." >&2 - return 1 - fi + if [[ "$pathFromDL" == 1 ]] + then + printf "\n\n\t%s\n\n" "ERROR: pathToDL could not be computed." >&2 + return 1 + fi - eclipseStreamMajor=${eclipseStream:0:1} + eclipseStreamMajor=${eclipseStream:0:1} buildType=${buildId:0:1} - if [[ "${BUILD_KIND}" == 'CBI' ]] - then - buildRoot=${BUILD_HOME}/${eclipseStreamMajor}${buildType} - elif [[ "${BUILD_KIND}" == 'PDE' ]] - then - buildRoot=/shared/eclipse/eclipse${eclipseStreamMajor}${buildType} - else - echo "ERROR: BUILD_KIND value not recognized, $BUILD_KIND" >&2 - return 1 - fi + buildRoot=${BUILD_HOME}/${eclipseStreamMajor}${buildType} - siteDir=${buildRoot}/siteDir + siteDir=${buildRoot}/siteDir - fromDir=${siteDir}/${pathFromDL}/${buildId} + fromDir=${siteDir}/${pathFromDL}/${buildId} echo "$fromDir" @@ -222,170 +163,133 @@ function dropFromBuildDir () function dlToPath() { eclipseStream=$1 - if [[ -z "${eclipseStream}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide eclipseStream as first argumnet, for this function $(basename $0)" >&2 - return 1; + if [[ -z "${eclipseStream}" ]] + then + printf "\n\n\t%s\n\n" "ERROR: Must provide eclipseStream as first argument, for this function $(basename $0)" >&2 + return 1; fi - buildId=$2 - if [[ -z "${buildId}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide buildId as second argumnet, for this function $(basename $0)" >&2 - return 1; + buildId=$2 + if [[ -z "${buildId}" ]] + then + printf "\n\n\t%s\n\n" "ERROR: Must provide buildId as second argument, for this function $(basename $0)" >&2 + return 1; fi - BUILD_KIND=$3 - if [[ -z "${BUILD_KIND}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide BUILD_KIND as third argumnet, for this function $(basename $0)" >&2 - return 1; - fi - - - - eclipseStreamMajor=${eclipseStream:0:1} + eclipseStreamMajor=${eclipseStream:0:1} buildType=${buildId:0:1} -# CBI is "normal" case. In future might have special cases. - if [[ "${BUILD_KIND}" == 'CBI' ]] - then - dropsuffix="" - else - dropsuffix="pdebased" - fi - - pathToDL=eclipse/downloads/drops - if (( $eclipseStreamMajor > 3 )) - then - pathToDL=$pathToDL$eclipseStreamMajor - fi + pathToDL=eclipse/downloads/drops + if (( $eclipseStreamMajor > 3 )) + then + pathToDL=$pathToDL$eclipseStreamMajor + fi - pathToDL=$pathToDL$dropsuffix -#echo "pathToDL: $pathToDL" - echo $pathToDL + echo $pathToDL } -# compute main (left part) of download site. -# because we want "from" on build machine to stay the same, only change "to" part, to be "pdebased" function dlFromPath() { eclipseStream=$1 - if [[ -z "${eclipseStream}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide eclipseStream as first argumnet, for this function $(basename $0)" >&2 - return 1; + if [[ -z "${eclipseStream}" ]] + then + printf "\n\n\t%s\n\n" "ERROR: Must provide eclipseStream as first argument, for this function $(basename $0)" >&2 + return 1; fi - buildId=$2 - if [[ -z "${buildId}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide buildId as second argumnet, for this function $(basename $0)" >&2 - return 1; + buildId=$2 + if [[ -z "${buildId}" ]] + then + printf "\n\n\t%s\n\n" "ERROR: Must provide buildId as second argument, for this function $(basename $0)" >&2 + return 1; fi - BUILD_KIND=$3 - if [[ -z "${BUILD_KIND}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide BUILD_KIND as third argumnet, for this function $(basename $0)" >&2 - return 1; - fi - - eclipseStreamMajor=${eclipseStream:0:1} + eclipseStreamMajor=${eclipseStream:0:1} buildType=${buildId:0:1} - - pathFromDL=eclipse/downloads/drops - if (( $eclipseStreamMajor > 3 )) - then - pathFromDL=$pathFromDL$eclipseStreamMajor - fi + if (( $eclipseStreamMajor > 3 )) + then + pathFromDL=$pathFromDL$eclipseStreamMajor + fi - echo $pathFromDL + echo $pathFromDL } function syncDropLocation () { echo "start syncDropLocation" - eclipseStream=$1 - if [[ -z "${eclipseStream}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide eclipseStream as first argumnet, for this function $(basename $0)" >&2 - return 1; + eclipseStream=$1 + if [[ -z "${eclipseStream}" ]] + then + printf "\n\n\t%s\n\n" "ERROR: Must provide eclipseStream as first argument, for this function $(basename $0)" >&2 + return 1; fi - echo "eclipseStream: $eclipseStream" + echo "eclipseStream: $eclipseStream" - buildId=$2 - if [[ -z "${buildId}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide buildId as second argumnet, for this function $(basename $0)" >&2 - return 1; + buildId=$2 + if [[ -z "${buildId}" ]] + then + printf "\n\n\t%s\n\n" "ERROR: Must provide buildId as second argument, for this function $(basename $0)" >&2 + return 1; fi - echo "buildId: $buildId" + echo "buildId: $buildId" - BUILD_KIND=$3 - if [[ -z "${BUILD_KIND}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide BUILD_KIND as third argumnet, for this function $(basename $0)" >&2 - return 1; - fi - echo "BUILD_KIND: $BUILD_KIND" - EBUILDER_HASH=$4 - if [[ -z "${EBUILDER_HASH}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide builder (or aggregator) hash as fourth argumnet, for this function $(basename $0)" >&2 - return 1; + EBUILDER_HASH=$3 + if [[ -z "${EBUILDER_HASH}" ]] + then + printf "\n\n\t%s\n\n" "ERROR: Must provide builder (or aggregator) hash as fourth argument, for this function $(basename $0)" >&2 + return 1; fi - echo "EBUILDER_HASH: $EBUILDER_HASH" + echo "EBUILDER_HASH: $EBUILDER_HASH" - eclipseStreamMajor=${eclipseStream:0:1} + eclipseStreamMajor=${eclipseStream:0:1} buildType=${buildId:0:1} - fromDir=$( dropFromBuildDir $eclipseStream $buildId $BUILD_KIND ) - if [[ ! -d "${fromDir}" ]] - then - echo "ERROR: fromDir is not a directory? fromDir: ${fromDir}" - return 1 - fi - - - toDir=$( dropOnDLServer $eclipseStream $buildId $BUILD_KIND ) - if [[ ! -d "${toDir}" ]] - then - echo "ERROR: toDir is not a directory? toDir: ${toDir}" - return 1 - fi - - echo " fromDir: ${fromDir}" >&2 - echo " toDir: ${toDir}" >&2 - -# here, for dl site, best not to preserve times, since (if mirrored) -# would be more accurate for mirroring system to have -# actual times (and we are copying only one specific -# sub-sirectory) (But, we do for now, for easier testing) - if [[ -n "${fromDir}" && -d "${fromDir}" && -n "${toDir}" && -d "${toDir}" ]] - then - rsync --recursive --prune-empty-dirs --exclude="*apitoolingreference/*" --exclude="*org.eclipse.releng.basebuilder/*" --exclude="*eclipse.platform.releng.aggregator/*" --exclude="*repository/*" --exclude="*workspace-*/*" "${fromDir}" "${toDir}" - rccode=$? - else - rccode=9 - fi - if [[ $rccode != 0 ]] - then - echo "ERROR: rsync did not complete normally.rccode: $rccode" - return $rccode - else -# Now update main DL page index pages, to show available - source /shared/eclipse/sdk/updateIndexFilesFunction.shsource - updateIndex - fi - - - - echo "ending syncDropLocation" + fromDir=$( dropFromBuildDir $eclipseStream $buildId ) + if [[ ! -d "${fromDir}" ]] + then + echo "ERROR: fromDir is not a directory? fromDir: ${fromDir}" + return 1 + fi + + + toDir=$( dropOnDLServer $eclipseStream $buildId ) + if [[ ! -d "${toDir}" ]] + then + echo "ERROR: toDir is not a directory? toDir: ${toDir}" + return 1 + fi + + echo " fromDir: ${fromDir}" >&1 + echo " toDir: ${toDir}" >&1 + + # here, for dl site, best not to preserve times, since (if mirrored) + # would be more accurate for mirroring system to have + # actual times (and we are copying only one specific + # sub-directory) (But, we do for now, for easier testing) + if [[ -n "${fromDir}" && -d "${fromDir}" && -n "${toDir}" && -d "${toDir}" ]] + then + # Note the slash at end of aggregator ... we do not want to exclude eclipse.platform.releng.aggregator-(builder hash).zip + # TODO: remove --verbose, once confident it works as expected. + rsync --times --omit-dir-times --recursive --prune-empty-dirs --exclude="*apitoolingreference/*" --exclude="*org.eclipse.releng.basebuilder/*" --exclude="*eclipse.platform.releng.aggregator/*" --exclude="*repository/*" --exclude="*workspace-*/*" "${fromDir}" "${toDir}" + rccode=$? + else + rccode=9 + fi + if [[ $rccode != 0 ]] + then + echo "ERROR: rsync did not complete normally.rccode: $rccode" + return $rccode + else + # Now update main DL page index pages, to show available + source /shared/eclipse/sdk/updateIndexFilesFunction.shsource + updateIndex + fi + + echo "ending syncDropLocation" } diff --git a/production/sdk/promotion/updateDropLocation.sh b/production/sdk/promotion/updateDropLocation.sh index 97b413a79..93a89d01b 100755 --- a/production/sdk/promotion/updateDropLocation.sh +++ b/production/sdk/promotion/updateDropLocation.sh @@ -22,34 +22,15 @@ function dlpath() return 1; fi - BUILD_KIND=$3 - if [[ -z "${BUILD_KIND}" ]] - then - printf "\n\n\t%s\n\n" "ERROR: Must provide BUILD_KIND as third argumnet, for this function $(basename $0)" - return 1; - fi - - - eclipseStreamMajor=${eclipseStream:0:1} buildType=${buildId:0:1} - # CBI is "normal" one. Other clauses can be added in future for special cases. - if [[ "${BUILD_KIND}" == "CBI" ]] - then - dropsuffix="" - else - dropsuffix="pdebased" - fi - pathToDL=eclipse/downloads/drops if (( $eclipseStreamMajor > 3 )) then pathToDL=$pathToDL$eclipseStreamMajor fi - pathToDL=$pathToDL$dropsuffix - echo $pathToDL } @@ -59,8 +40,7 @@ function updatePages() { eclipseStream=$1 buildId=$2 - BUILD_KIND=$3 - EBUILDER_HASH=$4 + EBUILDER_HASH=$3 if [[ -z "${EBUILDER_HASH}" ]] then printf "\n\n\t%s\n\n" "ERROR: Must provide builder (or aggregator) hash as fourth argumnet, for this function $(basename $0)" @@ -76,27 +56,18 @@ function updatePages() echo "buildType: $buildType" echo "eclipseStream: $eclipseStream" echo "buildId: $buildId" - echo "BUILD_KIND: $BUILD_KIND" echo "EBUILDER_HASH: $EBUILDER_HASH" # compute dirctiory on build machine - dropFromBuildDir=$( dropFromBuildDir "$eclipseStream" "$buildId" "$BUILD_KIND" ) + dropFromBuildDir=$( dropFromBuildDir "$eclipseStream" "$buildId" ) echo "dropFromBuildDir: $dropFromBuildDir" - if [[ "${BUILD_KIND}" == "CBI" ]] - then + eclipsebuilder=eclipse.platform.releng.aggregator ebuilderDropDir="${dropFromBuildDir}/${eclipsebuilder}/production/testScripts" - elif [[ "${BUILD_KIND}" == "PDE" ]] - then - eclipsebuilder=org.eclipse.releng.eclipsebuilder - ebuilderDropDir="${builderDir}/testScripts" - else - echo "ERROR: Unexpected value of BUILD_KIND, $BUILD_KIND" - fi echo "DEBUG: ebuilderDropDir: ${ebuilderDropDir}" - ${ebuilderDropDir}/updateTestResultsPages.sh $eclipseStream $buildId $BUILD_KIND + ${ebuilderDropDir}/updateTestResultsPages.sh $eclipseStream $buildId rccode=$? if [[ $rccode != 0 ]] then @@ -111,20 +82,18 @@ function updatePages() # it requires four arguments # eclipseStream (e.g. 4.2 or 3.8) # buildId (e.g. N20120415-2015) -# BUILD_KIND (CBI or special case) # EBUILDER_HASH (SHA1 HASH or branch of eclipse builder to used -if [[ $# != 4 ]] +if [[ "${#}" != "3" ]] then # usage: scriptname=$(basename $0) - printf "\n\t%s\n" "This script, $scriptname requires four arguments, in order: " + printf "\n\t%s\n" "This script, $scriptname requires three arguments, in order: " printf "\t\t%s\t%s\n" "eclipseStream" "(e.g. 4.2.2 or 3.8.2) " printf "\t\t%s\t%s\n" "buildId" "(e.g. N20120415-2015) " - printf "\t\t%s\t%s\n" "BUILD_KIND" "(e.g. CBI or special case) " printf "\t\t%s\t%s\n" "EBUILDER_HASH" "(SHA1 HASH for eclipe builder used) " printf "\t%s\n" "for example," - printf "\t%s\n\n" "./$scriptname 4.2 N N20120415-2015 CBI master" + printf "\t%s\n\n" "./$scriptname 4.2 N20120415-2015 master" exit 1 fi @@ -146,15 +115,7 @@ then fi echo "buildId: $buildId" -BUILD_KIND=$3 -if [[ -z "${BUILD_KIND}" ]] -then - printf "\n\n\t%s\n\n" "ERROR: Must provide BUILD_KIND as third argumnet, for this function $(basename $0)" - exit 1 -fi -echo "BUILD_KIND: $BUILD_KIND" - -EBUILDER_HASH=$4 +EBUILDER_HASH=$3 if [[ -z "${EBUILDER_HASH}" ]] then printf "\n\n\t%s\n\n" "ERROR: Must provide builder (or aggregator) hash as fourth argumnet, for this function $(basename $0)" @@ -167,8 +128,8 @@ buildType=${buildId:0:1} echo "buildType: $buildType" # = = = = = = = = = -# compute dirctiory on build machine -dropFromBuildDir=$( dropFromBuildDir "$eclipseStream" "$buildId" "$BUILD_KIND" ) +# compute directory on build machine +dropFromBuildDir=$( dropFromBuildDir "$eclipseStream" "$buildId" ) echo "dropFromBuildDir: $dropFromBuildDir" if [[ "${dropFromBuildDir}" == "1" ]] @@ -184,9 +145,9 @@ then exit 1 fi SCRIPTDIR=$( dirname $0 ) -${SCRIPTDIR}/getEBuilder.sh "${BUILD_KIND}" "${EBUILDER_HASH}" "${dropFromBuildDir}" +${SCRIPTDIR}/getEBuilder.sh "${EBUILDER_HASH}" "${dropFromBuildDir}" -updatePages $eclipseStream $buildId $BUILD_KIND "${EBUILDER_HASH}" +updatePages $eclipseStream $buildId "${EBUILDER_HASH}" rccode=$? if [ $rccode -ne 0 ] then @@ -194,7 +155,7 @@ then exit $rccode fi -syncDropLocation "$eclipseStream" "$buildId" "$BUILD_KIND" "${EBUILDER_HASH}" +syncDropLocation "$eclipseStream" "$buildId" "${EBUILDER_HASH}" rccode=$? if [ $rccode -ne 0 ] then @@ -204,4 +165,3 @@ fi exit 0 - diff --git a/production/sdk/startTests.sh b/production/sdk/startTests.sh index 449259543..951c44382 100755 --- a/production/sdk/startTests.sh +++ b/production/sdk/startTests.sh @@ -29,8 +29,7 @@ source buildParams.shsource 2>/dev/null # which is how invoke from "promote script" eclipseStream=${eclipseStream:-${1}} buildId=${buildId:-${2}} -BUILD_KIND=${BUILD_KIND:-${3}} -EBUILDER_HASH=${EBUILDER_HASH:-${4}} +EBUILDER_HASH=${EBUILDER_HASH:-${3}} if [[ -z ${eclipseStream} || -z ${buildId} ]] then @@ -39,11 +38,6 @@ then exit 1 fi -if [[ -z "${BUILD_KIND}" ]] -then - BUILD_KIND=CBI -fi - if [[ -z "${EBUILDER_HASH}" ]] then EBUILDER_HASH=master @@ -72,7 +66,7 @@ else exit 1 fi -source buildeclipse.shsource 2>/dev/null +source localbuildproperties.shsource 2>/dev/null echo "values in ${0}" echo "eclipseStream: $eclipseStream" @@ -81,7 +75,6 @@ echo "eclipseStreamMinor: $eclipseStreamMinor" echo "eclipseStreamService: $eclipseStreamService" echo "buildType: $buildType" echo "buildId: $buildId" -echo "BUILD_KIND: $BUILD_KIND" echo "EBUILDER_HASH: $EBUILDER_HASH" @@ -107,7 +100,6 @@ HUDSON_TOKEN=windows2012tests ant \ -DpostingDirectory=${postingDirectory} \ -DbuildId=${buildId} \ -DeclipseStream=${eclipseStream} \ - -DBUILD_KIND=${BUILD_KIND} \ -DEBUILDER_HASH=${EBUILDER_HASH} \ -f ${builderDir}/invokeTestsJSON.xml diff --git a/production/sdk/testdataCronJob.sh b/production/sdk/testdataCronJob.sh index f8286bf44..67003a1fd 100755 --- a/production/sdk/testdataCronJob.sh +++ b/production/sdk/testdataCronJob.sh @@ -12,7 +12,7 @@ # Start with minimal path for consistency across machines # plus, cron jobs do not inherit an environment # care is needed not have anything in ${HOME}/bin that would effect the build -# unintentionally, but is required to make use of "source buildeclipse.shsource" on +# unintentionally, but is required to make use of "source localbuildproperties.shsource" on # local machines. # Likely only a "release engineer" would be interested, such as to override "SIGNING" (setting it # to false) for a test I-build on a remote machine. diff --git a/production/sdk/updateIndexFilesFunction.shsource b/production/sdk/updateIndexFilesFunction.shsource index f476743e5..ce037226d 100644 --- a/production/sdk/updateIndexFilesFunction.shsource +++ b/production/sdk/updateIndexFilesFunction.shsource @@ -11,9 +11,9 @@ function internalUpdateIndex () { - # this buildeclipse.shsource file is to ease local builds to override some variables. + # this localbuildproperties.shsource file is to ease local builds to override some variables. # It should not be used for production builds. - source buildeclipse.shsource 2>/dev/null + source localbuildproperties.shsource 2>/dev/null SITE_HOST=${SITE_HOST:-download.eclipse.org} #echo "SITE_HOST: $SITE_HOST" diff --git a/production/sdk/wgetFresh.sh b/production/sdk/wgetFresh.sh index 8501d231d..70fae23bc 100755 --- a/production/sdk/wgetFresh.sh +++ b/production/sdk/wgetFresh.sh @@ -2,6 +2,12 @@ # gets a fresh copy of utility scripts +# this localbuildproperties.shsource file is to ease local builds to override some variables. +# It should not be used for production builds. +source localbuildproperties.shsource 2>/dev/null + +export GIT_HOST=${GIT_HOST:-"git.eclipse.org"} + # codifying the branch (or tag) to use, so it can be set/chagned in one place initScriptTag="h=master" @@ -12,13 +18,13 @@ initScriptTag="h=master" source checkForErrorExit.sh gitfile=makeBranch.sh -wget --no-verbose -O ${gitfile} http://git.eclipse.org/c/platform/eclipse.platform.releng.eclipsebuilder.git/plain/scripts/sdk/${gitfile}?$initScriptTag 2>&1; +wget --no-verbose -O ${gitfile} http://${GIT_HOST}/c/platform/eclipse.platform.releng.eclipsebuilder.git/plain/scripts/sdk/${gitfile}?$initScriptTag 2>&1; checkForErrorExit $? "could not wget file: ${gitfile}" gitfile=renameBuild.sh -wget --no-verbose -O ${gitfile} http://git.eclipse.org/c/platform/eclipse.platform.releng.eclipsebuilder.git/plain/scripts/sdk/${gitfile}?$initScriptTag 2>&1; +wget --no-verbose -O ${gitfile} http://${GIT_HOST}/c/platform/eclipse.platform.releng.eclipsebuilder.git/plain/scripts/sdk/${gitfile}?$initScriptTag 2>&1; checkForErrorExit $? "could not wget file: ${gitfile}" gitfile=checkForErrorExit.sh -wget --no-verbose -O ${gitfile} http://git.eclipse.org/c/platform/eclipse.platform.releng.eclipsebuilder.git/plain/scripts/sdk/${gitfile}?$initScriptTag 2>&1; +wget --no-verbose -O ${gitfile} http://${GIT_HOST}/c/platform/eclipse.platform.releng.eclipsebuilder.git/plain/scripts/sdk/${gitfile}?$initScriptTag 2>&1; checkForErrorExit $? "could not wget file: ${gitfile}" # get this script itself (would have to run twice to make use changes, naturally) @@ -26,7 +32,7 @@ checkForErrorExit $? "could not wget file: ${gitfile}" # but will remove it if no differences found. # and a command line like the following works well -wget --no-verbose -O wgetFresh.NEW.sh http://git.eclipse.org/c/platform/eclipse.platform.releng.eclipsebuilder.git/plain/scripts/sdk/wgetFresh.sh?$initScriptTag 2>&1; +wget --no-verbose -O wgetFresh.NEW.sh http://${GIT_HOST}/c/platform/eclipse.platform.releng.eclipsebuilder.git/plain/scripts/sdk/wgetFresh.sh?$initScriptTag 2>&1; differs=`diff wgetFresh.NEW.sh wgetFresh.sh` diff --git a/production/sdk/wgetFreshSDKdir.sh b/production/sdk/wgetFreshSDKdir.sh index 94528e2dc..43a7e0844 100755 --- a/production/sdk/wgetFreshSDKdir.sh +++ b/production/sdk/wgetFreshSDKdir.sh @@ -4,13 +4,24 @@ # need to manually check and make sure nothing is running or will # be running soon. +# this localbuildproperties.shsource file is to ease local builds to override some variables. +# It should not be used for production builds. +source localbuildproperties.shsource 2>/dev/null +export GIT_HOST=${GIT_HOST:-"git.eclipse.org"} + + # codifying the branch (or tag) to use, so it can be set/chagned in one place branch=master initScriptTag="h=$branch" # to use a tag instead of branch, would be tag=X, such as # tag=vI20120417-0700, or in full form -# http://git.eclipse.org/c/platform/eclipse.platform.releng.eclipsebuilder.git/plain/scripts/wgetFresh.sh?tag=vI20120417-0700 +# http://${GIT_HOST}/c/platform/eclipse.platform.releng.eclipsebuilder.git/plain/scripts/wgetFresh.sh?tag=vI20120417-0700 + +# this localbuildproperties.shsource file is to ease local builds to override some variables. +# It should not be used for production builds. +source localbuildproperties.shsource 2>/dev/null +export GIT_HOST=${GIT_HOST:-"git.eclipse.org"} source /shared/eclipse/sdk/checkForErrorExit.sh @@ -21,7 +32,7 @@ source /shared/eclipse/sdk/checkForErrorExit.sh # first get a fresh copy of just this file, put in parent directory # since overtime there will be few changes and can re-invoke from there. #fileToGet=wgetFreshSDKdir.sh -#wget --no-verbose -O ../${fileToGet} http://git.eclipse.org/c/platform/eclipse.platform.releng.eclipsebuilder.git/plain/scripts/sdk/${fileToGet}?${initScriptTag} 2>&1 +#wget --no-verbose -O ../${fileToGet} http://${GIT_HOST}/c/platform/eclipse.platform.releng.eclipsebuilder.git/plain/scripts/sdk/${fileToGet}?${initScriptTag} 2>&1 #checkForErrorExit $? "could not wget file: ${fileToGet}" #chmod -c +x ../${fileToGet} cd /shared/eclipse @@ -32,8 +43,8 @@ rm -fr tempeb 2>/dev/null mkdir -p tempeb checkForErrorExit $? "could not mkdir?!" -#wget -O master.zip http://git.eclipse.org/c/platform/eclipse.platform.releng.eclipsebuilder.git/snapshot/master.zip -wget -O master.zip http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/snapshot/master.zip +#wget -O master.zip http://${GIT_HOST}/c/platform/eclipse.platform.releng.eclipsebuilder.git/snapshot/master.zip +wget -O master.zip http://${GIT_HOST}/c/platform/eclipse.platform.releng.aggregator.git/snapshot/master.zip checkForErrorExit $? "could not get aggregator?!" unzip -q ${branch}.zip -d tempeb diff --git a/production/tag-build-input.sh b/production/tag-build-input.sh index 34cf26628..c3cfe0867 100644 --- a/production/tag-build-input.sh +++ b/production/tag-build-input.sh @@ -21,7 +21,7 @@ source "$1" cd $BUILD_ROOT # derived values -gitCache=$( fn-git-cache "$BUILD_ROOT" "$BRANCH" ) +gitCache=$( fn-git-cache "$BUILD_ROOT" ) aggDir=$( fn-git-dir "$gitCache" "$AGGREGATOR_REPO" ) repositories=$( echo $STREAMS_PATH/repositories${PATCH_BUILD}.txt ) diff --git a/production/testScripts/configuration/sdk.tests/testConfigs/linux/equinoxp2tests.properties b/production/testScripts/configuration/sdk.tests/testConfigs/linux/equinoxp2tests.properties index 30c9b8af4..d7ce00908 100644 --- a/production/testScripts/configuration/sdk.tests/testConfigs/linux/equinoxp2tests.properties +++ b/production/testScripts/configuration/sdk.tests/testConfigs/linux/equinoxp2tests.properties @@ -1,9 +1,19 @@ -#Fri Oct 22 11:38:18 EDT 2010 -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux-x86_64=@executionDir@/eclipse-platform-3.7.2-linux-gtk-x86_64.tar.gz -org.eclipse.equinox.p2.tests.current.build.repo=@org.eclipse.equinox.p2.tests.current.build.repo@ -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32=@executionDir@\\eclipse-platform-3.7.2-win32.zip -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx=@executionDir@/eclipse-platform-3.7.2-macosx-cocoa.tar.gz -org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux=@executionDir@/eclipse-platform-@buildId@-linux-gtk-x86_64.tar.gz -org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32=@executionDir@\\eclipse-platform-@buildId@-win32.zip -org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx=@executionDir@/eclipse-platform-@buildId@-macosx-cocoa.tar.gz -org.eclipse.equinox.p2.tests.last.release.build.repo=http\://download.eclipse.org/eclipse/updates/4.1/R-4.1.2-201202230900 +#Properties required by equinox p2 tests +#Version from production/testScripts/configuration/sdk.tests/testConfigs + +org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux=\${basedir}/eclipse-platform-${buildId}-linux-gtk.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux-x86_64=\${basedir}/eclipse-platform-${buildId}-linux-gtk-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32=\${basedir}\\eclipse-platform-${buildId}-win32.zip +org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32-x86_64=\${basedir}\\\\eclipse-platform-${buildId}-win32-x86_64.zip +org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx=\${basedir}/eclipse-platform-${buildId}-macosx-cocoa.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx-x86_64=\${basedir}/eclipse-platform-${buildId}-macosx-cocoa-x86_64.tar.gz + +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux=\${basedir}/eclipse-platform-4.4-linux-gtk.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux-x86_64=\${basedir}/eclipse-platform-4.4-linux-gtk-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32=\${basedir}\\\\eclipse-platform-4.4-win32.zip +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32-x86_64=\${basedir}\\\\eclipse-platform-4.4-win32-x86_64.zip +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx=\${basedir}/eclipse-platform-4.4-macosx-cocoa.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx-x86_64=\${basedir}/eclipse-platform-4.4-macosx-cocoa-x86_64.tar.gz + +org.eclipse.equinox.p2.tests.current.build.repo=http\://${DOWNLOAD_HOST}/eclipse/updates/${eclipseStreamMajor}.${eclipseStreamMinor}-${buildType}-builds/${buildId} +org.eclipse.equinox.p2.tests.last.release.build.repo=http\://${DOWNLOAD_HOST}/eclipse/updates/4.4/R-4.4-201406061215 \ No newline at end of file diff --git a/production/testScripts/configuration/sdk.tests/testConfigs/linux/testing.properties b/production/testScripts/configuration/sdk.tests/testConfigs/linux/testing.properties index 8c89deb00..c473a8694 100644 --- a/production/testScripts/configuration/sdk.tests/testConfigs/linux/testing.properties +++ b/production/testScripts/configuration/sdk.tests/testConfigs/linux/testing.properties @@ -26,8 +26,8 @@ runtimeDeltapack=eclipse-${buildId}-delta-pack.zip #name of Platform runtime to install and test runtimePlatform=eclipse-platform-${buildId}-linux-gtk.tar.gz -# Not currently used on eclipse.org tests -previousRuntimePlatform=eclipse-platform-3.7.1-linux-gtk.tar.gz +#Used to have a stable version of p2 director? +previousRuntimePlatformVersion=4.4 #directory where test scripts are launched executionDir=${testDir}/eclipse-testing diff --git a/production/testScripts/configuration/sdk.tests/testConfigs/linux32/equinoxp2tests.properties b/production/testScripts/configuration/sdk.tests/testConfigs/linux32/equinoxp2tests.properties index 4455946df..fec7ef26a 100644 --- a/production/testScripts/configuration/sdk.tests/testConfigs/linux32/equinoxp2tests.properties +++ b/production/testScripts/configuration/sdk.tests/testConfigs/linux32/equinoxp2tests.properties @@ -1,9 +1,17 @@ -#Fri Oct 22 11:38:18 EDT 2010 -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux=@executionDir@/eclipse-platform-3.7.2-linux-gtk.tar.gz -org.eclipse.equinox.p2.tests.current.build.repo=@org.eclipse.equinox.p2.tests.current.build.repo@ -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32=@executionDir@\\eclipse-platform-3.7.2-win32.zip -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx=@executionDir@/eclipse-platform-3.7.2-macosx-cocoa.tar.gz -org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux=@executionDir@/eclipse-platform-@buildId@-linux-gtk.tar.gz -org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32=@executionDir@\\eclipse-platform-@buildId@-win32.zip -org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx=@executionDir@/eclipse-platform-@buildId@-macosx-cocoa.tar.gz -org.eclipse.equinox.p2.tests.last.release.build.repo=http\://download.eclipse.org/eclipse/updates/4.1/R-4.1.2-201202230900 +#Properties required by equinox p2 tests +#Wed, 14 Mar 2012 19:41:56 -0400 + +org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux=\${basedir}/eclipse-platform-${buildId}-linux-gtk.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux-x86_64=\${basedir}/eclipse-platform-${buildId}-linux-gtk-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32=\${basedir}\\eclipse-platform-${buildId}-win32.zip +org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32-x86_64=\${basedir}\\\\eclipse-platform-${buildId}-win32-x86_64.zip +org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx=\${basedir}/eclipse-platform-${buildId}-macosx-cocoa.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx-x86_64=\${basedir}/eclipse-platform-${buildId}-macosx-cocoa-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux=\${basedir}/eclipse-platform-4.4-linux-gtk.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux-x86_64=\${basedir}/eclipse-platform-4.4-linux-gtk-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32=\${basedir}\\\\eclipse-platform-4.4-win32.zip +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32-x86_64=\${basedir}\\\\eclipse-platform-4.4-win32-x86_64.zip +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx=\${basedir}/eclipse-platform-4.4-macosx-cocoa.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx-x86_64=\${basedir}/eclipse-platform-4.4-macosx-cocoa-x86_64.tar.gz +org.eclipse.equinox.p2.tests.current.build.repo=file:/shared/eclipse/e4/lts/eclipse.platform.releng.aggregator/eclipse.platform.repository/target/repository/ +org.eclipse.equinox.p2.tests.last.release.build.repo=http\://download.eclipse.org/eclipse/updates/4.1/R-4.1.2-201202230900 \ No newline at end of file diff --git a/production/testScripts/configuration/sdk.tests/testConfigs/macmini/equinoxp2tests.properties b/production/testScripts/configuration/sdk.tests/testConfigs/macmini/equinoxp2tests.properties index 4455946df..fec7ef26a 100644 --- a/production/testScripts/configuration/sdk.tests/testConfigs/macmini/equinoxp2tests.properties +++ b/production/testScripts/configuration/sdk.tests/testConfigs/macmini/equinoxp2tests.properties @@ -1,9 +1,17 @@ -#Fri Oct 22 11:38:18 EDT 2010 -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux=@executionDir@/eclipse-platform-3.7.2-linux-gtk.tar.gz -org.eclipse.equinox.p2.tests.current.build.repo=@org.eclipse.equinox.p2.tests.current.build.repo@ -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32=@executionDir@\\eclipse-platform-3.7.2-win32.zip -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx=@executionDir@/eclipse-platform-3.7.2-macosx-cocoa.tar.gz -org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux=@executionDir@/eclipse-platform-@buildId@-linux-gtk.tar.gz -org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32=@executionDir@\\eclipse-platform-@buildId@-win32.zip -org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx=@executionDir@/eclipse-platform-@buildId@-macosx-cocoa.tar.gz -org.eclipse.equinox.p2.tests.last.release.build.repo=http\://download.eclipse.org/eclipse/updates/4.1/R-4.1.2-201202230900 +#Properties required by equinox p2 tests +#Wed, 14 Mar 2012 19:41:56 -0400 + +org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux=\${basedir}/eclipse-platform-${buildId}-linux-gtk.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux-x86_64=\${basedir}/eclipse-platform-${buildId}-linux-gtk-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32=\${basedir}\\eclipse-platform-${buildId}-win32.zip +org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32-x86_64=\${basedir}\\\\eclipse-platform-${buildId}-win32-x86_64.zip +org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx=\${basedir}/eclipse-platform-${buildId}-macosx-cocoa.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx-x86_64=\${basedir}/eclipse-platform-${buildId}-macosx-cocoa-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux=\${basedir}/eclipse-platform-4.4-linux-gtk.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux-x86_64=\${basedir}/eclipse-platform-4.4-linux-gtk-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32=\${basedir}\\\\eclipse-platform-4.4-win32.zip +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32-x86_64=\${basedir}\\\\eclipse-platform-4.4-win32-x86_64.zip +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx=\${basedir}/eclipse-platform-4.4-macosx-cocoa.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx-x86_64=\${basedir}/eclipse-platform-4.4-macosx-cocoa-x86_64.tar.gz +org.eclipse.equinox.p2.tests.current.build.repo=file:/shared/eclipse/e4/lts/eclipse.platform.releng.aggregator/eclipse.platform.repository/target/repository/ +org.eclipse.equinox.p2.tests.last.release.build.repo=http\://download.eclipse.org/eclipse/updates/4.1/R-4.1.2-201202230900 \ No newline at end of file diff --git a/production/testScripts/configuration/sdk.tests/testConfigs/macosx/equinoxp2tests.properties b/production/testScripts/configuration/sdk.tests/testConfigs/macosx/equinoxp2tests.properties index d3d6a5770..fec7ef26a 100644 --- a/production/testScripts/configuration/sdk.tests/testConfigs/macosx/equinoxp2tests.properties +++ b/production/testScripts/configuration/sdk.tests/testConfigs/macosx/equinoxp2tests.properties @@ -1,9 +1,17 @@ -#Fri Oct 22 11:38:18 EDT 2010 -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux=@executionDir@/eclipse-platform-3.7.2-linux-gtk.tar.gz -org.eclipse.equinox.p2.tests.current.build.repo=@org.eclipse.equinox.p2.tests.current.build.repo@ -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32=@executionDir@\\eclipse-platform-3.7.2-win32.zip -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx-x86_64=@executionDir@/eclipse-platform-3.7.2-macosx-cocoa-x86_64.tar.gz -org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux=@executionDir@/eclipse-platform-@buildId@-linux-gtk.tar.gz -org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32=@executionDir@\\eclipse-platform-@buildId@-win32.zip -org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx=@executionDir@/eclipse-platform-@buildId@-macosx-cocoa-x86_64.tar.gz -org.eclipse.equinox.p2.tests.last.release.build.repo=http\://download.eclipse.org/eclipse/updates/4.1/R-4.1.2-201202230900 +#Properties required by equinox p2 tests +#Wed, 14 Mar 2012 19:41:56 -0400 + +org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux=\${basedir}/eclipse-platform-${buildId}-linux-gtk.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux-x86_64=\${basedir}/eclipse-platform-${buildId}-linux-gtk-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32=\${basedir}\\eclipse-platform-${buildId}-win32.zip +org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32-x86_64=\${basedir}\\\\eclipse-platform-${buildId}-win32-x86_64.zip +org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx=\${basedir}/eclipse-platform-${buildId}-macosx-cocoa.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx-x86_64=\${basedir}/eclipse-platform-${buildId}-macosx-cocoa-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux=\${basedir}/eclipse-platform-4.4-linux-gtk.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux-x86_64=\${basedir}/eclipse-platform-4.4-linux-gtk-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32=\${basedir}\\\\eclipse-platform-4.4-win32.zip +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32-x86_64=\${basedir}\\\\eclipse-platform-4.4-win32-x86_64.zip +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx=\${basedir}/eclipse-platform-4.4-macosx-cocoa.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx-x86_64=\${basedir}/eclipse-platform-4.4-macosx-cocoa-x86_64.tar.gz +org.eclipse.equinox.p2.tests.current.build.repo=file:/shared/eclipse/e4/lts/eclipse.platform.releng.aggregator/eclipse.platform.repository/target/repository/ +org.eclipse.equinox.p2.tests.last.release.build.repo=http\://download.eclipse.org/eclipse/updates/4.1/R-4.1.2-201202230900 \ No newline at end of file diff --git a/production/testScripts/configuration/sdk.tests/testConfigs/win7-64/equinoxp2tests.properties b/production/testScripts/configuration/sdk.tests/testConfigs/win7-64/equinoxp2tests.properties index ce25cea6e..fec7ef26a 100644 --- a/production/testScripts/configuration/sdk.tests/testConfigs/win7-64/equinoxp2tests.properties +++ b/production/testScripts/configuration/sdk.tests/testConfigs/win7-64/equinoxp2tests.properties @@ -1,9 +1,17 @@ -#Fri Oct 22 11:38:18 EDT 2010 -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux=@executionDir@\\eclipse-platform-3.7.2-linux-gtk.tar.gz -org.eclipse.equinox.p2.tests.current.build.repo=@org.eclipse.equinox.p2.tests.current.build.repo@ -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32-x86_64=@executionDir@\\eclipse-platform-3.7.2-win32-x86_64.zip -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx=@executionDir@\\eclipse-platform-3.7.2-macosx-cocoa.tar.gz -org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux=@executionDir@\\eclipse-platform-@buildId@-linux-gtk.tar.gz -org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32=@executionDir@\\eclipse-platform-@buildId@-win32-x86_64.zip -org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx=@executionDir@\\eclipse-platform-@buildId@-macosx-cocoa.tar.gz -org.eclipse.equinox.p2.tests.last.release.build.repo=http\://download.eclipse.org/eclipse/updates/4.1/R-4.1.2-201202230900 +#Properties required by equinox p2 tests +#Wed, 14 Mar 2012 19:41:56 -0400 + +org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux=\${basedir}/eclipse-platform-${buildId}-linux-gtk.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux-x86_64=\${basedir}/eclipse-platform-${buildId}-linux-gtk-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32=\${basedir}\\eclipse-platform-${buildId}-win32.zip +org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32-x86_64=\${basedir}\\\\eclipse-platform-${buildId}-win32-x86_64.zip +org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx=\${basedir}/eclipse-platform-${buildId}-macosx-cocoa.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx-x86_64=\${basedir}/eclipse-platform-${buildId}-macosx-cocoa-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux=\${basedir}/eclipse-platform-4.4-linux-gtk.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux-x86_64=\${basedir}/eclipse-platform-4.4-linux-gtk-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32=\${basedir}\\\\eclipse-platform-4.4-win32.zip +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32-x86_64=\${basedir}\\\\eclipse-platform-4.4-win32-x86_64.zip +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx=\${basedir}/eclipse-platform-4.4-macosx-cocoa.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx-x86_64=\${basedir}/eclipse-platform-4.4-macosx-cocoa-x86_64.tar.gz +org.eclipse.equinox.p2.tests.current.build.repo=file:/shared/eclipse/e4/lts/eclipse.platform.releng.aggregator/eclipse.platform.repository/target/repository/ +org.eclipse.equinox.p2.tests.last.release.build.repo=http\://download.eclipse.org/eclipse/updates/4.1/R-4.1.2-201202230900 \ No newline at end of file diff --git a/production/testScripts/configuration/sdk.tests/testConfigs/win7/equinoxp2tests.properties b/production/testScripts/configuration/sdk.tests/testConfigs/win7/equinoxp2tests.properties index 1d4718a55..fec7ef26a 100644 --- a/production/testScripts/configuration/sdk.tests/testConfigs/win7/equinoxp2tests.properties +++ b/production/testScripts/configuration/sdk.tests/testConfigs/win7/equinoxp2tests.properties @@ -1,9 +1,17 @@ -#Fri Oct 22 11:38:18 EDT 2010 -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux=@executionDir@\\eclipse-platform-3.7.2-linux-gtk.tar.gz -org.eclipse.equinox.p2.tests.current.build.repo=@org.eclipse.equinox.p2.tests.current.build.repo@ -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32=@executionDir@\\eclipse-platform-3.7.2-win32.zip -org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx=@executionDir@\\eclipse-platform-3.7.2-macosx-cocoa.tar.gz -org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux=@executionDir@\\eclipse-platform-@buildId@-linux-gtk.tar.gz -org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32=@executionDir@\\eclipse-platform-@buildId@-win32.zip -org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx=@executionDir@\\eclipse-platform-@buildId@-macosx-cocoa.tar.gz -org.eclipse.equinox.p2.tests.last.release.build.repo=http\://download.eclipse.org/eclipse/updates/4.1/R-4.1.2-201202230900 +#Properties required by equinox p2 tests +#Wed, 14 Mar 2012 19:41:56 -0400 + +org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux=\${basedir}/eclipse-platform-${buildId}-linux-gtk.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.linux-x86_64=\${basedir}/eclipse-platform-${buildId}-linux-gtk-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32=\${basedir}\\eclipse-platform-${buildId}-win32.zip +org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32-x86_64=\${basedir}\\\\eclipse-platform-${buildId}-win32-x86_64.zip +org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx=\${basedir}/eclipse-platform-${buildId}-macosx-cocoa.tar.gz +org.eclipse.equinox.p2.reconciler.tests.platform.archive.macosx-x86_64=\${basedir}/eclipse-platform-${buildId}-macosx-cocoa-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux=\${basedir}/eclipse-platform-4.4-linux-gtk.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.linux-x86_64=\${basedir}/eclipse-platform-4.4-linux-gtk-x86_64.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32=\${basedir}\\\\eclipse-platform-4.4-win32.zip +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.win32-x86_64=\${basedir}\\\\eclipse-platform-4.4-win32-x86_64.zip +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx=\${basedir}/eclipse-platform-4.4-macosx-cocoa.tar.gz +org.eclipse.equinox.p2.reconciler.tests.lastrelease.platform.archive.macosx-x86_64=\${basedir}/eclipse-platform-4.4-macosx-cocoa-x86_64.tar.gz +org.eclipse.equinox.p2.tests.current.build.repo=file:/shared/eclipse/e4/lts/eclipse.platform.releng.aggregator/eclipse.platform.repository/target/repository/ +org.eclipse.equinox.p2.tests.last.release.build.repo=http\://download.eclipse.org/eclipse/updates/4.1/R-4.1.2-201202230900 \ No newline at end of file diff --git a/production/testScripts/configuration/sdk.tests/testScripts/test.xml b/production/testScripts/configuration/sdk.tests/testScripts/test.xml index 3f1b33766..707e88355 100644 --- a/production/testScripts/configuration/sdk.tests/testScripts/test.xml +++ b/production/testScripts/configuration/sdk.tests/testScripts/test.xml @@ -1,6 +1,6 @@ @@ -102,6 +102,15 @@ value="true"> + + + + + @@ -340,18 +349,23 @@ - -installIU ${extraIU} + + -installExtraIU ${extraIU} + + from ${currentBuildRepo} + into ${eclipse-home} + using launcher: ${launcherPath} + @@ -375,18 +389,23 @@ name="launcherPath" refid="launcher.paths" /> - -installIU ${testPlugin} + + -installTestIU ${testPlugin} + + from ${repoLocation} + into ${eclipse-home} + using launcher: ${launcherPath} + @@ -422,6 +441,7 @@ + @@ -1342,7 +1362,7 @@ - + @@ -1455,9 +1475,9 @@ relatively quick, and realtively reliable on build.eclipse.org hardware --> - - --> + diff --git a/production/testScripts/configuration/streamSpecific-build.properties b/production/testScripts/configuration/streamSpecific-build.properties index 930d6e25e..2fb03bb9e 100644 --- a/production/testScripts/configuration/streamSpecific-build.properties +++ b/production/testScripts/configuration/streamSpecific-build.properties @@ -6,7 +6,7 @@ # purely title or identifier for display, to help confirm right file # is being retrived and used. -streamSpecificPropertiesTitle="Properties for 4.4.0 builds and tests" +streamSpecificPropertiesTitle="Properties for 4.5.0 builds and tests" # emfRepoURL should NOT be defined in 38 builds, so the # builder will know to "skip" tasks related to EMF @@ -18,20 +18,23 @@ streamSpecificPropertiesTitle="Properties for 4.4.0 builds and tests" # TODO: we could likely get rid of this section, # now that we have ${eclipseStreamMajor} and ${eclipseStreamMinor} available in main scripts # (but, we'd still need _this_ file anyway, so can improve these repo location variables later. - p2repoN=http://@localmirror@/eclipse/updates/4.4-N-builds - p2repoI=http://@localmirror@/eclipse/updates/4.4-I-builds - p2repoM=http://@localmirror@/eclipse/updates/4.4-M-builds - p2repoNPath=/eclipse/updates/4.4-N-builds - p2repoIPath=/eclipse/updates/4.4-I-builds - p2repoMPath=/eclipse/updates/4.3-M-builds - p2repopreviousR=http://@localmirror@/eclipse/updates/4.3/R-4.3.2-201402211700 - p2repoXPath=/eclipse/updates/4.4-X-builds - +# p2repoN=http://@localmirror@/eclipse/updates/4.4-N-builds +# p2repoI=http://@localmirror@/eclipse/updates/4.4-I-builds +# p2repoM=http://@localmirror@/eclipse/updates/4.4-M-builds +# p2repoNPath=/eclipse/updates/4.4-N-builds +# p2repoIPath=/eclipse/updates/4.4-I-builds +# p2repoMPath=/eclipse/updates/4.3-M-builds +# p2repoXPath=/eclipse/updates/4.4-X-builds + + stableDirectorLocation=http://${DOWNLOAD_HOST}/eclipse/downloads/drops4/R-4.4-201406061215 + # version here is "build label" ... in general form, the "middle" of archive name, + # such as "eclipse-platform-${stableDirectorVersion}-linux-gtk-x86_64.tar.gz + stableDirectorVersion=4.4 # Note: API tests needs the _base_ of previous release, and also the previous service release # Bug 378587 - update releng tests (data) to go work against previous release # Bug 380033 - temp fix to hard code 'archive.eclipse.org' for now - apiTestsPreviousBaseDLBaseURL=http://${ARCHIVE_HOST}/eclipse/downloads/drops4/R-4.1-201106201631 - apiTestsPreviousBaseWin32Filename=eclipse-SDK-4.1-win32.zip - apiTestsPreviousRefererenceBaseDLBaseURL=http://${ARCHIVE_HOST}/eclipse/downloads/drops4/R-4.1.2-201202230900 - apiTestsPreviousRefererenceWin32Filename=eclipse-SDK-4.1.2-win32.zip + apiTestsPreviousBaseDLBaseURL=http://${DOWNLOAD_HOST}/eclipse/downloads/drops4/R-4.4-201406061215 + apiTestsPreviousBaseWin32Filename=eclipse-SDK-4.4-win32.zip + apiTestsPreviousRefererenceBaseDLBaseURL=http://${DOWNLOAD_HOST}/eclipse/downloads/drops4/R-4.3.2-201402211700 + apiTestsPreviousRefererenceWin32Filename=eclipse-SDK-4.3.2-win32.zip diff --git a/production/testScripts/genTestIndexes.xml b/production/testScripts/genTestIndexes.xml index 72832fc19..904559627 100644 --- a/production/testScripts/genTestIndexes.xml +++ b/production/testScripts/genTestIndexes.xml @@ -6,7 +6,6 @@ -