WarpBuild vs Actions Runner Controller (ARC)
ARC is free Apache-2.0 software you operate in your own Kubernetes cluster. Compare the work that carries against WarpBuild managed runners, with sources.
Last updated:
Actions Runner Controller (ARC) is a Kubernetes operator, published by GitHub under the Apache License 2.0, that runs GitHub Actions runners as pods in a cluster you operate. WarpBuild is a managed runner platform that gives you the same ephemeral autoscaled runners on WarpBuild's cloud or inside your own AWS, GCP, or Azure account, with no cluster, controller, or listener for your team to run.
The ARC software costs nothing to license. The cost of a self-hosted runner fleet built on ARC is your cluster bill plus the engineering time in the maintenance inventory below. This page lists that work with a link to the ARC documentation or repository file that establishes each item, shows where WarpBuild is ahead, and states the cases where staying on ARC is the right answer.
Arrived with a different question? See managed alternatives to ARC for the wider field, or migrate from ARC to WarpBuild for the switching runbook.
What ARC Does Well
It is free and open source. ARC ships under the Apache License 2.0. There is no paid tier, no pricing page, and no commercial edition (verified absent on 2026-08-13). A team can read every line of the controller, fork it, and patch it.
GitHub adopted it and supports the modern mode. GitHub's docs state that the ARC project was adopted by GitHub to release as a new GitHub product, and that GitHub supports the latest Autoscaling Runner Sets version. The README describes it as developed and maintained in collaboration with the GitHub Actions team, external maintainers, and the community.
Everything runs in your cluster. The prerequisites are a Kubernetes cluster and Helm 3. There is no vendor control plane in the path, and the only outbound dependency is the runner's own connection to the GitHub Actions Service, which you already depend on by using GitHub Actions.
Scaling is event driven. In the modern scale-set mode the listener holds an HTTPS long poll to the GitHub Actions Service and stays idle until a Job Available message arrives. Runners are registered with just-in-time configuration tokens and are ephemeral, so each job gets a clean pod.
You control the machine shape completely. The full PodSpec is exposed through the scale-set chart: image, resources, securityContext, volumes, node selection, and environment. Anything your cluster can express, an ARC runner can be.
The project has real momentum. The repository carries 6,433 stars and 1,462 forks, created 2020-01-28, read on 2026-08-13. Those are repository popularity signals rather than adoption counts; ARC publishes no customer list or case studies (verified absent on 2026-08-13).
What Running ARC Involves
Every row below is a task that ARC's own documentation, chart files, or issue tracker establishes. No hour estimates appear here, because none are published anywhere and inventing them would be dishonest. Price the list with your own staffing numbers.
Upgrades
| Task | What the documentation says | Source |
|---|---|---|
| Upgrade the controller and charts | "Because there is no support for upgrading or deleting CRDs with Helm, it is not possible to use Helm to upgrade ARC." The documented procedure is five steps: uninstall every gha-runner-scale-set installation, wait for resource cleanup, uninstall ARC, remove the actions.github.com CRDs when they changed, reinstall. | docs |
| Avoid downtime during that upgrade | The documented mitigation is a high availability deployment, which requires "two distinct Kubernetes clusters deployed in separate regions" plus a distinct runner group per scale set. | docs |
| Accept arbitrary job placement in that HA pair | "If both runner scale sets are online, jobs assigned to them will be distributed arbitrarily (assignment race). You cannot configure the job assignment algorithm." | docs |
| Rehearse upgrades | GitHub recommends "testing the new versions in a staging environment that matches your production environment first". | docs |
| Track the release stream | The gha-runner-scale-set chart shipped 5 releases in the 12 months to 2026-08-13, the latest being 0.14.2 on 2026-05-22. | releases |
Stay off master | "The master branch is highly unstable, and we cannot guarantee that the charts in the master branch will work at any given time." | docs |
Runner image maintenance
| Task | What the documentation says | Source |
|---|---|---|
| Install your own toolchain | The shipped image "contains the least amount of packages necessary for the container runtime and the runner binaries. To install additional software, you can create your own runner image." | docs |
| Keep the custom image structurally valid | The base image must run the self-hosted runner application, the binary lives under /home/runner/ and starts through /home/runner/run.sh, Kubernetes mode needs the container hooks under /home/runner/k8s, and the container must be named runner. | docs |
| Track the base image by hand | "To view the current base image, check the FROM line in the runner image Dockerfile, then search for that tag in the dotnet/dotnet-docker repository." | docs |
| Rebuild inside the 30-day window | "If you do not perform a software update within 30 days, the GitHub Actions service will not queue jobs to your runner." Ephemeral container runners are the case GitHub names for disabling the auto-updater and rebuilding the image on your own schedule. | docs |
| Keep up with the runner release cadence | actions/runner shipped 11 stable releases in the 12 months to 2026-08-13, v2.328.0 through v2.336.0. Pair that with the 30-day rule above to size the rebuild obligation. | releases |
| Mirror images into a private registry | Copying the controller and runner images into your registry and setting image.repository, imagePullPolicy, and imagePullSecrets is documented, and flagged as possibly outside GitHub Support's scope. | docs |
| Build your own dependency cache | Image caching sits on GitHub's out-of-scope list, and "Ephemeral runner dependency caching" is an open feature request from 2023-07-07 with 33 reactions. | support scope, issue 2726 |
Scaling configuration
| Task | What the documentation says | Source |
|---|---|---|
| Change scale bounds | maxRunners and minRunners are static Helm values, so a change is a redeploy. | docs |
| Build time-of-day scaling yourself | "ARC does not support scheduled maximum and minimum configurations. You can use a cron job or any other scheduling solution to update the configuration on a schedule." The feature request has been open since 2024-02-29 with 66 reactions, the highest in the repository. | docs, issue 3313 |
| Pay for warm capacity | minRunners is documented as "the min number of idle runners". Idle runner pods hold cluster nodes continuously. Scaling to zero trades that spend for a cold pod start on the next job. | docs |
| Tune reconcile throughput | flags.runnerMaxConcurrentReconciles defaults to 2. Raising it "may also increase the load on the API server and the external service (e.g. GitHub API)". | values.yaml |
| Plan names and runner groups | ARC limits resource names to 63 characters, scale-set names to 45, and namespaces to 63. Two scale sets can share a name only when they sit in different runner groups. | troubleshoot, docs |
| Expect transient over-provisioning | On cancelled runs, "the listener will scale back down to the desired number of runners. In the meantime, you may see extra runners." | troubleshoot |
Authentication, secrets, and networking
| Task | What the documentation says | Source |
|---|---|---|
| Rotate credentials per namespace | The GitHub App or personal access token secret must live in the same namespace as the scale-set installation, and every scale set carries its own githubConfigSecret. | auth docs |
| Keep a classic PAT alive for enterprise runners | "You cannot authenticate using a GitHub App for runners at the enterprise level." Enterprise-level runners require personal access token (classic) authentication, which expires and needs rotation. | auth docs |
| Keep cluster clocks in sync | A 401 Unauthorized when obtaining a GitHub App token can come from NTP drift: "if the environment is more than a few seconds ahead, 401 errors will occur when using GitHub App." | troubleshoot |
| Inject custom CA certificates twice | "Since the custom certificate authority certificates are not bundled with the controller or runner containers, you must inject them into their respective trust stores." The documented path also assumes a Debian-based runner image. | docs |
| Configure proxies and service meshes | Outbound proxy settings live in proxy.http.url, proxy.https.url, and proxy.noProxy. A sidecar proxy such as Istio has to be configured to allow controller traffic to the Kubernetes API server. | docs, troubleshoot |
| Provide storage for Kubernetes mode | "To use Kubernetes mode, you must create persistent volumes that the runner pods can claim and use a solution that automatically provisions these volumes on demand." Storage provisioners and PVCs are on GitHub's out-of-scope list, and volume ownership mismatches have a documented failure mode requiring fsGroup or an initContainers workaround. | docs, support scope |
Observability and the support boundary
| Task | What the documentation says | Source |
|---|---|---|
| Turn metrics on | Metrics are off by default: with the metrics: object absent or commented out, the metrics flags are applied with empty values and metrics are disabled. | values.yaml |
| Build the log pipeline before production | "We recommend ensuring you have implemented a way to collect and retain logs from the controller, listeners, and ephemeral runners before deploying ARC in production workflows." | get started |
| Handle counter resets in dashboards | "Listener metrics that have the counter type are reset when the listener pod restarts." | docs |
| Staff a Kubernetes expert | "To ensure a smooth adoption of Actions Runner Controller, we recommend that organizations have a Kubernetes expert on staff." GitHub's out-of-scope list names container orchestration, networking, policy application, managed Kubernetes providers, storage provisioners, installation tooling other than Helm, and best practices such as metrics servers and image caching. | support scope |
| Weigh every customization against that boundary | Three customization sections on the deploy page carry the same warning: the option "may be outside the scope of what GitHub Support can assist with and may cause unexpected behavior when configured incorrectly." | docs |
Open operational issues, read on 2026-08-13
These are open issues with dates and community signal, offered as evidence that operational work exists. They are not claims that ARC is broken. Counts drift, so treat them as a point-in-time reading. This page applies the same discipline to itself: every factual change to it is logged in the comparison changelog.
| Issue | Opened | Signal |
|---|---|---|
4595 AutoscalingRunnerSet permanently deadlocks in Outdated phase | 2026-08-07 | open, 23 reactions, 22 comments, filed against chart 0.14.2 |
| 4470 Increased runner queue wait times and listener restarts after upgrade | 2026-04-23 | open, 32 comments |
| 4307 Ephemeral runners stuck when a job is canceled | 2025-11-07 | open, 14 reactions, 27 comments |
| 4155 EphemeralRunner and pods left Running after runner OOMKILL | 2025-06-27 | open, 21 reactions, 14 comments |
| 3159 docker dind sidecar iptables issue | 2023-12-15 | open, 14 reactions, 27 comments |
| 3010 Pods stuck in Terminating state | 2023-10-20 | open, 18 reactions, 22 comments |
The repository issue tracker carried 289 open issues, 1,432 issues in total, and 103 open pull requests on 2026-08-13.
Where WarpBuild Is Ahead
Runners in your own cloud account without cluster operations. WarpBuild BYOC runs on AWS, GCP, and Azure. Setup is three steps in the BYOC guide: connect the cloud account through an IAM role or service account, create a stack that pins the region, VPC, and object storage, then define a custom runner with its instance types, disks, and IP configuration. The VMs live in your account and your region. There is no operator, listener, CRD, or Helm release for your team to own, and a Terraform provider covers BYOC on AWS.
macOS and Windows, which ARC's documentation does not cover. The GitHub-maintained ARC runner image is Linux only: its Dockerfile bases on mcr.microsoft.com/dotnet/runtime-deps:8.0-noble and sets ENV ImageOS=ubuntu24, and the publish workflow builds linux/amd64 and linux/arm64 only. ARC documentation does not cover macOS runners, verified by a full-repository search of actions/actions-runner-controller plus a sweep of GitHub's ARC documentation pages on 2026-08-13. For Windows, the only runner documentation in the repository is the legacy-mode page, which states "there isn't a default Windows image so for Windows deployments you will have to build your own image"; the modern-mode request, issue 1001, has been open since 2021-12-10. WarpBuild publishes Linux x64, Linux ARM64, macOS, and Windows runners: macOS 14, 15, and 26 in 6 vCPU and 12 vCPU sizes, with the macOS 26 image carrying Xcode 27.0 and the iOS, tvOS, watchOS, and visionOS simulator runtimes, and Windows Server 2022 and 2025 images in four sizes each. macOS runners are available on WarpBuild's cloud rather than on BYOC, which the feature matrix states plainly.
Observability that ships turned on, plus a debugger. On ARC, metrics are disabled until you configure them, logs go to stdout for a pipeline you build, and debugging is kubectl logs against labelled pods. WarpBuild ships runner observability with resource metrics and logs per instance and right-sizing recommendations grouped by repository, workflow, job, and instance type, plus the Action Debugger for an SSH session into a paused job. Snapshot runners, remote Docker builders, and an MCP server sit in the same product surface.
Support with a person on the other end. ARC's community support is the repository issues and discussions, and GitHub's own support scope page names a long list of Kubernetes topics outside it. Slack support channels are available on demand for WarpBuild customers, and SAML 2.0 and OIDC single sign-on costs a flat $250 per month, whatever the user count (pricing).
A control plane with an audited compliance posture. WarpBuild is SOC 2 Type 2 certified across Security, Availability, and Confidentiality, with evidence at trust.warpbuild.com. ARC publishes no compliance certification of its own (verified absent on 2026-08-13); certification scope belongs to your cluster and your cloud, which means your team carries the evidence work.
Concurrency without a ceiling you configure. ARC concurrency is bounded by maxRunners, by whatever your cluster can hold, and by GitHub's documented limit of 10,000 self-hosted runners per runner group. Generally available WarpBuild Linux and Windows runners do not have plan-level concurrency caps; macOS capacity and beta runners have separate constraints.
Regions and egress. WarpBuild names US and EU regions. On the enterprise tier, runners pull large images and artifacts from ECR, S3, and similar stores with zero egress cost to you, and zero egress applies whether your runners live in your cloud or ours.
Runner provisioning speed. Braintrust reports consistent sub-minute runner provisioning on both ARM64 and x86 WarpBuild runners (Braintrust case study, checked 2026-08-13).
When ARC Is the Right Choice
ARC is the right answer for a real set of teams, and this section exists because pretending otherwise would waste your time.
You already run Kubernetes and staff it. GitHub states the prerequisite plainly: "we recommend that organizations have a Kubernetes expert on staff". An organization that already has that expert, an existing cluster, an upgrade process, a logging pipeline, and an on-call rotation is absorbing a marginal workload rather than standing up a platform. Most of the inventory above is work your team already does for other workloads.
Policy forbids third-party vendors in your build path. ARC is Apache-2.0 software that runs entirely inside your cluster with no vendor control plane. If your security policy or your customer contracts rule out a managed provider touching build infrastructure, that constraint decides the question, and WarpBuild's managed control plane does not fit it.
Runners must sit inside a specific network you control end to end. ARC documents outbound proxy configuration for controller, listener, and runners, custom CA injection into both trust stores, and private container registry support. Those are the knobs an air-gapped or heavily proxied environment needs.
You need hardware or scheduling behavior only your own cluster expresses. The full PodSpec is yours: resources, securityContext, capabilities, node selection, topology spread, priority classes, and volumes. If your build fleet needs to land on specific nodes next to specific workloads, ARC expresses that directly.
You are on GitHub Enterprise Server 3.9 or later and want autoscaling runners in the same estate. ARC is documented as supported on GHES 3.9 and greater.
Your cluster capacity is already bought and idle. Where a platform team runs a cluster with headroom, the marginal infrastructure cost of ARC is the runner pods. The honest framing is that ARC moves cost from a vendor invoice to your own cloud bill and your own staff time. Whether that trade is good depends on numbers only you have, which is what the next section is for.
Cost Questions for Your Team
ARC publishes no pricing page, no cost calculator, and no total-cost guidance (verified absent on 2026-08-13). Any hour figure or dollar figure on a vendor page comparing ARC to a managed runner would be invented, so this section gives you questions instead. Each one is grounded in a documented ARC requirement.
- Idle capacity. What do the nodes cost that hold your
minRunnersidle runner pods around the clock, at the sizes your heaviest jobs need?minRunnersis documented as "the min number of idle runners". - Cluster overhead. What does the managed control plane cost in your cloud, and do you need a separate cluster given the guidance "We recommend running production workloads in isolation. GitHub Actions workflows are designed to run arbitrary code, and using a shared Kubernetes cluster for production workloads could pose a security risk"?
- A second cluster for upgrade days. If runner availability during upgrades matters, what does the documented high availability configuration cost, given it requires two clusters in separate regions?
- Storage. What do the persistent volumes cost for Kubernetes mode, where "you must create persistent volumes that the runner pods can claim and use a solution that automatically provisions these volumes on demand"?
- Logs and metrics. What does your logging pipeline cost for controller, listener, and runner logs, which GitHub recommends collecting and retaining before production?
- Egress and registry. What does your cloud bill for image pulls, artifact pulls, and NAT processing on the paths your jobs take? ARC publishes nothing about egress cost; the bill comes from whichever cloud hosts your cluster.
- Staff time. How many engineer hours per quarter go to the upgrade, image, scaling, secret, and storage tasks in the inventory above, at your loaded cost per engineer? Use your own tracked numbers, and remember the 5 chart releases and 11 runner releases in the trailing 12 months set the floor on rebuild and upgrade frequency.
- The support boundary. When a runner fleet incident lands outside GitHub Support's published scope, who answers the page, and what is an hour of that outage worth?
The WarpBuild side of the arithmetic is short. Pricing is usage based and billed per minute, with no base subscription fee, no platform fee, and no seat fee. Signup includes $10 in free credits. Per-minute rates by runner type are on the pricing page, and BYOC runner minutes are billed at a flat per-minute rate with add-ons included, on top of the cloud bill you already pay in your own account.
Feature Comparison
| Dimension | WarpBuild | Actions Runner Controller |
|---|---|---|
| Platform coverage | Linux x64, Linux ARM64, macOS, and Windows runners, plus remote Docker builders. | A Kubernetes operator that runs GitHub Actions runners as pods in a cluster the customer operates. The GitHub-maintained runner image is Linux only, based on Ubuntu 24.04, and published for linux/amd64 and linux/arm64. No Windows image ships for the scale-set mode; the only Windows runner documentation covers the legacy mode and states you have to build your own image, and the modern-mode request (issue 1001) has been open since 2021-12-10. Source, checked 2026-08-13 |
| macOS depth | macOS 14, 15, and 26 images on M4 Pro hardware in 6 vCPU and 12 vCPU sizes. The macOS 26 image ships Xcode 27.0 and the macOS 27 SDKs with iOS 27.0, tvOS 27.0, watchOS 27.0, and visionOS 27.0 simulator runtimes while GitHub's upstream macOS 27 runner image is in beta. A dedicated macOS 27 image follows once that image is released. | No macOS runners. The ARC runner image is Linux only, published for linux/amd64 and linux/arm64, and ARC documentation does not cover macOS runners. Verified by a full-repository search of actions/actions-runner-controller plus a sweep of GitHub's ARC documentation pages on 2026-08-13. Source, checked 2026-08-13 |
| Bring your own cloud | BYOC runs on AWS, GCP, and Azure. Runner minutes are $0.002 and add-ons are included. | Everything runs in the customer's own Kubernetes cluster and there is no vendor control plane. Prerequisites are a Kubernetes cluster and Helm 3. No Terraform provider or module is published in the repository, verified absent on 2026-08-13; the installation surface is Helm charts and raw manifests, and GitHub Support scope excludes installation tooling other than Helm. Source, checked 2026-08-13 |
| Data residency | US and EU regions. | Residency is whatever the customer's own cluster and cloud region provide, and ARC publishes no region list, verified absent on 2026-08-13. The one documented geographic requirement is the high availability configuration, which needs two distinct Kubernetes clusters deployed in separate regions with a distinct runner group per scale set. Source, checked 2026-08-13 |
| Egress cost handling | On the enterprise tier, runners pull large images and artifacts from ECR, S3, and similar stores with zero egress cost to you. Zero egress applies whether your runners live in your cloud or ours. | ARC publishes nothing about egress cost, verified absent on 2026-08-13, and egress is billed by whichever cloud hosts the cluster. The documented network surface is outbound proxy configuration through proxy.http.url, proxy.https.url, and proxy.noProxy, plus mirroring the controller and runner images into a private registry, which the docs flag as possibly outside GitHub Support's scope. Source, checked 2026-08-13 |
| Concurrency | Generally available Linux and Windows runners do not have plan-level concurrency caps. Beta features may have limits, and macOS uses a per-organization quota arranged with support. | Bounded by maxRunners and minRunners in values.yaml, which are static Helm values that need a redeploy to change. With both commented out, ARC scales to the number of jobs assigned to the scale set and down to zero. GitHub caps a runner group at 10,000 self-hosted runners. The practical ceiling is the cluster capacity the customer provisions and pays for; ARC publishes no vendor-side cap. Source, checked 2026-08-13 |
| Pricing model | Usage based, billed per minute. There is no base subscription fee, no platform fee, and no seat fee. Signup includes $10 free credits. | Free and open-source software under the Apache License 2.0, with no pricing page, no paid tier, and no commercial edition, verified absent on 2026-08-13. The cost of a deployment is the customer's own self-managed infrastructure and staff time: cluster nodes holding idle minRunners pods, the managed control plane, persistent volumes for Kubernetes mode, egress, a private registry, a log and metric pipeline, and the Kubernetes expert GitHub recommends having on staff. Source, checked 2026-08-13 |
| SSO | SAML 2.0 and OIDC single sign-on for enterprise teams. | ARC provides none, because it has no hosted console and no user accounts. Authentication is machine to machine against the GitHub API using a GitHub App or a personal access token (classic), and enterprise-level runners require a classic personal access token because GitHub App authentication is unavailable there. Vault-backed credentials are public preview with Azure Key Vault only. Source, checked 2026-08-13 |
| Support | Slack support channels are available on demand. | Community support in the repository, plus GitHub Support for the latest Autoscaling Runner Sets version only; legacy ARC is community-maintained. GitHub recommends organizations have a Kubernetes expert on staff and publishes an out-of-scope list covering container orchestration, networking, Kubernetes policies, managed Kubernetes providers, storage provisioners and PVCs, template spec customization, and installation tooling other than Helm. The repository carried 289 open issues, 1,432 issues in total, and 103 open pull requests on 2026-08-13. Source, checked 2026-08-13 |
| Observability tooling | CI observability with OpenTelemetry metrics correlated to GitHub Actions job logs, plus the Action Debugger for an SSH session into a running job. | Metrics and logs with no vendor UI, dashboard, or debugger. The controller, listener, and runners write logs to stdout and the operator supplies the collection pipeline, which GitHub recommends having in place before production. Metrics are disabled when the metrics object is absent or commented out, which is the chart default, and listener counter metrics reset when the listener pod restarts. Debugging is kubectl logs against labelled pods. Source, checked 2026-08-13 |
| API and Terraform | WarpBuild publishes an API for CI configuration and automation. A Terraform provider covers BYOC on AWS. | The configuration surface is Kubernetes CRDs plus Helm values. Modern kinds are AutoscalingRunnerSet, AutoscalingListener, EphemeralRunner, and EphemeralRunnerSet in actions.github.com/v1alpha1, with the legacy actions.summerwind.net group community-maintained. There is no REST API and no Terraform provider, verified absent on 2026-08-13. Source, checked 2026-08-13 |
| Compliance | SOC 2 Type 2, with evidence at trust.warpbuild.com. | ARC publishes no compliance certification of its own; certification scope belongs to the customer's cluster and cloud. Verified absent across the repository and GitHub's ARC documentation on 2026-08-13. The nearest published document is the repository security policy. Documented security guidance includes running production workloads in isolation, separate namespaces for runner and operator pods, and a privileged container for Docker-in-Docker mode. Source, checked 2026-08-13 |
| Shipping cadence | Runner image and platform changes are published monthly in the public docs changelog. | GitHub Releases rather than a changelog page, with no public changelog outside releases, verified absent on 2026-08-13. The gha-runner-scale-set chart shipped 5 releases in the 12 months to 2026-08-13, the latest being 0.14.2 on 2026-05-22. The runner binary the images track, actions/runner, shipped 11 stable releases in the same window, which matters because of the 30-day runner-update rule. Source, checked 2026-08-13 |
| Proof | Named customer case studies with before and after numbers, plus public repositories running warp- labels in their GitHub Actions workflows. | 6,433 stars and 1,462 forks, created 2020-01-28, read on 2026-08-13; repository popularity signals rather than adoption counts. Developed and maintained in collaboration with the GitHub Actions team, two named external maintainers, and the community, with a CII Best Practices badge and an Artifact Hub listing. No customer logo wall and no case studies are published, verified absent on 2026-08-13. Source, checked 2026-08-13 |
Migration Path
The workflow change is one line. ARC routes jobs to a scale set through the Helm installation name or through runnerScaleSetLabels, so a workflow reads runs-on: arc-runner-set. WarpBuild runners register under warp- labels for hosted runners and warp-custom- labels for BYOC runners, so the same job reads runs-on: warp-ubuntu-latest-x64-8x or runs-on: warp-custom-<your-runner>. Everything else in the workflow file stays as it is, which makes the change reversible in a single commit while your cluster stays warm.
The cluster work is the longer half: draining scale sets by setting maxRunners and minRunners to zero, uninstalling the scale-set releases before the controller, removing the actions.github.com CRDs, and cleaning up the credential secrets, proxy secrets, and custom CA ConfigMaps that the charts left behind. Migrate from ARC to WarpBuild covers the configuration mapping, the parallel-run plan, the rollback path, and the decommissioning order in full.
FAQ
Is Actions Runner Controller free?
Yes. ARC is published under the Apache License 2.0 and there is no paid tier, no pricing page, and no commercial edition (verified absent on 2026-08-13). The cost of an ARC deployment is your own: cluster nodes, control plane, storage, egress, registry, observability, and the staff time to run all of it.
Does ARC support macOS runners?
The ARC runner image is Linux only. Its Dockerfile base is a .NET runtime-deps image on Ubuntu 24.04 and the image is published for linux/amd64 and linux/arm64 only. ARC documentation does not cover macOS runners, verified across the ARC repository and GitHub's ARC documentation on 2026-08-13. WarpBuild runs macOS 14, macOS 15, and macOS 26 runners in 6 vCPU and 12 vCPU sizes.
Can I upgrade ARC with helm upgrade?
No. GitHub's documentation states that because Helm has no support for upgrading or deleting CRDs, it is not possible to use Helm to upgrade ARC. The documented procedure is a five-step uninstall and reinstall, and the documented way to avoid downtime during it is a second Kubernetes cluster in another region.
Can ARC scale runners on a schedule?
Not on its own. GitHub's documentation states that ARC does not support scheduled maximum and minimum configurations and suggests a cron job or another scheduling solution to update the configuration. The matching feature request, issue 3313, has been open since 2024-02-29 and carries the highest reaction count in the repository.
What changes in my workflows when I move from ARC to WarpBuild?
The runs-on line. ARC targets a runner scale set by its installation name or by runnerScaleSetLabels; WarpBuild runners register under warp- labels for hosted runners and warp-custom- labels for BYOC runners. The rest of the workflow file is unchanged, which is what makes the move reversible in a single commit.
Can WarpBuild runners stay inside my own cloud account?
Yes. BYOC runs on AWS, GCP, and Azure, with the runner VMs created inside your account and a Terraform provider for BYOC on AWS. There is no Kubernetes cluster, controller, or listener for your team to operate.
Start with $10 in free credits
Change the runner label in your workflow and keep the rest of your GitHub Actions setup. Runner time is billed per minute.