Hello Jenkins Team,
I have a GitHub repo with a Maven project with over 50 sub-modules, all in the same repo. All of those sub-modules are under a single aggregate pom file.
I created a single Maven job pointed to the aggregate pom, and on the first run, all sub-modules were discovered as expected.
Now, I want these jobs to build in parallel. So, I checked the checkbox that says "Build modules in parallel".
But when I looked at the nodes used, all of the builds occurred on a single node, even though there are many other nodes available. And to be clear, it was using all executors of that node, but still limiting itself to a single node.
So, that meant that, even though the queue had 40+ jobs queued up, once all the executors on that single node were occupied, it didn't matter if any of the other nodes were free, no work would be picked up by them.
On a second attempt, a different node was used, but the same behaviour -- all sub-modules only executed on this second node.
Is this behaviour overridable? Or am I potentially doing things wrong? Again, I am only using the Jenkins Maven Job, not a Jenkinsfile or anything like that.
And as a workaround, I could just make a new Maven Job for each Maven sub-module. Doing it this way, now I do actually run on many free nodes.
But that has the downside of increasing the maintenance burden immensely. Remember, I have over 50 sub-modules. If I need to add new functionality, that's 50 Jenkins jobs that I need to update. Not ideal at all.
Thank you for your time and help.