This is a thought I got for the
lv2 crate after some
rustfmt shenenigans we got, and I realized that besides Travis I know next to nothing about GitHub CI apps, so I’m asking for some advice here (mainly about what to do for
lv2, but we could also add stuff for the other projects).
In my opinion, a good CI pipeline should at least provide these:
- Building and Testing on at least the three major platforms (Win, Mac, Linux), and enforcing that all tests pass.
- Gather test coverage from the tests, and provide those detailed results (not necessarily enforced, but I think we should keep an eye on it shall it decrease suddenly).
- Check with and enforce Clippy
- Enforce formatting using Rustfmt (it may not be on its defaults, but it should be consistent across the repo, and we should not have to worry about it)
- Check for outdated and/or vulnerability-affected dependencies.
- … and maybe more, if you have ideas
What do you think are the best tools to achieve this?