[lucicfg] Add swarming helper module.

It defines swarming.cache(...) and swarming.dimension(...) structs that will be
used when defining builders.

  core.builder(
      ...
      caches = [
          swarming.cache('path', name='cache_name'),
          swarming.cache('name_same_as_path'),
          swarming.cache('warmish', wait_for_warm_cache=5*time.minute),
      ],
      ...
      dimensions = {
          'os': 'Linux',
          'expiring': swarming.dimension('value', expiration=5*time.minute),
          'many': ['val1', swarming.dimension('val2')],
      },
      ...
  )

Also defines a bunch of swarmingimpl.validate_X functions that will be used
by the builder rule implementation to validate parameters.

The documentation is mostly copied from Buildbucket's project_config.proto.

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

Change-Id: Ie55c56af785ed0538fc7674c607bed0f699ec3a6
Reviewed-on: https://chromium-review.googlesource.com/c/1399992
Commit-Queue: Vadim Shtayura <vadimsh@chromium.org>
Reviewed-by: Nodir Turakulov <nodir@chromium.org>
6 files changed
tree: d6a897e9d98463e2c6a9c1c2eeef266d5746836c
  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.