2 ms·
I'm writing a GitHub CI bot specifically for Go. There are so many ways you can improve on existing CI if you integrate deeply with a specific language. You ca
by nemo1618 7y ago
I'm writing a GitHub CI bot specifically for Go.
There are so many ways you can improve on existing CI if you integrate deeply with a specific language. You can cache test results for packages whose source code hasn't changed; you can run a specific test n times; you can run a benchmark and block a merge if the geomean regressed; you can run a linter and suggest it's fixes in GitHub comments; etc.
It's a little bizarre to me that existing CIs don't even bother to parse the test output and display it nicely. Go has a -json flag that makes the test output dead-simple to consume, but it's certainly not infeasible for other languages. Wouldn't it be cool to see individual histories for each test, showing how many times they've failed, or how much total time has been spent executing them?
So my goal is to make a Go-specific CI that's 10x better than existing language-agnostic CIs, and then shop it around to high-profile Go projects. Those developers would also make for ideal contributors, so hopefully I can source some external contributions that way too.
- epage 7y agoSome thoughts I've had along these lines (but for Rust) - Open issues in the review for compiler / lint / format errors - Gather coverage per test and use that to determine which tests are needed for a given change