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 27If you need to make changes on a bot/device, please check with the Trooper or another Infra team member. Most 28bots/devices can be flashed/imaged back to a clean state, but others can not. 29 30- Machine name like “skia-e-gce-NNN”, “skia-ct-gce-NNN”, “skia-i-gce-NNN”, “ct-gce-NNN”, “ct-xxx-builder-NNN” -> GCE 31 * First determine the project for the bot: 32 + skia-e-gce-NNN, skia-ct-gce-NNN: [skia-swarming-bots](https://console.cloud.google.com/compute/instances?project=skia-swarming-bots) 33 + skia-i-gce-NNN: [google.com:skia-buildbots](https://console.cloud.google.com/compute/instances?project=google.com:skia-buildbots) 34 + ct-gce-NNN, ct-xxx-builder-NNN: [ct-swarming-bots](https://console.cloud.google.com/compute/instances?project=ct-swarming-bots) 35 * To log in to a Linux bot in GCE, use `gcloud compute ssh --project <project> default@<machine name>`. Choose the zone listed on the VM's detail page (see links above). You may also specify the zone using the `--zone` command-line flag. 36 * To log in to a Windows bot in GCE, first go to the VM's detail page and click the "Set Windows password" 37 button. (Alternatively, ask the Infra Team how to log in as chrome-bot.) There are two options to connect: 38 + SSH: Follow the instructions for Linux using your username rather than `default`. 39 + RDP: On the VM's detail page, click the "RDP" button. (You will be instructed to install the Chrome RDP Extension 40 for GCP if it hasn't already been installed.) 41 42- Machine name ends with “a9”, “m3”, "m5" -> Chrome Golo/Labs 43 * To log in to Golo bots, see [go/chrome-infra-build-access](https://goto.google.com/chrome-infra-build-access). 44 45- Machine name starts with “skia-e-”, “skia-i-” (other than “skia-i-gce-NNN”), “skia-rpi-” -> Chapel Hill lab (aka Skolo)<br/> 46 To log in to Skolo bots, see the [Skolo maintenance doc][remote access] remote access section. See the following for OS specific instructions:<br/> 47 * [Remotely debug an Android device in Skolo][remotely debug android] 48 * [VNC to Skolo Windows bots][vnc to skolo windows] 49 * [ChromeOS Debugging][chromeos debugging] 50 51 52Debugging 53--------- 54 55If you need to run code on a specific machine/device to debug an issue, the simplest option is to 56run tryjobs (after adding debugging output to the relevant code). In some cases you may also need to 57[create or modify tryjobs](automated_testing#adding-new-jobs). 58 59For Googlers: If you need more control (e.g. to run GDB) and need to run directly on a swarming bot then you can use [leasing.skia.org](https://leasing.skia.org).<br/> 60If that does not work then the [current trooper][current trooper] can help you bring the device back to your desk and connect 61it to GoogleGuest Wifi or the [Google Test Network](http://go/gtn-criteria). 62 63If you need to make changes on a bot/device, please check with the Trooper or another Infra team member. Most 64bots/devices can be flashed/imaged back to a clean state, but others can not. 65 66If a permanent change needs to be made on the machine (such as an OS or driver update), please [file 67a bug][infra bug] and assign to jcgregorio for reassignment. 68 69For your convenience, the machine skolo-builder is available for checking out and compiling code within the Skolo. See 70more info in the [Skolo maintenance doc][remote access] remote access section. 71 72[current trooper]: http://skia-tree-status.appspot.com/trooper 73[remote access]: 74 https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit#heading=h.v77cmwbwc5la 75[infra bug]: https://bugs.chromium.org/p/skia/issues/entry?template=Infrastructure+Bug 76[remotely debug android]: https://docs.google.com/document/d/1nxn7TobfaLNNfhSTiwstOnjV0jCxYUI1uwW0T_V7BYg/ 77[vnc to skolo windows]: 78 https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit#heading=h.7cqd856ft0s 79[chromeos debugging]: 80 https://docs.google.com/document/d/1yJ2LLfLzV6pXKjiameid1LHEz1mj71Ob4wySIYxlBdw/edit#heading=h.9arg79l59xrf 81 82Maintenance Tasks 83----------------- 84 85See the [Skolo maintenance doc][skolo maintenance]. 86 87[skolo maintenance]: 88 https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit 89