| # 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) |