I am pretty new to Jenkins and I am having difficulty understanding the Jenkins Controller/Agent structure.
In my setup I am trying to perform distributed build of a Unity game project on several agents. Basically I will invoke a command “path-to-unity/Unity --executeMethod build” which will tell the “Unity” that acts like a “compiler” to compile a bunch of source code. However I don’t understand whether I need to install Unity and pull the exact same copy of the source code on every single Jenkins Agent machine in order to do the distributed build, and/or whether I need to manually handle the build work-load distribution in my shell script.
Based on some of the readings I have read, it looks like Jenkins will do the “distribution of work” automatically to each agent, magically. However I am not sure whether my understanding is correct. The Unity program itself consists of several gigabytes of data and the source code also consists of gigabytes of data and at least for me it seems kind of impossible to “automatically distribute on-the-fly” by Jenkins.
If I indeed need to install Unity on every single agent machine, pull the exact same copy of source code on every machine and do the work-load distribution by myself that would imply a lot of work to be done.
Any help would be appreciated.