[autogardener] Speculative fixes for tasks which generated no logs We have some swarming tasks insta-failing with NO_RESOURCE. These tasks produce no logs or recipe steps. Unfortunately, the current prompt strongly suggests that the agent retrieve logs for the failing step. It attempts to do so with a bogus log path, and the MCP server receives the "coordinator: no access" error. The agent receives that error and interprets it as the actual log output and attributes the task failure to a permissions issue. This CL attempts to fix this in two ways: 1. We try to make it clear that a raw swarming task with no steps has no more logs that can be retrieved. This would avoid the unnecessary and doomed-to-fail tool call altogether. 2. We try to make it clear that the error is a failure to retrieve the logs, as opposed to an error message within the logs. This may be helpful in other cases where the agent correctly attempts to retrieve step logs but it fails for whatever reason, or as a fallback when the agent incorrectly tries to retrieve logs when none exist. Also in this CL: - Include the Swarming bot ID. This may be helpful for finding individual machines that are problematic in the future. - Minor usability tweaks in download-debug-info. Bug: b/491418947 Change-Id: I34e67cb68ac8a7a0be653a8e2fe9a72bd7d6e256 Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/1255956 Commit-Queue: Kaylee Lubick <kjlubick@google.com> Commit-Queue: Eric Boren <borenet@google.com> Reviewed-by: Kaylee Lubick <kjlubick@google.com> Auto-Submit: Eric Boren <borenet@google.com>
This repo contains infrastructure code for Skia.
The infrastructure code is generally built to run on x86 linux. Running on other platforms may be possible but is not officially supported and success will vary depending on the command.
The main source code repository is a Git repository hosted at https://skia.googlesource.com/buildbot.git. It is possible to check out this repository directly with git clone or via go get.
Using git clone allows you to work in whatever directory you want. You will still need to set GOPATH in order to build some apps (recommended to put this in a cache dir). E.g.:
$ cd ${WORKDIR}
$ git clone https://skia.googlesource.com/buildbot.git
$ export GOPATH=${HOME}/.cache/gopath/$(basename ${WORKDIR})
$ mkdir $GOPATH
$ cd buildbot
Almost all applications are built with Bazel, and bazelisk is the recommended tool to ensure you have the right version of bazel installed:
go install github.com/bazelbuild/bazelisk@latest go install github.com/bazelbuild/buildtools/buildifier@latest go install github.com/kisielk/errcheck@latest go install golang.org/x/tools/cmd/goimports@latest go install github.com/mikefarah/yq/v4@latest go install go.chromium.org/luci/client/cmd/...@latest
export PATH=$PATH:$(go env GOPATH)/bin
You will need Node.js and npm installed to run web infrastructure tests and linters. We recommend using nvm to manage Node versions.
After installing Node.js, run the following command to install repository dependencies (including linter tools):
npm install
sudo apt-get install jq
bazelisk build --config=mayberemote //...
This step might be an optional step, but some test requires these enviornment variables.
Runs
./scripts/run_emulators/run_emulators start
The following are example of environment variables.
Emulators started. Set environment variables as follows: export DATASTORE_EMULATOR_HOST=localhost:8891 export BIGTABLE_EMULATOR_HOST=localhost:8892 export PUBSUB_EMULATOR_HOST=localhost:8893 export FIRESTORE_EMULATOR_HOST=localhost:8894 export COCKROACHDB_EMULATOR_HOST=localhost:8895
And stores these environment variables to ~/.bashrc file.
bazelisk test --config=mayberemote //...
To update generated code run the following in any directory:
go generate ./...
Install Cloud SDK.
Use this command to run the presubmit tests:
./run_unittests --small
Getting AI code review for a local commit:
bazelisk run //cmd/autoreview
Read more at cmd/autoreview/README.md