mirror of https://github.com/mongodb/mongo
61 lines
1.8 KiB
Bash
61 lines
1.8 KiB
Bash
# Usage:
|
|
# bazel_compile [arguments]
|
|
#
|
|
# Required environment variables:
|
|
# * ${target} - Build target
|
|
# * ${args} - Extra command line args to pass to "bazel run"
|
|
# * ${env} - Env variable string to set (ex. ENV_VAR_ABC=123)
|
|
# * ${redact_args} - If set, redact the args in the report
|
|
|
|
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
|
. "$DIR/prelude.sh"
|
|
|
|
set -o errexit
|
|
set -o verbose
|
|
set -o pipefail
|
|
|
|
. "$DIR/bazel_evergreen_shutils.sh"
|
|
|
|
bazel_evergreen_shutils::activate_and_cd_src
|
|
bazel_evergreen_shutils::export_ssl_paths_if_needed
|
|
|
|
# Use `eval` to force evaluation of the environment variables in the echo statement:
|
|
eval echo "Execution environment: Args: ${args} Target: ${target} Env: ${env} redact_args: ${redact_args}"
|
|
|
|
BAZEL_BINARY="$(bazel_evergreen_shutils::bazel_get_binary_path)"
|
|
|
|
# Build LOCAL_ARG for run-mode
|
|
LOCAL_ARG="$(bazel_evergreen_shutils::compute_local_arg run)"
|
|
# Honor .bazel_build_flags --config lines (do not evict previous cache)
|
|
ALL_FLAGS=""
|
|
if [[ -f .bazel_build_flags ]]; then
|
|
ALL_FLAGS="$(<.bazel_build_flags)"
|
|
fi
|
|
CONFIG_FLAGS="$(bazel_evergreen_shutils::extract_config_flags "${ALL_FLAGS}")"
|
|
LOCAL_ARG="${CONFIG_FLAGS} ${LOCAL_ARG}"
|
|
|
|
INVOCATION_WITH_REDACTION="${target}"
|
|
if [[ -z "${redact_args:-}" ]]; then
|
|
INVOCATION_WITH_REDACTION+=" ${args}"
|
|
fi
|
|
|
|
# Record invocation
|
|
echo "bazel run --verbose_failures ${LOCAL_ARG} ${INVOCATION_WITH_REDACTION}" >bazel-invocation.txt
|
|
|
|
# capture exit code
|
|
set +o errexit
|
|
export RETRY_ON_FAIL=0
|
|
bazel_evergreen_shutils::retry_bazel_cmd 3 "$BAZEL_BINARY" \
|
|
run --verbose_failures ${LOCAL_ARG} ${target} ${args} 2>&1 | tee -a bazel_output.log
|
|
RET=${PIPESTATUS[0]}
|
|
: "${RET:=1}"
|
|
set -o errexit
|
|
|
|
# Report
|
|
$python ./buildscripts/simple_report.py \
|
|
--test-name "bazel run ${INVOCATION_WITH_REDACTION}" \
|
|
--log-file bazel_output.log \
|
|
--exit-code "${RET}"
|
|
|
|
exit "${RET}"
|