#!/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