You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
depot_tools/autoninja

37 lines
1.1 KiB
Plaintext

#!/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="$(python -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.
Revert "Check whether goma is running when it is enabled" This reverts commit b7ddc5a0091bcd4d070fcd91027d7099338e84b9. Reason for revert: This broke the builder where depot_tools is not in PATH. https://logs.chromium.org/logs/infra-internal/buildbucket/cr-buildbucket.appspot.com/8858077852309878080/+/u/build/stdout Original change's description: > Check whether goma is running when it is enabled > > 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> TBR=yyanagisawa@google.com,dpranke@google.com,brucedawson@chromium.org,sanfin@chromium.org,infra-scoped@luci-project-accounts.iam.gserviceaccount.com Change-Id: I57a6c73ea853259f3d1ec7ad0ce51e495acc96db No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 868590 Bug: b/174673874 Bug: 1167064 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2632018 Reviewed-by: Yoshisato Yanagisawa <yyanagisawa@google.com> Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@google.com>
4 years ago
command=$(vpython "$(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