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.bat

51 lines
1.7 KiB
Batchfile

@echo off
:: Copyright 2017 The Chromium Authors. All rights reserved.
:: Use of this source code is governed by a BSD-style license that can be
:: found in the LICENSE file.
setlocal
REM Set unique build ID.
FOR /f "usebackq tokens=*" %%a in (`python3 -c "import uuid; print(uuid.uuid4())"`) do set AUTONINJA_BUILD_ID=%%a
REM If a build performance summary has been requested then also set NINJA_STATUS
REM to trigger more verbose status updates. In particular this makes it possible
REM to see how quickly process creation is happening - often a critical clue on
REM Windows. The trailing space is intentional.
if "%NINJA_SUMMARIZE_BUILD%" == "1" set NINJA_STATUS=[%%r processes, %%f/%%t @ %%o/s : %%es ]
set scriptdir=%~dp0
:loop
IF NOT "%1"=="" (
@rem Tell goma or reclient to not do network compiles.
IF "%1"=="--offline" (
SET GOMA_DISABLED=1
SET RBE_remote_disabled=1
)
IF "%1"=="-o" (
SET GOMA_DISABLED=1
SET RBE_remote_disabled=1
)
SHIFT
GOTO :loop
)
REM Execute whatever is printed by autoninja.py.
REM 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>
5 years ago
FOR /f "usebackq tokens=*" %%a in (`vpython %scriptdir%autoninja.py "%*"`) do echo %%a & %%a
@if errorlevel 1 goto buildfailure
REM Use call to invoke python script here, because we may use python3 via python3.bat.
@if "%NINJA_SUMMARIZE_BUILD%" == "1" call python3 %scriptdir%post_build_ninja_summary.py %*
@call python3 %scriptdir%ninjalog_uploader_wrapper.py --cmdline %*
exit /b
:buildfailure
@call python3 %scriptdir%ninjalog_uploader_wrapper.py --cmdline %*
REM Return an error code of 1 so that if a developer types:
REM "autoninja chrome && chrome" then chrome won't run if the build fails.
cmd /c exit 1