blob: 7a1ee42b06bbe8e986fe2e24120570a29541cacf [file] [log] [blame]
#!/usr/bin/env bash
#*******************************************************************************
# Copyright (c) 2016 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# David Williams - initial API and implementation
#*******************************************************************************
# This script is NOT part of production builds. It is an assist in "republishing"
# results, such as if there is a connection problem, or a script needs to be fixed to
# publish correctly. Even if this script "works", it does not change the files on
# download server, they much be "re-synch'd" manually.
# This script is only and "assist" to republish. It is not fool proof (and not well tested)
# and its exact use depends on what ever the problem was.
BUILD_ID=I20160527-2118
BUILD_ROOT=/shared/eclipse/builds
BUILD_MAJOR=4
BUILD_TYPE=I
postingDirectory=${BUILD_ROOT}/${BUILD_MAJOR}${BUILD_TYPE}/siteDir/eclipse/downloads/drops4
buildDirectory="${postingDirectory}/${BUILD_ID}"
echo "BUILD_ID: $BUILD_ID" 1>&2
# basebuilder (and tools) in following dir needs usually to be removed if connection problmes, or changes made
rm -vfr "${buildDirectory}/org.eclipse.releng.basebuilder"
# aggregator needs to be removed if changes to scripts there.
# The zip needs to be republished do "downloads" if re-running tests involved (rare) but seldom hurts
rm -vfr "${buildDirectory}"/eclipse.platform.releng.aggregator
rm -vfr "${buildDirectory}"/eclipse.platform.releng.aggregator*.zip
# In some cases (rarely) may have to remove index.php (it will not be recreated by default)
# rm "${buildDirectory}/index.php"
# In some (rare) cases may have to remove compilelogs (will not be recreated by default).
# location?
# In some (most) cases may have to do a "git pull" on aggregator, to get a fix (but not recursively!)
pushd "${BUILD_ROOT}/${BUILD_MAJOR}${BUILD_TYPE}/gitCache/eclipse.platform.releng.aggregator" 1>&2
git pull
newHASH=$(git rev-parse HEAD)
echo "newHASH (after pull): $newHASH" 1>&2
popd 1>&2
# If git pull is done, need to update EBUILDER_HASH in buildproperties.shsource
oldPattern="\(export EBUILDER_HASH=\"\)\(.*\)\(\"\)"
replacePattern="\1${newHASH}\3"
replaceDirCommand="s!${oldPattern}!${replacePattern}!g"
echo "[DEBUG] replaceCommnad: ${replaceDirCommand}" 1>&2
sed -e "${replaceDirCommand}" "${buildDirectory}/buildproperties.shsource" > "${buildDirectory}/buildproperties.shsourceTEMPNEW"
RC=$?
if [[ $RC != 0 ]]
then
echo "sed returned non-zero return code: $RC" 1>&2
exit $RC
else
cp --backup=numbered "${buildDirectory}/buildproperties.shsourceTEMPNEW" "${buildDirectory}/buildproperties.shsource"
#TODO check return code of cp
echo "replaced original buildproperties.shsource (after backing up original)"
fi
# sometimes, but rearly, the production directory may need to be replaced changes made.
export SCRIPT_PATH="${BUILD_ROOT}/${BUILD_MAJOR}${BUILD_TYPE}/production"
# now republish!
${SCRIPT_PATH}/publish-eclipse.sh ${buildDirectory}/buildproperties.shsource 2>&1 | tee republishout.txt