I'm looking to setup a self-hosted software development infrastructure, with the following:<p>- continuos integration, build and delivery (preferably incremental)<p>- code reviews (preferably pre-, maybe post-commit)<p>- reports on test coverage, hot spots, code style and potential error checking (per-revision delta, overall, per-code-review-diff)<p>Most of the tools I've looked at require large amount of work to get integrated. For example, in my Java stack, I have ant, jacoco, junit, pmd, checkstyles, and these produce reports for the current revision, but it looks like integrating these into a comprehensive review + report infrastructure is not something people do (or write blogs about).<p>Is this really that hard to do? What are you using for these nowadays?<p>My tech stack is mostly Java, Go, JS and Python, but would be preferable if we could keep it language-agnostic.
To me, continuous integration/build is a different class of process than the others. I mean that test coverage at 8am on a Monday is going to be pretty much the same as at 2pm the following Wednesday. On a large code base it's going to be hard to move the needle on test coverage in a day and a half.<p>The second thing I see is the permutation problem. The combination of Java, Go, JS, Python, Ant, jacoco, junit, pmd, and checkstyles means that the odds that there's an existing tool that works across all of them is very low. The odds that there's something that works across all of them the way you want is pretty close to zero.<p>I think it's going to be hard to get what you want the way you want. To me it looks like a moderate devops project.<p>Good luck.