GCE
backend_type: gce. Connection: GCP. Status: beta.
Each execution is a Compute Engine VM. The startup path installs Docker with apt-get, so the boot image must be Debian/Ubuntu. Zone failover is first-class: an ordered zones list is walked when a zone is exhausted.
When to choose it
- GCP-resident CI that needs a VM (not Cloud Run).
- You need zone failover on
ZONE_RESOURCE_POOL_EXHAUSTED.
Choose Cloud Run for job-shaped serverless on GCP.
Connection
Required config
| Key | Type | Meaning |
|---|---|---|
project_id | string | GCP project that owns the VMs. |
zone | string | Primary zone (e.g. us-central1-a). Ignored when zones is set. |
machine_type | string | Machine type (e.g. e2-medium). |
vm_image | string | Boot disk image. Must be a Debian/Ubuntu family image. |
Example vm_image: projects/ubuntu-os-cloud/global/images/family/ubuntu-2204-lts.
Optional knobs
zones (ordered failover list — takes precedence over zone), container_image (required for GitHub/GitLab CI groups; agent groups can resolve the platform agent image), volume_size_gb (GCE default 10 GB is too small for Docker CI — set 30+), disk_type, capacity_type (ON_DEMAND / SPOT), vpc_network, subnetwork, service_account_email.
Execution control
Suffixed workflows: runner.execution-{stop,restart,sync,logs-sync}-gcp.
runner.* catalog before production CI.