commit | b7c0fa08afc14cca4a900e38913091eed571912a | [log] [tgz] |
---|---|---|
author | Patrick Meiring <meiring@google.com> | Thu Jan 04 02:19:44 2024 |
committer | LUCI CQ <infra-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu Jan 04 02:19:44 2024 |
tree | d60315d0188214a271759f3da123e2e433bfe34c | |
parent | e1450d5638ac743d8bcda25f956f62e58103176e [diff] |
[Analysis] Implement QueryStability RPC. This RPC improves over QueryFailureRate for determining a test variant's stability in the following ways: - The analysis is scoped to a particular branch. This will allow exoneration on CQ runs for release branches, and cleans the data used for analysis on mainline branch. - The analysis is scoped to a particular commit position. This allows exoneration of tests on recycled CQ builds, even where the test has been fixed at ToT. - The analysis now natively orders test runs by commit position, not time, improving performance around test transitions. - The analysis window for flaky tests has been increased. There is now a mechanism that allows all data from the last 14 days to be used for infrequently run tests. This should improve performance for these tests. - A new criteria is introduced to the failure rate analysis, the consecutive failures count, which should improve time to exoneration for deterministically failing tests. - Stability criteria is encoded in the project configuration, avoiding the need to duplicate parameters between recipes and the exonerations UI in LUCI Analysis. A requirement for using the new RPC is that source positions be uploaded for test results uploaded to ResultDB. Proposal: go/luci-exoneration-v2 Design: go/luci-exoneration-v2-design BUG=b:312815571 TEST=Integration tests Change-Id: I8ddafcc9d8ac9f621fa86d3cd35c073573473275 Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/5162110 Reviewed-by: Matthew Warton <mwarton@google.com> Commit-Queue: Patrick Meiring <meiring@google.com>
LUCI Go code is meant to be worked on from an Chromium infra.git checkout, which enforces packages versions and Go toolchain version. First get fetch via depot_tools.git then run:
fetch infra cd infra/go eval `./env.py` cd src/go.chromium.org/luci
It is now possible to directly install tools with go install:
go install go.chromium.org/luci/auth/client/cmd/...@latest go install go.chromium.org/luci/buildbucket/cmd/...@latest go install go.chromium.org/luci/cipd/client/cmd/...@latest go install go.chromium.org/luci/client/cmd/...@latest go install go.chromium.org/luci/cv/cmd/...@latest go install go.chromium.org/luci/gce/cmd/...@latest go install go.chromium.org/luci/grpc/cmd/...@latest go install go.chromium.org/luci/logdog/client/cmd/...@latest go install go.chromium.org/luci/luci_notify/cmd/...@latest go install go.chromium.org/luci/lucicfg/cmd/...@latest go install go.chromium.org/luci/luciexe/legacy/cmd/...@latest go install go.chromium.org/luci/mailer/cmd/...@latest go install go.chromium.org/luci/mmutex/cmd/...@latest go install go.chromium.org/luci/resultdb/cmd/...@latest go install go.chromium.org/luci/server/cmd/...@latest go install go.chromium.org/luci/swarming/cmd/...@latest go install go.chromium.org/luci/tokenserver/cmd/...@latest go install go.chromium.org/luci/tools/cmd/...@latest
Contributing uses the same flow as Chromium contributions.