Reland "lucicfg: Support directly specifying location_filters" with minor changes

This is basically a reland of commit 3499dd2f830db0e71c40d8eefa3da9fb8e611308, with minor changes from that earlier original commit.

Original change's description:
> lucicfg: Support directly specifying location_filters
>
> This would enable directly specifying `cq.location_filter` in
> `luci.cq_tryjob_verifier`. Specifying both `location_regexp*` and
> `location_filters` would be disallowed. So future changes to .star configs to add location_filters would also remove location_regexp.
>
> Related to previous change https://crrev.com/c/3602908, which added location_filters generation in lucicfg.
>
> At this point, we have tested the logic in CV service to compare
> location_filters and location_regexp with many (but not yet all)
> LUCI projects, so I believe this is safe.
>
> Bug: 1171945
> Change-Id: I52d322251063c66cdca242dfedc40bda4bab2410
> Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/3763705
> Reviewed-by: Roberto Carrillo <robertocn@chromium.org>
> Commit-Queue: Quinten Yearsley <qyearsley@chromium.org>

Bug: 1171945
Change-Id: Icccea7fe88012e67fa981fd672abc43c2b00eb25
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/3777409
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
Commit-Queue: Quinten Yearsley <qyearsley@chromium.org>
4 files changed
tree: 01b8bb095a22e949ac3c3e247d705ac7f65b57af
  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. standalone/
  37. starlark/
  38. swarming/
  39. tokenserver/
  40. tools/
  41. vpython/
  42. web/
  43. .gitallowed
  44. .gitattributes
  45. .golangci.yml
  46. AUTHORS
  47. codereview.settings
  48. CONTRIBUTING.md
  49. CONTRIBUTORS
  50. go.mod
  51. go.sum
  52. LICENSE
  53. OWNERS
  54. PRESUBMIT.py
  55. README.md
  56. tools.go
  57. 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.