Hello to all, on projects having hundreds of tasks https://gradle.com/#explore the parallelization of tasks, i.e.
what could be seen as vertical scaling, is limited by the number of cpu in a machine.
What is your opinion on providing a way to distribute gradle tasks, in an opt-in way, as for CacheableTask ?
“Task types need to opt-in to task output caching using the @CacheableTask annotation. Many built-in Gradle task types are cacheable, but custom task types are not cacheable by default.”
The idea being to implement distcc https://github.com/distcc/distcc like tasks, where the inputs would be sent to remote computers, computation performed there (these computers using a distributed cache too), and sending the output back to gradle, so that non distributed tasks are computed locally.
Some related information:
-
Bazel seems to have chosen hazelcast to enable a demo remote execution mode: https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/remote/README.md#remote-execution-for-demonstration-only
-
A plugin for hazelcast seems to be existing
https://github.com/gradle/gradle-hazelcast-plugin