I buy that maintaining a CI setup is not a trivial thing, but if speed is the only other concern, why not just...spin up faster CI runners?
De-centralizing test running also makes it difficult/impossible to e.g. collect test analytics (like Buildkite can do natively) to help gain insight into flaky tests, how code changes impact test duration, etc., and visualize those things over time, especially if developers are using non-homogenous hardware.
That, and if your tests are not being run in CI, then what enforces that tests run and pass before a deploy occurs? Losing that guarantee is not great IMO.
I think it's a good platonic ideal to have CI that _can_ be run on devboxes, but in my opinion most of the value in having runners like GitHub Actions is in _asynchronicity_, not in _performance_. Having to pull in changes and run the suite manually and locally to deal with merges, for instance, seems like a chore.
You should always be able to run your CI on your dev machine! If there's something within GitHub Actions that isn't repeatable locally, then you're just creating another (distributed) snowflake.
You will run into huge issues with developers machines all being different. Most of the point of CI is to run these things asynchronously in isolation.
From TFA: 'pretty substantial code base too. About 55,000 lines of ruby code'. Am I the only one to think that 55k LoC is not pretty substantial? That's the amount of code you can easily deal with as a single person, no team required. No wonder doing CI locally sounds tempting, as there's probably not all that much integration in the first place.
The thought feels weird, but DHH is not the first one to utter it.
A recent HN submission [0] links to a post in a series about reducing development friction. I do recommend reading the whole thing, but one post is specifically about not using CI [1].
De-centralizing test running also makes it difficult/impossible to e.g. collect test analytics (like Buildkite can do natively) to help gain insight into flaky tests, how code changes impact test duration, etc., and visualize those things over time, especially if developers are using non-homogenous hardware.
That, and if your tests are not being run in CI, then what enforces that tests run and pass before a deploy occurs? Losing that guarantee is not great IMO.