analysis: attribute skipped tests to failures in any milestone

Ideally, the skipped test results should be attributed to failures
that caused them. i.e. failures in the same milestone if there are enough samples, or failures in the previous milestone if there are not
enough samples. But given that luci-analysis does not know whether
the testing filtering was activated from failures from the current
milestone or the previous milestone, it's hard to write a query that
can attribute correctly.

Instead, we attribute skipped test results to failures in the any
milestone. This is only an issue when
1. the test is failing in a previous milestone for a different root
cause, and
2. the failures in the other milestone did not trigger test filtering
themselves (therefore already marked as "triggered test filtering").
Hopefully, this should be very rare. And we can adjust the attribution
logic further if this become an issue.

R=meiring@google.com, mwarton@google.com

Bug: b/312590738
Change-Id: Ifbd6e99b8af787fe328d44bb240620f091dc2c7d
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/5208370
Reviewed-by: Matthew Warton <mwarton@google.com>
Commit-Queue: Weiwei Lin <weiweilin@google.com>
1 file changed
tree: c1cf1c3c214e6ac70945bb5c33b6dbec4e357217
  1. analysis/
  2. appengine/
  3. auth/
  4. auth_service/
  5. bisection/
  6. build/
  7. buildbucket/
  8. casviewer/
  9. cipd/
  10. cipkg/
  11. client/
  12. common/
  13. config/
  14. config_service/
  15. cv/
  16. deploy/
  17. examples/
  18. gae/
  19. gce/
  20. grpc/
  21. hardcoded/
  22. led/
  23. logdog/
  24. luci_notify/
  25. lucicfg/
  26. lucictx/
  27. luciexe/
  28. mailer/
  29. milo/
  30. mmutex/
  31. provenance/
  32. resultdb/
  33. scheduler/
  34. scripts/
  35. server/
  36. standalone/
  37. starlark/
  38. swarming/
  39. third_party/
  40. tokenserver/
  41. tools/
  42. tree_status/
  43. vpython/
  44. web/
  45. .gitallowed
  46. .gitattributes
  47. .gitignore
  48. .go-lintable
  49. AUTHORS
  50. codereview.settings
  51. CONTRIBUTING.md
  52. CONTRIBUTORS
  53. go.mod
  54. go.sum
  55. LICENSE
  56. OWNERS
  57. PRESUBMIT.py
  58. README.md
  59. tools.go
  60. WATCHLISTS
README.md

luci-go: LUCI services and tools in Go

GoReference

Installing

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

Contributing uses the same flow as Chromium contributions.