mirror of
https://chromium.googlesource.com/chromium/tools/depot_tools.git
synced 2026-01-11 18:51:29 +00:00
One of the mistakes one can make when running ninja is having goma enabled (use_goma=true in args.gn) but not having goma running. This can lead to ~1,000 failed compile steps, which is messy. This change teaches autoninja.py to check whether goma is running. If not then it tells autoninja to just print a warning message. The check costs roughly 30 ms which seems reasonable. In fact, because this change also switches away from vpython (necessary to use python3 to use subprocess.run) it actually runs about 600 ms _faster_ than before this change. If build acceleration is requested through use_rbe then no checking for whether the service is running is done. That could be added in the future. autoninja.py could auto-start goma but that is error prone and has limited additional value. This was tested on Linux, OSX, and Windows. Bug: 868590, b/174673874 Change-Id: Ie773e574878471e5136b9b82d52f86af3d848318 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2627014 Commit-Queue: Bruce Dawson <brucedawson@chromium.org> Reviewed-by: Yoshisato Yanagisawa <yyanagisawa@google.com>
37 lines
1.1 KiB
Bash
Executable File
37 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Copyright (c) 2017 Google Inc. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
# Set unique build ID.
|
|
AUTONINJA_BUILD_ID="$(vpython -c "import uuid; print(uuid.uuid4())")"
|
|
export AUTONINJA_BUILD_ID
|
|
|
|
if [ "$NINJA_SUMMARIZE_BUILD" == "1" ]; then
|
|
export NINJA_STATUS="[%r processes, %f/%t @ %o/s : %es ] "
|
|
fi
|
|
|
|
# Execute whatever is printed by autoninja.py.
|
|
# Also print it to reassure that the right settings are being used.
|
|
command=$(python3 "$(dirname -- "$0")/autoninja.py" "$@")
|
|
if [ "$NINJA_SUMMARIZE_BUILD" == "1" ]; then
|
|
echo "$command"
|
|
fi
|
|
if eval "$command"; then
|
|
if [ "$NINJA_SUMMARIZE_BUILD" == "1" ]; then
|
|
python "$(dirname -- "$0")/post_build_ninja_summary.py" "$@"
|
|
fi
|
|
|
|
# Collect ninjalog from googler.
|
|
python "$(dirname -- "$0")/ninjalog_uploader_wrapper.py" --cmd $command
|
|
exit
|
|
fi
|
|
|
|
# Collect ninjalog from googler.
|
|
python "$(dirname -- "$0")/ninjalog_uploader_wrapper.py" --cmd $command
|
|
|
|
# Return an error code of 1 so that if a developer types:
|
|
# "autoninja chrome && chrome" then chrome won't run if the build fails.
|
|
exit 1
|