How to Run CI in Lower-Carbon Cloud Regions
Identical compute in a hydro-powered region emits a fraction of the carbon it would on a coal-heavy grid.
Cloud regions differ widely in grid carbon intensity. Pinning self-hosted CI runners (and deploy targets) to a lower-carbon region cuts emissions for the same workload, with latency and data-residency as the constraints to weigh.
Steps
- Check provider grid-carbon data to rank candidate regions.
- Provision the self-hosted runner pool in a low-carbon region that meets latency needs.
- Label runners by region so workflows can target them.
Target a region label
.github/workflows/ci.yml
jobs:
build:
runs-on: [self-hosted, region-hydro]
steps:
- uses: actions/checkout@v4
- run: npm ci && npm run buildTradeoffs
- A distant clean region can add network latency and cross-region egress cost.
- Data-residency rules may pin where a job can legally run; check before moving it.
Related guides
How to Schedule CI at Low-Carbon TimesShift deferrable CI jobs to hours when the local grid is cleaner using a carbon-intensity signal, so the same…
How to Deploy to Lower-Carbon Regions From CITarget lower-carbon cloud regions in your CI deploy step so production runs on cleaner electricity, balancing…