blob: 2fbbc45786e5bd3feaa20b6d247a03e9e2e5b352 [file] [log] [blame] [view]
# Task Drivers
Task Drivers are Go programs that facilitate the compilation of code, the execution of tests, and
other actions as a part of our Continuous Integration system.
They run a series of steps and store logs in such a way that they can be viewed in a logical manner.
## Task Driver Server
The purpose of ./go/task-driver-server is to ingest logs from the execution of task drivers and
to present those collected logs.
When running, a task driver will stream logs and step metadata to both stdout to
[Stack Driver Logging](https://cloud.google.com/logging). There is a
[sink](https://cloud.google.com/logging/docs/export/configure_export_v2) set up that will forward
these logs to [Pub/Sub](https://cloud.google.com/pubsub/docs/overview) [1]. This server subscribes
to the Pub/Sub topic [2] and processes the metadata by storing it to BigTable.
See [the design doc for more details](https://docs.google.com/document/d/1BqbHKD2TWthA0XhidCxriqIWzutRGgc0qxbfRgSDijs/edit)
1. The sink is called `task-driver-logs-to-pubsub`.
[cloud console](https://console.cloud.google.com/logs/router?project=skia-swarming-bots)
2. The topic is called `projects/skia-swarming-bots/topics/task-driver-logs`
[cloud console](https://console.cloud.google.com/cloudpubsub/topic/detail/task-driver-logs?project=skia-swarming-bots)