[Perf] update anomaly grouper to update existing issues on new anomaly
Context:
When a new anomaly is reported, the anomaly grouper will try to find
whether there is an existing group for it. If there is:
- if the group action is Report, and group.ReportedIssueId exists
-> a new comment will be added to that issue with anomaly info.
- if the group action is Bisect, and group.CulpritIds exists
-> each culprit will be loaded
-> the groupToIssueMap of each culprit will be checked to see
whether an issue is already filed for the current group. if so,
a comment will be added to that issue with anomaly info.
Changes:
- added issue tracker when creating anomaly group notifier to update
issues.
- added a new API for anomaly group service to return issues by
culprits.
- added the handling in grouper to update issues based on logic in
context above.
Drive-by-fix:
- update the presubmit.go to print which file is untracked.
Change-Id: Icfb2f3da28be5c7684fbac35c93e893624c3211c
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/967002
Commit-Queue: Wenbin Zhang <wenbinzhang@google.com>
Reviewed-by: Ashwin Verleker <ashwinpv@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
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