Skip to content
Latchkey

How to Apply FinOps Practices to CI/CD

FinOps is a loop: make cost visible, give teams ownership of their spend, then optimize and review on a cadence.

Bring the three FinOps phases (inform, optimize, operate) to CI: report spend per team, act on the biggest items, and review it regularly so it does not drift.

The loop

  • Inform: attribute minutes and cost to each team and workflow.
  • Optimize: cache, filter paths, prune matrices, right-size runners.
  • Operate: review CI spend in a recurring meeting and set budgets.

Tag work for attribution

Terminal
# Label workflows and repos so spend maps to owning teams.
# GitHub bills per workflow file, so name and place them by team:
#   .github/workflows/payments-ci.yml   -> team: payments
#   .github/workflows/search-ci.yml     -> team: search
#
# Then group usage report rows by workflow to get per-team cost.
csvcut -c "Workflow,Quantity" usage.csv | tail -n +2 \
  | awk -F, '{m[$1]+=$2} END {for (w in m) print m[w], w}' | sort -rn

Gotchas

  • Visibility without ownership does not change behavior; assign each workflow an owner.
  • Optimize the top spenders first; chasing the long tail rarely moves the bill.
  • Managed or self-healing runners can cut both compute cost and rerun waste, but still budget and review.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →