blob: 0b435c89b05760f2129ca8838a1168f3a34a1f18 [file] [log] [blame]
#!/bin/bash
# Copyright (c) 2012 The Native Client Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
######################################################################
# Notes on directory layout:
# makefile location (base_dir): webports/src
# toolchain injection point: specified externally via NACL_SDK_ROOT.
######################################################################
SCRIPT_DIR="$(cd $(dirname $0) && pwd)"
source ${SCRIPT_DIR}/buildbot_common.sh
set -o nounset
set -o errexit
readonly BNAME_REGEX="(nightly-|webports-)?(.+)-(.+)-(.+)"
if [[ ${BUILDBOT_BUILDERNAME} =~ ${BNAME_REGEX} ]]; then
readonly PREFIX=${BASH_REMATCH[1]}
if [ "${PREFIX}" = "webports-" ]; then
readonly TRYBOT=1
else
readonly TRYBOT=0
fi
fi
readonly PARTCMD="${PYTHON} build_tools/partition.py"
readonly SHARD_CMD="${PARTCMD} -t ${SHARD} -n ${SHARDS}"
echo "Calculating targets for shard $((${SHARD} + 1)) of ${SHARDS}"
PACKAGE_LIST=$(${SHARD_CMD})
if [ -z "${PACKAGE_LIST}" ]; then
echo "sharding command failed: ${SHARD_CMD}"
exit 1
fi
echo "Shard contains following packages: ${PACKAGE_LIST}"
if [ "${TRYBOT}" = "1" ]; then
EFFECTED_FILES=$(git diff --cached --name-only origin/master)
EFFECTED_PACKAGES=$(${PYTHON} build_tools/find_effected_packages.py \
$EFFECTED_FILES)
echo "Patch effects the following packages: ${EFFECTED_PACKAGES}"
if [[ $EFFECTED_PACKAGES != "all" ]]; then
# Run find_effected_packages again with --deps to include the dependecies
# of the effected packages
PACKAGE_LIST=$(${PYTHON} build_tools/find_effected_packages.py --deps \
$EFFECTED_FILES <<< ${PACKAGE_LIST})
echo "Building package subset: ${PACKAGE_LIST}"
fi
fi
for PKG in ${PACKAGE_LIST}; do
InstallPackageMultiArch ${PKG}
done
echo "@@@BUILD_STEP Summary@@@"
if [[ ${RESULT} != 0 ]] ; then
echo "@@@STEP_FAILURE@@@"
echo -e "${MESSAGES}"
fi
exit ${RESULT}