[deploy] Remember last successfully applied intended state.

Will be used to trigger actuation when intended state changes,
even if the reported state still matches the intended state.

One case where this is useful is changes to `vars` section in
Starlark GAE configs: `vars` aren't reflected in `reported_state`
in any way. If we just use `reported_state` and compared it to the
current `inteded_state` we won't know that `vars` has changes. But
comparing the current `inteded_state` to the last applied intended
state would reveal that `vars` are different and we need to do
redeploy.

(In practice this will not actually work because infradata/gae
Makefiles don't handle this edge case either and will just skip
the deployment as well, but it is a separate issue).

R=iannucci@chromium.org, ddoman@chromium.org
BUG=1301023

Change-Id: I9b33103227140fd5fb77e7b6e4945bc64cd55090
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/3566504
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Scott Lee <ddoman@chromium.org>
Commit-Queue: Vadim Shtayura <vadimsh@chromium.org>
7 files changed
tree: 81202c764a3c411cd2472d3f46cceb5295e08048
  1. appengine/
  2. auth/
  3. auth_service/
  4. build/
  5. buildbucket/
  6. casviewer/
  7. cipd/
  8. client/
  9. cmdrunner/
  10. common/
  11. config/
  12. cv/
  13. deploy/
  14. dm/
  15. examples/
  16. gae/
  17. gce/
  18. grpc/
  19. hacks/
  20. hardcoded/
  21. led/
  22. logdog/
  23. luci_notify/
  24. lucicfg/
  25. lucictx/
  26. luciexe/
  27. machine-db/
  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. tumble/
  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

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.