1Skia Swarming Bots
2==================
3
4Overview
5--------
6
7Skia's Swarming bots are hosted in three places:
8
9* Google Compute Engine. This is the preferred location for bots which don't need to run on physical
10  hardware, ie. anything that doesn't require a GPU or a specific hardware configuration. Most of
11  our compile bots live here, along with some non-GPU test bots on Linux and Windows. We get
12  surprisingly stable performance numbers from GCE, despite very few guarantees about the physical
13  hardware.
14* Chrome Golo. This is the preferred location for bots which require specific hardware or OS
15  configurations that are not supported by GCE. We have several Mac, Linux, and Windows bots in the
16  Golo.
17* The Skolo (local Skia lab in Chapel Hill). Anything we can't get in GCE or the Golo lives
18  here. This includes a wider variety of GPUs and all Android, ChromeOS, iOS, and other devices.
19
20[go/skbl](https://goto.google.com/skbl) lists all Skia Swarming bots.
21
22
23<a name="connecting-to-swarming-bots"></a>
24Connecting to Swarming Bots
25---------------------------
26
27- Machine name like “skia-gce-NNN”, “skia-i-gce-NNN”, “ct-gce-NNN”, “skia-ct-gce-NNN”, “ct-xxx-builder-NNN” -> GCE
28  * To log in to a Linux bot in GCE, use `gcloud compute ssh default@<machine name>`. Choose the zone listed for the [GCE VM][gce instances link] (or specify it using the `--zone` command-line flag).
29  * To log in to a Windows bot in GCE, use [Chrome RDP Extension][chrome rdp extension] with the [IP address of the GCE VM][gce instances link]. The username is chrome-bot and the password can be found on [Valentine](https://goto.google.com/valentine) as "chrome-bot (Win GCE)".
30
31- Machine name ends with “a9”, “m3”, "m5" -> Chrome Golo/Labs
32  * To log in to Golo bots, see [go/swarming-ssh](https://goto.google.com/swarming-ssh).
33
34- Machine name starts with “skia-e-”, “skia-i-” (other than “skia-i-gce-NNN”), “skia-rpi-” -> Chapel Hill lab (aka Skolo)<br/>
35  To log in to Skolo bots, see the [Skolo maintenance doc][remote access] remote access section. See the following for OS specific instructions:<br/>
36  * [Remotely debug an Android device in Skolo][remotely debug android]
37  * [VNC to Skolo Windows bots][vnc to skolo windows]
38  * [ChromeOS Debugging][chromeos debugging]
39
40
41Debugging
42---------
43
44If you need to run code on a specific machine/device to debug an issue, the simplest option is to
45run tryjobs (after adding debugging output to the relevant code). In some cases you may also need to
46[create or modify tryjobs](automated_testing#adding-new-jobs).
47
48For Googlers: If you need more control (e.g. to run GDB) and need run to directly on a swarming bot then you can use [leasing.skia.org](https://leasing.skia.org).<br/>
49If that does not work then the [current trooper][current trooper] can help you bring the device back to your desk and connect
50it to GoogleGuest Wifi or the [Google Test Network](http://go/gtn-criteria).
51
52If you need to make changes on a Skolo device, please check with an Infra team member. Most can be
53flashed/imaged back to a clean state, but others can not.
54
55If a permanent change needs to be made on the machine (such as an OS or driver update), please [file
56a bug][infra bug] and assign to jcgregorio for reassignment.
57
58[chrome rdp extension]:
59    https://chrome.google.com/webstore/detail/chrome-rdp/cbkkbcmdlboombapidmoeolnmdacpkch?hl=en-US
60[current trooper]: http://skia-tree-status.appspot.com/trooper
61[remote access]:
62    https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit#heading=h.2nq3yd1axg0n
63[infra bug]: https://bugs.chromium.org/p/skia/issues/entry?template=Infrastructure+Bug
64[gce instances link]: https://console.cloud.google.com/project/31977622648/compute/instances
65[remotely debug android]: https://docs.google.com/document/d/1nxn7TobfaLNNfhSTiwstOnjV0jCxYUI1uwW0T_V7BYg/
66[vnc to skolo windows]:
67    https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit#heading=h.7cqd856ft0s
68[chromeos debugging]:
69    https://docs.google.com/document/d/1yJ2LLfLzV6pXKjiameid1LHEz1mj71Ob4wySIYxlBdw/edit#heading=h.9arg79l59xrf
70
71Maintenance Tasks
72-----------------
73
74See the [Skolo maintenance doc][skolo maintenance].
75
76[skolo maintenance]:
77    https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit
78