[milo] fix cancel build fails silently when reason is empty

1. Replace cancel/retry build dialog with React elements.
2. Add a unit test to ensure reason must be provided when cancelling a
build.
3. Add a unit test to ensure redirect works properly after retrying
the build.
4. Conveniently fix `makeObservable` not applied in search page. This
has no real impact since the store is never suppose to be updated. But
add `makeObservable` for correctness.

R=mdraz@google.com, nqmtuan@google.com

Bug: 1352532
Change-Id: If015f260d212d0bde1b627ebd34ca42c77371fd1
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/3868351
Reviewed-by: Mostafa Draz <mdraz@google.com>
Commit-Queue: Mostafa Draz <mdraz@google.com>
Auto-Submit: Weiwei Lin <weiweilin@google.com>
14 files changed
tree: ddb9d2a83c75cada1948982fdfc672324ba24b47
  1. analysis/
  2. appengine/
  3. auth/
  4. auth_service/
  5. bisection/
  6. build/
  7. buildbucket/
  8. casviewer/
  9. cipd/
  10. client/
  11. cmdrunner/
  12. common/
  13. config/
  14. cv/
  15. deploy/
  16. examples/
  17. gae/
  18. gce/
  19. grpc/
  20. hacks/
  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. starlark/
  37. swarming/
  38. tokenserver/
  39. tools/
  40. vpython/
  41. web/
  42. .gitallowed
  43. .gitattributes
  44. .golangci.yml
  45. AUTHORS
  46. codereview.settings
  47. CONTRIBUTING.md
  48. CONTRIBUTORS
  49. go.mod
  50. go.sum
  51. LICENSE
  52. OWNERS
  53. PRESUBMIT.py
  54. README.md
  55. tools.go
  56. 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.