I’d like to be able to configure tasks of a plugin I’m developing to be executed on different machines. I’m looking for a way of “seamlessly” integrating this, without having to build too much infrastructure for this in the plugin. Ideally, this should be orthogonal, via a separate plugin for the “distributed computing” part.
I’ve had a look at the Worker API and it does have some things like configuring work steps that have to be executed in a different process. I’m not sure whether it would be possible to extend it to use a custom WorkerExecutor, that starts new remote processes. The main plugin could have some way for the project to configure what worker executor to use (local or distributed) and the project would create the appropriate one (e.g. for LSF).
Does the idea of using the Worker API make sense? Are there other features that I don’t know about that could be useful here?
(Background: running on remote machines is not something I have to do to improve performance or anything. I know Gradle’s philosophy is that distributed builds don’t bring much. I have to run certain tasks on other machines, because only those machines have the required capabilities to run them - OS, tools, licenses, etc.)