[lucicfg] Initial empty definition of core.builder rule.

There is an aspect that makes the implementation somewhat tricky: we want to
allow to refer to builders using their names alone (without specifying the
bucket name), if this is unambiguous. For cases when there are more than one
builder with a given name, the ambiguity can be resolved by using the full
builder name (e.g. "ci/linux builder").

This is solved by introduction of intermediate 'builder_ref' node:
  * Nodes that refer to builders have builder_refs as children.
  * A builder_ref has a builder as a child.
  * A single builder has two parent builder_ref's: one has bucket-scoped
    name (e.g. "ci/linux builder") and another is global (e.g. "linux builder").
  * Ambiguities manifest as builder_ref nodes with more than one child.

There's an internal API to follow such refs.

R=nodir@chromium.org, tandrii@chromium.org
BUG=833946

Change-Id: I1c126dd3f387a5915f4c49079b05acb1d95b45c8
Reviewed-on: https://chromium-review.googlesource.com/c/1390984
Commit-Queue: Vadim Shtayura <vadimsh@chromium.org>
Reviewed-by: Nodir Turakulov <nodir@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
7 files changed
tree: 7d6275e4830d2eb252484de6bdedacfc4777ef97
  1. appengine/
  2. auth/
  3. buildbucket/
  4. cipd/
  5. client/
  6. common/
  7. config/
  8. cq/
  9. dm/
  10. examples/
  11. gce/
  12. grpc/
  13. hardcoded/
  14. infra/
  15. logdog/
  16. luci_notify/
  17. lucicfg/
  18. lucictx/
  19. machine-db/
  20. milo/
  21. mmutex/
  22. mp/
  23. scheduler/
  24. scripts/
  25. server/
  26. starlark/
  27. tokenserver/
  28. tools/
  29. tumble/
  30. vpython/
  31. web/
  32. .travis.yml
  33. AUTHORS
  34. codereview.settings
  35. CONTRIBUTING.md
  36. CONTRIBUTORS
  37. LICENSE
  38. OWNERS
  39. pre-commit-go.yml
  40. PRESUBMIT.py
  41. README.md
README.md

luci-go: LUCI services and tools in Go

GoDoc

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

Contributing

Contributing uses the same flow as Chromium contributions.