---
title: "9apes Blog - GitHub Actions Performance and Cost"
description: "Practical writing on GitHub Actions cost, runner performance, caching, and CI isolation from the team building 9apes runners."
url: https://9apes.com/blog/
---

# 9apes Blog - GitHub Actions Performance and Cost

Guides and benchmarks for teams running GitHub Actions.

## Posts

- [GitHub Actions data residency: where CI data goes](https://9apes.com/blog/github-actions-data-residency/) — Trace source code, caches, artifacts, logs, and control-plane data separately from runner location, with a practical CI residency review. Published 2026-10-17.

- [GitHub Actions runners for C++ and Bazel builds](https://9apes.com/blog/github-actions-runners-cpp-bazel-builds/) — Choose a GitHub Actions runner for C++ and Bazel using build bottlenecks, reproducible cold-build benchmarks, and a practical comparison method. Published 2026-10-17.

- [Choosing Managed GitHub Actions Runners for Your Team](https://9apes.com/blog/managed-github-actions-runners/) — Compare managed GitHub Actions runners by workflow cost, isolation, platform support, and operational effort, then validate your choice with a small pilot. Published 2026-10-17.

- [How to reduce GitHub Actions build times](https://9apes.com/blog/reduce-github-actions-build-times/) — Reduce GitHub Actions build times by removing redundant work, measuring cache overhead, shortening the critical path, and testing matched runners. Published 2026-10-17.

- [What an untrusted PR can access on a self-hosted runner](https://9apes.com/blog/self-hosted-runner-untrusted-pr-security/) — Map the credentials, storage, network, and kernel boundaries of self-hosted CI, with a harmless Docker fixture for persistence and explicit access. Published 2026-10-16.

- [What self-hosted CI actually costs](https://9apes.com/blog/self-hosted-ci-cost/) — Calculate self-hosted CI cost with an editable model for idle capacity, control planes, storage, retries, and engineering time. Compare cost per successful workflow. Published 2026-10-15.

- [Multi-architecture Docker builds: QEMU versus native ARM](https://9apes.com/blog/multiarch-docker-builds-native-arm/) — Compare native ARM, QEMU, and Go cross-compilation with measured build times, a working Dockerfile, and reproducible evidence. Published 2026-10-10.

- [Autoscaling GitHub Actions runners with Karpenter](https://9apes.com/blog/karpenter-github-actions-runners/) — Connect ARC runner demand to EC2 capacity, compare zero-idle and warm runners, and measure startup and consolidation with reproducible burst tests. Published 2026-10-07.

- [How to build container images in Kubernetes without privileged pods](https://9apes.com/blog/build-images-kubernetes-without-privileged-pods/) — Build container images with rootless BuildKit or Kaniko in Kubernetes. Follow the setup, build, export, verification, and cleanup steps. Published 2026-09-26.

- [Actions Runner Controller on EKS: a reproducible setup](https://9apes.com/blog/actions-runner-controller-eks/) — Deploy GitHub Actions runner scale sets on EKS with scoped credentials, separate worker capacity, a real job, and a complete teardown procedure. Published 2026-09-24.

- [Docker layer caching in GitHub Actions: measured cache hits](https://9apes.com/blog/docker-layer-caching-github-actions/) — A tested Buildx workflow with the gha cache backend, five samples per case, and logs showing what survives source edits and dependency changes. Published 2026-09-23.

- [Reduce GitHub Actions Costs Without Managing Servers](https://9apes.com/blog/cut-your-github-actions-bill/) — Reduce GitHub Actions spend by removing unnecessary work, fixing caches, right-sizing jobs, and comparing managed runners against your remaining free usage. Published 2026-08-25.

## Subscribe

- [RSS feed](https://9apes.com/rss.xml)
