Skia Swarming Bots
Overview
Skia’s Swarming bots are hosted in three places:
- Google Compute Engine. This is the preferred location for bots which don’t need to run on physical hardware, ie. anything that doesn’t require a GPU or a specific hardware configuration. Most of our compile bots live here, along with some non-GPU test bots on Linux and Windows. We get surprisingly stable performance numbers from GCE, despite very few guarantees about the physical hardware.
- Chrome Golo. This is the preferred location for bots which require specific hardware or OS configurations that are not supported by GCE. We have several Mac, Linux, and Windows bots in the Golo.
- The Skolo (local Skia lab in Chapel Hill). Anything we can’t get in GCE or the Golo lives here. This includes a wider variety of GPUs and all Android, ChromeOS, iOS, and other devices.
go/skbl lists all Skia Swarming bots.
Connecting to Swarming Bots
If you need to make changes on a bot/device, please check with the Infra Gardener or another Infra team member. Most bots/devices can be flashed/imaged back to a clean state, but others can not.
-
Machine name like “skia-e-gce-NNN”, “skia-ct-gce-NNN”, “skia-i-gce-NNN”, “ct-gce-NNN”, “ct-xxx-builder-NNN” -> GCE
- First determine the project for the bot:
- skia-e-gce-NNN, skia-ct-gce-NNN: skia-swarming-bots
- skia-i-gce-NNN: google.com:skia-buildbots
- ct-gce-NNN, ct-xxx-builder-NNN: ct-swarming-bots
- 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. - To log in to a Windows bot in GCE, first go to the VM’s detail page and
click the “Set Windows password” button. (Alternatively, ask the Infra Team
how to log in as chrome-bot.) There are two options to connect:
- SSH: Follow the instructions for Linux using your username rather than
default
. - RDP: On the VM’s detail page, click the “RDP” button. (You will be instructed to install the Chrome RDP Extension for GCP if it hasn’t already been installed.)
- SSH: Follow the instructions for Linux using your username rather than
- First determine the project for the bot:
-
Machine name ends with “a9”, “m3”, “m5”. Or name matches the pattern {lin, mac, win}-NNN-g580 -> Chrome Golo/Labs
- To log in to Golo bots, see go/chrome-infra-build-access.
-
Machine name starts with “skia-e-”, “skia-i-” (other than “skia-i-gce-NNN”), “skia-rpi-” -> Chapel Hill lab (aka Skolo)
To log in to Skolo bots, see the Skolo maintenance doc remote access section. See the following for OS specific instructions:
Debugging
If you need to run code on a specific machine/device to debug an issue, the simplest option is to run tryjobs (after adding debugging output to the relevant code). In some cases you may also need to create or modify tryjobs.
For 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.
If that does not work then
the current infra gardener can help you bring the
device back to your desk and connect it to GoogleGuest Wifi or the
Google Test Network.
If you need to make changes on a bot/device, please check with the Infra Gardener or another Infra team member. Most bots/devices can be flashed/imaged back to a clean state, but others can not.
If a permanent change needs to be made on the machine (such as an OS or driver update), please file a bug and assign to jcgregorio for reassignment.
For your convenience, the machine skolo-builder is available for checking out and compiling code within the Skolo. See more info in the Skolo maintenance doc remote access section.
Maintenance Tasks
See the Skolo maintenance doc.