1cb93a386Sopenharmony_ci--- 2cb93a386Sopenharmony_cititle: 'Skia Swarming Bots' 3cb93a386Sopenharmony_cilinkTitle: 'Skia Swarming Bots' 4cb93a386Sopenharmony_ci--- 5cb93a386Sopenharmony_ci 6cb93a386Sopenharmony_ci## Overview 7cb93a386Sopenharmony_ci 8cb93a386Sopenharmony_ciSkia's Swarming bots are hosted in three places: 9cb93a386Sopenharmony_ci 10cb93a386Sopenharmony_ci- Google Compute Engine. This is the preferred location for bots which don't 11cb93a386Sopenharmony_ci need to run on physical hardware, ie. anything that doesn't require a GPU or a 12cb93a386Sopenharmony_ci specific hardware configuration. Most of our compile bots live here, along 13cb93a386Sopenharmony_ci with some non-GPU test bots on Linux and Windows. We get surprisingly stable 14cb93a386Sopenharmony_ci performance numbers from GCE, despite very few guarantees about the physical 15cb93a386Sopenharmony_ci hardware. 16cb93a386Sopenharmony_ci- Chrome Golo. This is the preferred location for bots which require specific 17cb93a386Sopenharmony_ci hardware or OS configurations that are not supported by GCE. We have several 18cb93a386Sopenharmony_ci Mac, Linux, and Windows bots in the Golo. 19cb93a386Sopenharmony_ci- The Skolo (local Skia lab in Chapel Hill). Anything we can't get in GCE or the 20cb93a386Sopenharmony_ci Golo lives here. This includes a wider variety of GPUs and all Android, 21cb93a386Sopenharmony_ci ChromeOS, iOS, and other devices. 22cb93a386Sopenharmony_ci 23cb93a386Sopenharmony_ci[go/skbl](https://goto.google.com/skbl) lists all Skia Swarming bots. 24cb93a386Sopenharmony_ci 25cb93a386Sopenharmony_ci<a name="connecting-to-swarming-bots"></a> Connecting to Swarming Bots 26cb93a386Sopenharmony_ci 27cb93a386Sopenharmony_ci--- 28cb93a386Sopenharmony_ci 29cb93a386Sopenharmony_ciIf you need to make changes on a bot/device, please check with the Infra 30cb93a386Sopenharmony_ciGardener or another Infra team member. Most bots/devices can be flashed/imaged 31cb93a386Sopenharmony_ciback to a clean state, but others can not. 32cb93a386Sopenharmony_ci 33cb93a386Sopenharmony_ci- Machine name like “skia-e-gce-NNN”, “skia-ct-gce-NNN”, “skia-i-gce-NNN”, 34cb93a386Sopenharmony_ci “ct-gce-NNN”, “ct-xxx-builder-NNN” -> GCE 35cb93a386Sopenharmony_ci 36cb93a386Sopenharmony_ci - First determine the project for the bot: 37cb93a386Sopenharmony_ci - skia-e-gce-NNN, skia-ct-gce-NNN: 38cb93a386Sopenharmony_ci [skia-swarming-bots](https://console.cloud.google.com/compute/instances?project=skia-swarming-bots) 39cb93a386Sopenharmony_ci - skia-i-gce-NNN: 40cb93a386Sopenharmony_ci [google.com:skia-buildbots](https://console.cloud.google.com/compute/instances?project=google.com:skia-buildbots) 41cb93a386Sopenharmony_ci - ct-gce-NNN, ct-xxx-builder-NNN: 42cb93a386Sopenharmony_ci [ct-swarming-bots](https://console.cloud.google.com/compute/instances?project=ct-swarming-bots) 43cb93a386Sopenharmony_ci - To log in to a Linux bot in GCE, use 44cb93a386Sopenharmony_ci `gcloud compute ssh --project <project> default@<machine name>`. Choose the 45cb93a386Sopenharmony_ci zone listed on the VM's detail page (see links above). You may also specify 46cb93a386Sopenharmony_ci the zone using the `--zone` command-line flag. 47cb93a386Sopenharmony_ci - To log in to a Windows bot in GCE, first go to the VM's detail page and 48cb93a386Sopenharmony_ci click the "Set Windows password" button. (Alternatively, ask the Infra Team 49cb93a386Sopenharmony_ci how to log in as chrome-bot.) There are two options to connect: 50cb93a386Sopenharmony_ci - SSH: Follow the instructions for Linux using your username rather than 51cb93a386Sopenharmony_ci `default`. 52cb93a386Sopenharmony_ci - RDP: On the VM's detail page, click the "RDP" button. (You will be 53cb93a386Sopenharmony_ci instructed to install the Chrome RDP Extension for GCP if it hasn't 54cb93a386Sopenharmony_ci already been installed.) 55cb93a386Sopenharmony_ci 56cb93a386Sopenharmony_ci- Machine name ends with “a9”, “m3”, "m5" -> Chrome Golo/Labs 57cb93a386Sopenharmony_ci 58cb93a386Sopenharmony_ci - To log in to Golo bots, see 59cb93a386Sopenharmony_ci [go/chrome-infra-build-access](https://goto.google.com/chrome-infra-build-access). 60cb93a386Sopenharmony_ci 61cb93a386Sopenharmony_ci- Machine name starts with “skia-e-”, “skia-i-” (other than “skia-i-gce-NNN”), 62cb93a386Sopenharmony_ci “skia-rpi-” -> Chapel Hill lab (aka Skolo)<br/> To log in to Skolo bots, see 63cb93a386Sopenharmony_ci the [Skolo maintenance doc][remote access] remote access section. See the 64cb93a386Sopenharmony_ci following for OS specific instructions:<br/> 65cb93a386Sopenharmony_ci - [Remotely debug an Android device in Skolo][remotely debug android] 66cb93a386Sopenharmony_ci - [VNC to Skolo Windows bots][vnc to skolo windows] 67cb93a386Sopenharmony_ci - [ChromeOS Debugging][chromeos debugging] 68cb93a386Sopenharmony_ci 69cb93a386Sopenharmony_ci## Debugging 70cb93a386Sopenharmony_ci 71cb93a386Sopenharmony_ciIf you need to run code on a specific machine/device to debug an issue, the 72cb93a386Sopenharmony_cisimplest option is to run tryjobs (after adding debugging output to the relevant 73cb93a386Sopenharmony_cicode). In some cases you may also need to 74cb93a386Sopenharmony_ci[create or modify tryjobs](../automated_testing#adding-new-jobs). 75cb93a386Sopenharmony_ci 76cb93a386Sopenharmony_ciFor Googlers: If you need more control (e.g. to run GDB) and need to run 77cb93a386Sopenharmony_cidirectly on a swarming bot then you can use 78cb93a386Sopenharmony_ci[leasing.skia.org](https://leasing.skia.org).<br/> If that does not work then 79cb93a386Sopenharmony_cithe [current infra gardener][current infra gardener] can help you bring the 80cb93a386Sopenharmony_cidevice back to your desk and connect it to GoogleGuest Wifi or the 81cb93a386Sopenharmony_ci[Google Test Network](http://go/gtn-criteria). 82cb93a386Sopenharmony_ci 83cb93a386Sopenharmony_ciIf you need to make changes on a bot/device, please check with the Infra 84cb93a386Sopenharmony_ciGardener or another Infra team member. Most bots/devices can be flashed/imaged 85cb93a386Sopenharmony_ciback to a clean state, but others can not. 86cb93a386Sopenharmony_ci 87cb93a386Sopenharmony_ciIf a permanent change needs to be made on the machine (such as an OS or driver 88cb93a386Sopenharmony_ciupdate), please [file a bug][infra bug] and assign to jcgregorio for 89cb93a386Sopenharmony_cireassignment. 90cb93a386Sopenharmony_ci 91cb93a386Sopenharmony_ciFor your convenience, the machine skolo-builder is available for checking out 92cb93a386Sopenharmony_ciand compiling code within the Skolo. See more info in the [Skolo maintenance 93cb93a386Sopenharmony_cidoc][remote access] remote access section. 94cb93a386Sopenharmony_ci 95cb93a386Sopenharmony_ci[current infra gardener]: 96cb93a386Sopenharmony_ci https://rotations.corp.google.com/rotation/4617277386260480 97cb93a386Sopenharmony_ci[remote access]: 98cb93a386Sopenharmony_ci https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit#heading=h.v77cmwbwc5la 99cb93a386Sopenharmony_ci[infra bug]: 100cb93a386Sopenharmony_ci https://bugs.chromium.org/p/skia/issues/entry?template=Infrastructure+Bug 101cb93a386Sopenharmony_ci[remotely debug android]: 102cb93a386Sopenharmony_ci https://docs.google.com/document/d/1nxn7TobfaLNNfhSTiwstOnjV0jCxYUI1uwW0T_V7BYg/ 103cb93a386Sopenharmony_ci[vnc to skolo windows]: 104cb93a386Sopenharmony_ci https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit#heading=h.7cqd856ft0s 105cb93a386Sopenharmony_ci[chromeos debugging]: 106cb93a386Sopenharmony_ci https://docs.google.com/document/d/1yJ2LLfLzV6pXKjiameid1LHEz1mj71Ob4wySIYxlBdw/edit#heading=h.9arg79l59xrf 107cb93a386Sopenharmony_ci 108cb93a386Sopenharmony_ci## Maintenance Tasks 109cb93a386Sopenharmony_ci 110cb93a386Sopenharmony_ciSee the [Skolo maintenance doc][skolo maintenance]. 111cb93a386Sopenharmony_ci 112cb93a386Sopenharmony_ci[skolo maintenance]: 113cb93a386Sopenharmony_ci https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit 114