[botanistd] Factor out QEMU invocation

This change refactors fuchsia.googlesource.com/tools/qemu and
fuchsia.googlesource.com/tools/cmd/botanist/qemu. Now, the former is a
generic package that can be used to construct QEMU invocation without
any Fuchsia-specific logic. The Fuchsia specific logic has been moved to
fuchsia.googlesource.com/tools/botanist/target so it can be reused in
different implementations. The command is a simple frontend that just
passes through arguments.

This change also introduces the Target interface. Currently, QEMUTarget is
the only implementation of this interface, but subsequent changes should
also introduce DeviceTarget implementation that will provide the same
interface on top of Zedboot. We might also introduce GCETarget once the
GCE support is ready. This will allow controlling arbitrary devices from
commands like `botanist run`, completely replacing `botanist qemu` and
`botanist zedboot`.

Change-Id: I279a207fb39a47bde426089b1683477d9936922c
3 files changed
tree: 014c1c91587091ab88b0acf6f2f79fd426fa6db2
  1. artifacts/
  2. bloaty/
  3. botanist/
  4. build/
  5. buildbucket/
  6. cache/
  7. cmd/
  8. color/
  9. digest/
  10. elflib/
  11. fastboot/
  12. gcs/
  13. gndoc/
  14. isatty/
  15. logger/
  16. mdns/
  17. netboot/
  18. ninjalog/
  19. qemu/
  20. resultstore/
  21. retry/
  22. runtests/
  23. secrets/
  24. serial/
  25. symbolize/
  26. tap/
  27. telnet/
  28. testrunner/
  29. testsharder/
  30. tftp/
  31. .gitignore
  32. go.mod
  33. go.sum
  34. LICENSE
  35. manifest
  36. PATENTS
  37. README.md
README.md

tools

This repo contains tools used in Fuchsia build and development.

Go packages from here are automatically built and uploaded to CIPD and Google Storage by bots using the tools recipe. To add a tool to the build:

  • Edit the bot config.
  • Find the builder_mixins section with name: "tools".
  • Edit the JSON in properties_j to add a string to the packages list:
"fuchsia.googlesource.com/tools/cmd/your-new-tool"