AWS
OneBlockDeviceMappings entry configures the root volume.
DeviceName is accepted and ignored — the AMI’s own root device is always the
one sized. Volumes are always encrypted.
Google Cloud
Three keys, for three different jobs.mapping
The boot disk.
diskSizeGb 10–65536, default 75. diskType
pd-balanced (the default), pd-ssd, or a zones/.../diskTypes/... path.mapping
An empty second disk, attached raw — the job formats and mounts it.
Takes the same
diskSizeGb and diskType. A diskType written as a zonal
path is read for its type only; the disk is created in whichever zone the
runner lands in.mapping
A disk you already have.
source (projects/P/zones/Z/disks/N, or
regions/R/disks/N for a regional disk), optional deviceName, mode
(READ_WRITE by default, or READ_ONLY) and interface (SCSI, NVME).
type and diskSizeGb are accepted and ignored, since the disk exists.- A zonal disk pins the runner to its zone, so a
region:that says otherwise is a config error. - A
READ_WRITEdisk fits one machine at a time. While another runner holds it, launches fail as retryable and the job waits its turn — which is a usable way to serialise jobs that share state, if you want that.
Azure
Managed disks are encrypted by Azure with platform-managed keys, and the OS
disk is deleted with the machine.
Sizing it
Space: count your biggest job
Checkout, dependency cache, build output, container images and layers.
Docker-heavy builds are the usual surprise.
Throughput: raise it first
Before more cores. A restore that saturates 1 GiB/s of network still lands
on a 125 MiB/s disk unless you say otherwise.
Keep large scratch off the root
On Google Cloud,
additionalDisk gives the job a clean raw disk to format
and throw away with the machine.Bake, do not download
An image with your toolchain and base containers already on it beats any
disk setting. Custom images