We cut CI emissions by up to 90% – by choosing where code runs

9 drydenwilliams 2 5/4/2025, 10:33:21 AM
We’ve been experimenting with running CI/CD jobs multi-cloud, across AWS, Azure, and GCP — but with a twist: each job gets routed to the lowest-carbon region available at the time (among other weightings like latency, performance, and provider preferences).

There’s a surprising amount of variability between cloud regions. Some run on hydro, nuclear, or wind — others are still coal- or gas-heavy. By choosing where code runs based on carbon intensity, we’ve seen up to 90% reduction in emissions per job, without changing app logic or infrastructure. Also 25% cheaper too.

For example:

We’ve been tracking the average grid intensity of jobs run by GitHub Actions and Azure (when region is unspecified), and we’ve seen an average of ~285 gCO₂/kWh.By contrast, when we set a hard limit of 100 gCO₂/kWh max, our jobs averaged just 48 gCO₂/kWh — with some running as low as 24 gCO₂/kWh.

It’s been eye-opening to see how much of a difference regional scheduling can make — especially for something like CI/CD, where latency is often a lesser concern.

It’s made us wonder:

- Should developers be thinking about this, or should platforms abstract it away? - Where’s the right tradeoff between performance, carbon, and cost?

If anyone else here is exploring carbon-aware infra, cloud sustainability, or multi-cloud scheduling

We built this into tool called CarbonRunner that automates this process. It pulls live grid intensity data and applies weighted logic to select the best region for each job across providers — would love to hear what you're seeing or thinking about.

Comments (2)

Flundstrom2 · 32d ago
That's great!

Considering the millions of instructions that nowadays are executed just to cope with all layers of abstraction to read a sigle byte from a drive, we really need to start thinking about energy consumption and energy-efficient programming!

When it's too cool, I spin up a kernel build, after a while the room is warmed by the heat of the CPU.

mitchellpkt · 32d ago
This is a really neat idea! I never thought about taking emissions into account when provisioning infrastructure. Only a small subset of my cloud workload is performance sensitive. For the majority of tasks (tests, background ETL processing, etc) I wouldn't even notice small latency increases.