Background
We currently use self-hosted runners for multiple workflows, including check_build_test.yml, docker_build.yml, and deploy_{mainnet,testnet}.yml. The self-hosted CI pool is costly; recent billing analysis suggests meaningful savings if we migrate heavy builds to GitHub-hosted Large runners.
Goals
- Evaluate replacing the self-hosted runner for CI with GitHub-hosted Large runners (Linux).
- Confirm only
check_build_test.yml requires Large runner capacity; others can use standard hosted runners.
- Assess impact and plan for
deploy_* workflows (they currently SSH into GCP VMs and may need adjustments if moved off self-hosted).
Findings so far
check_build_test.yml is the heavy workflow (Rust build/tests + Move + web/SDK + Docker pulls) and is the primary candidate for GitHub-hosted Large runner.
docker_build.yml builds and pushes to GHCR; likely can run on standard hosted runners (no private network dependency), but includes a deploy-dev step that uses SSH to a GCP VM.
deploy_mainnet.yml and deploy_testnet.yml are SSH-based deployments; migration to hosted runners likely needs IP allowlist changes or alternative deployment path.
Suggested next steps
- Decide the target GitHub-hosted Large runner size (likely 16-core Linux to match n2d-standard-16).
- Modify
check_build_test.yml to use the Large runner label/group.
- Migrate
docker_build.yml build job to standard hosted runner; keep or refactor deploy-dev step.
- Decide how to handle
deploy_* workflows if self-hosted runners are removed.
References
Background
We currently use self-hosted runners for multiple workflows, including
check_build_test.yml,docker_build.yml, anddeploy_{mainnet,testnet}.yml. The self-hosted CI pool is costly; recent billing analysis suggests meaningful savings if we migrate heavy builds to GitHub-hosted Large runners.Goals
check_build_test.ymlrequires Large runner capacity; others can use standard hosted runners.deploy_*workflows (they currently SSH into GCP VMs and may need adjustments if moved off self-hosted).Findings so far
check_build_test.ymlis the heavy workflow (Rust build/tests + Move + web/SDK + Docker pulls) and is the primary candidate for GitHub-hosted Large runner.docker_build.ymlbuilds and pushes to GHCR; likely can run on standard hosted runners (no private network dependency), but includes adeploy-devstep that uses SSH to a GCP VM.deploy_mainnet.ymlanddeploy_testnet.ymlare SSH-based deployments; migration to hosted runners likely needs IP allowlist changes or alternative deployment path.Suggested next steps
check_build_test.ymlto use the Large runner label/group.docker_build.ymlbuild job to standard hosted runner; keep or refactordeploy-devstep.deploy_*workflows if self-hosted runners are removed.References