Provision just-in-time self-hosted GitHub Actions runners on Azure.
When a GitHub Actions job is queued, GitHub sends a workflow_job webhook to Azure Functions, which executes job() in function_app.py.
job() provisions a virtual machine on Azure.
-
About 50x cheaper than GitHub-hosted runners
Price per hour as of 2024-03:
Runner GitHub Azure Spot VM (eastus2) Azure VM (eastus2) Standard X64 runner (Standard_D4ads_v5) $0.96 $0.0206 $0.2060 ARM64 runner (Standard_D4pds_v5) $0.96 $0.0181 $0.1810 -
Supports custom images—reduce execution time by pre-installing tools or pre-deploying test environment
-
Full SSH access at any time (for authorized keys of your choice)
-
Use any VM type/size available on Azure
Documentation in docs directory