commit | 7f43881f4ef7ff3189fc5ddc69a0938da8774463 | [log] [tgz] |
---|---|---|
author | Patrick Meiring <meiring@google.com> | Mon Apr 29 05:45:02 2024 |
committer | LUCI CQ <infra-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Apr 29 05:45:02 2024 |
tree | 70ed291ebf87cef36a5e9d45b220e267f0dc2e71 | |
parent | 3cf5264ce9b44ea5cd4035ebae31de27c8e1a8fb [diff] |
[ResultDB] Add skeleton for new QueryRunTestVariants RPC. ListTestResults does not appear suitable for the low-latency ingestion pipeline as it does not group retries of the same test on the same page. This makes the LUCI Analysis-side implementation more complicated, particularly for the changepoint analysis ingestion which requires the retries to be grouped together to arrive at the run status. Modifying it to keep results for the same test verdict on the same page seems like a hack as it does not lead to logical pagination behaviour (if my page size is too small to fit a verdict now I cannot make any progress?) and violates requirements from AIP-132. We could modify QueryTestVariants RPC to offer an option to only query directly included test results and not included invocations but this would result in an illogical interface as in no world does not make sense for it to return exonerations and sources when querying in this way: - For one, the full set of exonerations would never be obtained, even if querying all invocations in a graph individually, and - sources would never have an opportunity to resolve for invocations with inherited sources. This leads us to conclude that making a new fit-for-purpose RPC is probably the cleanest option from an interface perspective. This will also allow us to ditch features from QueryTestVariants that are not useful for LUCI Analysis ingestion, such as the ordering of unexpected test verdicts before exported test verdicts. BUG=b:333652213 TEST=Integration tests Change-Id: If1f91dd3d21b841401b6048d273a3772cd4159d3 Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/5492805 Commit-Queue: Patrick Meiring <meiring@google.com> Reviewed-by: Matthew Warton <mwarton@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.