Our team is sharing a Jenkins server with other teams, and this currently means that we are sharing the same OS-level build-user account. The different teams’ OS-level build-user settings (Maven settings, bash settings, user-level Ant libraries, etc…) have collided a few times–“fixing” the settings for one team’s jobs inadvertently “breaks” another team’s jobs. The easiest sol’n that occurs to me is giving each team its own OS-level build-user account with which to execute its Jenkins jobs–but I cannot find a way to do this.
I have checked with Google, and also here
https://wiki.jenkins-ci.org/display/JENKINS/Use+Jenkins
and here
https://wiki.jenkins-ci.org/display/JENKINS/Plugins
to no avail.
Is there a way to do this? If not, can you recommend any best practices for segregating sets of builds from one another?
Maven Specific
You have two options that come to mind,
Multi-slave
You could possibly make use of multiple slaves on each machine. It increases the overheads of the builds quite significantly, and the implementation is such that you’d have multiple user accounts on a machine, each setup as needed, and then one slave instance for each user.
I’m not sure these solutions will totally answer your problem, I’ll have a think and see if anything else pops into mind, but it might give some starting points