With the age of agents CI costs are generally going up, how is your build setup handling things? Have you been able to optimize, and how did you? Most importantly, how fast is it?
Trigger a review agent for any commit which has an open PR and has passed build. Use open weights, or at minimum a different model family from the one which wrote the code. I will be publishing a write up soon(tm), inspired by but different from, cloudflare's post.
I would napkin math the averaged cost per-review to be less than $1, which is less than our most rigorous validation pathway in CI (needs GPU for up to an hour). Time-wise around ~10-15m, with variability - and a bug in Argo with pod scheduling delays. This is fine because developers check in on their own PRs when they do and then make the changes that are needed. A key point here is that we are keeping humans in the loop in the PR.
This is a large monorepo, I would expect much lower numbers for polyrepo setups.
My experience has made me more interested in seperating deterministic checks the judegment based reviews.Authentication changes have also taught me that passing inidividual checks doesnt mean an integration works end to end.
4 mins critical path, 1h30m wall clock time (bunch of optional tests)
was around 40 mins on the critical path at the start of the year. gains came mostly from sharding tests, replacing webpack with vite, eslint/prettier with oxlint/oxfmt, caching node modules
We were at about 20 minutes, with minutes 5-20 being just the ~55 accessibility tests running, loading chromium browsers, navigating to the different pages and looking for color issues, aria, keyboard navigation tags, etc. A couple months ago, when I got beat to merging on deploy day three times making me rebase and rerun, I parallelized them and now we are at 6 minutes for the full suite.
I would napkin math the averaged cost per-review to be less than $1, which is less than our most rigorous validation pathway in CI (needs GPU for up to an hour). Time-wise around ~10-15m, with variability - and a bug in Argo with pod scheduling delays. This is fine because developers check in on their own PRs when they do and then make the changes that are needed. A key point here is that we are keeping humans in the loop in the PR.
This is a large monorepo, I would expect much lower numbers for polyrepo setups.
was around 40 mins on the critical path at the start of the year. gains came mostly from sharding tests, replacing webpack with vite, eslint/prettier with oxlint/oxfmt, caching node modules
More or less, I did:
- Avoid unnecessary work
- Don't boot more often than needed
- Parallelism in tests
- Caching rules
My post has an ongoing live survey with ~570 responses:
- 30% says 5-15m
- 26% says >30m
- 23% says 15-30m
- 13% says 2-5m
- 8% says <2m