[lucicfg] Generalize recipes as executables

Generalizes kinds.RECIPE as kinds.EXECUTABLE.
It is now possible to define executables through
luci.executable(...) and pass them to builders
in the same way luci.recipe(...) is used.

To remain backwards-compatible with existing
configs, we still generate the same recipe
definitions as before. luci.recipe(...) is
treated as a special-case executable by
generators.star, where a 'recipe' is defined
on the builder proto instead of an 'exe'.

Bug: 939368
Bug: fuchsia:39786

Change-Id: Ic6af6a50b6c43ca0a2f73512e35b26afb3822028
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/1910899
Commit-Queue: Anthony Fandrianto <atyfto@google.com>
Reviewed-by: Vadim Shtayura <vadimsh@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
14 files changed
tree: 103dc4d9b1e51eb2adece223359958e255b18501
  1. appengine/
  2. auth/
  3. buildbucket/
  4. cipd/
  5. client/
  6. cmdrunner/
  7. common/
  8. config/
  9. cq/
  10. dm/
  11. examples/
  12. gce/
  13. grpc/
  14. hardcoded/
  15. logdog/
  16. luci_notify/
  17. lucicfg/
  18. lucictx/
  19. luciexe/
  20. machine-db/
  21. milo/
  22. mmutex/
  23. mp/
  24. resultdb/
  25. scheduler/
  26. server/
  27. starlark/
  28. swarming/
  29. tokenserver/
  30. tools/
  31. tumble/
  32. vpython/
  33. web/
  34. .gitallowed
  35. .gitattributes
  36. AUTHORS
  37. codereview.settings
  38. CONTRIBUTING.md
  39. CONTRIBUTORS
  40. LICENSE
  41. OWNERS
  42. PRESUBMIT.py
  43. 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.