RunsOn RunsOn

v2.12.2

View on GitHub Upgrade guide

Features

  • Spotlight: nested virtualization support on Windows and Linux for supported x64 runners (c8i, m8i, or r8i family). Enable it with the nested-virt label, disable it explicitly with nested-virt=false, or set nested-virt: true in .github/runs-on.yml. Related: #461. See AWS nested virtualization docs.

    Useful CI cases include:

    • Android Emulator / AVD tests with KVM acceleration on Linux.
    • QEMU/KVM boot tests for VM images, cloud-init validation, and system startup checks.
    • Nested hypervisor and microVM workloads such as libvirt, Firecracker, Kata, or KubeVirt validation.
    • Windows Hyper-V based VM scenarios, including guest boot and Hyper-V dependent test environments.
    • Docker on Windows with Hyper-V isolation when the workload depends on a Hyper-V backed container boundary.
    runs-on: runs-on=${{ github.run_id }}/family=c8i.large/image=ubuntu24-full-x64/nested-virt
    runs-on: runs-on=${{ github.run_id }}/family=m8i.large/image=windows25-full-x64/nested-virt
    

    Nested virtualization KVM check

  • Add built-in ubuntu24-gpu-arm64 image support for ARM64 NVIDIA GPU runners, including g5g workflow coverage.

Fixes

  • Treat zero-match instance-registry results as advisory during launch planning, falling back to the original family selectors and combined overrides as if the registry were unavailable instead of failing or over-splitting family selection.

  • Use strongly consistent DynamoDB batch reads when the queue processor fetches freshly enqueued jobs, avoiding dropped scheduling attempts caused by eventual-consistency misses that surfaced as "Job not found in store, ignoring".

Improvements

  • Improve runner registration reliability under GitHub secondary rate limits by serializing retries per installation and deferring same-installation queue work until the Retry-After window expires.

  • Filter account-wide EventBridge spot interruption events through a local ownership cache so only RunsOn-owned spot runners affect the spot circuit breaker, without per-event EC2 DescribeInstances lookups.

  • Enable OTEL server log exports by default when OTEL backend is configured. Note that they are still exported to CloudWatch as well.