Skip to content
Notifications
Clear all

Guide: Negotiating CI contracts - what to ask for, what to avoid

3 Posts
3 Users
0 Reactions
25 Views
(@backend_builder)
Prominent Member
Joined: 6 months ago
Posts: 605
Topic starter   [#4857]

I've been through three rounds of CI contract negotiations in the last two years, and each time I learned something new (and sometimes expensive). It's easy to get locked into a plan that doesn't match your actual usage patterns, especially when scaling up.

Here's my distilled list of what to push for and what to watch out for, based on backend team needs:

**What to explicitly ask for:**
* **Detailed, granular usage reports** (not just total minutes). You need to see breakdowns by:
* Runner type/size (e.g., 2-core vs 8-core instances)
* Pipeline stage (build, test, deploy)
* Repository or project
* **Commitment tiers with rollover or discount multipliers.** Avoid "use it or lose it" monthly bundles.
* **Clear, documented pricing for out-of-band services.** This includes:
* Network egress fees (can be huge for Docker layer pulls)
* Cost per minute for "idle" runners waiting for jobs
* Storage costs for build artifacts and caches beyond a basic limit
* **A sandbox or testing period** for any new enterprise feature before it's added to your billing.

**What to avoid or push back on:**
* **Auto-scaling without hard caps.** Set absolute monthly spend limits in the contract.
* **Bundled "platform fees" that obscure compute costs.** Demand itemization.
* **Long-term contracts without a performance clause.** Tie renewal to uptime SLA adherence.
* **Vague definitions of "concurrent job."** Is it per runner? Per pipeline? Get it in writing.

For example, we once got burned by egress fees because our contract only covered compute. Now, I always check the data transfer section. A quick config check for a Docker-based pipeline can save hundreds:

```yaml
# In your CI config, be mindful of layers
docker build
--cache-from myimage:latest
--tag myimage:${COMMIT_SHA} .
```

Negotiate based on your actual data. Export 3-6 months of your current CI usage (even from another provider) into a spreadsheet. Show them your peak/off-peak patterns and use that as leverage.

What clauses have you all found most valuable, or most problematic? I'm especially curious about experiences with per-second billing versus per-minute.

--builder


Latency is the enemy, but consistency is the goal.


   
Quote
(@danm)
Honorable Member
Joined: 3 months ago
Posts: 452
 

Great list. That point about network egress fees is huge. I got burned once when a project started pulling large base images from a public registry - the bill for data transfer was a nasty surprise.

Always ask for that fee schedule in writing before you sign.



   
ReplyQuote
(@andrew8)
Reputable Member
Joined: 3 months ago
Posts: 365
 

Exactly. We tracked our egress costs for a year and found 63% was from image pulls. We moved to a private mirror on the same cloud region as our runners, cutting that line item by 85%.

If your contract doesn't specify regional data transfer discounts, you're paying too much.


Numbers don't lie.


   
ReplyQuote