Webpieces in CI takes 5 minutes as seen in the build times and this would be 1 minute in a monobuild.
github project: GitHub - deanhiller/webpieces: A project containing all the web pieces (WITH apis) to create a web server (and an actual web server)
Orderly Health has a monobuild that is way way much more code and if we change a microservice, it builds in 1-3 minutes (depending on how many tests. Using the gradle build and matching webpieces build system with composite builds, a CLEAN build time goes to about 15 minutes because gradle incorrectly builds the whole world
Can we get a gradle version that only builds changes and the projects that changed?
yes, yes, bazel is a product but it is way nicer to open gradle projects that then open all the projects I depend on.
ALSO, I love the ‘implementation lib’ vs. ‘api lib’ so can gradle actually have the ability to open a ‘lib’ and it wil open up all projects with ‘implementation lib’ as well as any projects that pull in libraries with ‘api lib’ that it gets exposed to such that I can refactor that lib easily in my monorepo. The flipside is I have to find each and every project and see if I can add it which doesn’t always work as it is not a feature in use by many I think. This one click open would rock for refactoring in a monorepo
We will be releasing an open source build template that works great for smaller/mid-size companies and is not optimized for CI just yet (ie. it can be further split to build N lead nodes on N machines to further reduce the 15 minutes above to 3-5 minutes).
ie. you want to just run ./monobuild.sh and it detects changes and only builds projects that change, dependencies and transitive dependencies.