I am looking to create a Bamboo plan where the Source respository is Perforce. I have a remote agent that has the Perforce executable created as a capability.
However I still can't create the plan because Bamboo is looking for Perforce Client executable defined as a server capability.
I think yes, you need the p4 executable on the Server side. Bamboo server needs to collect the code changes since last build and this operation is performed server-side, prior to the build execution (on local or remote agents). Does this mean the p4 repository source will be downloaded on the server? I think no - the Bamboo server will just poll remote the p4 repository for relevant changes - source content is irrelevant.
Bamboo server needs to collect the code changes since last build and this operation is performed server-side, prior to the build execution (on local or remote agents)
Ah ok, that makes sense.
Regarding the last part of the question - which agent will the build run on? I have a local Agent (default one) and the remote agent. Can I force the build to always run on the Remote Agent?
Yes, you can (however it's a kind of workaround). You need to add custom capability to the remote agent (bamboo->administration->agents->the agent->somewhere there). For example add custom capability "isRemote". Simultaneously you have to add requirement to all your plan jobs (bamboo -> all plans -> configure the plan -> jobX -> requirements) which would require the "isRemote" custom capability to be present on the building agent. That way the Bamboo will dispatch the plan's jobs only to remote agents (assuming you don't add "isRemote" custom capability to the local agents as well :) ).
Does it make sense?
Yes, I think you need the Perforce executable on the remote machine (to get the files from the repo) as well as the Bamboo machine (to get the repo information about what's being built).
What I don't know is if they can share the executable somehow. ou could rig it so the Bamboo server uses the p4 client to drop files onto shared storage so the remote doesn't need it, but I still think Bamboo needs the executable client to enable it to talk to the repo.
Yes, it would be nice. The closest I think I can get is getting the Bamboo server to fetch the stuff to be built from Perforce (i.e with a p4 client), and then pushingit to the build server, so you don't need p4 there. Not sharing, but making it unnecessary.
I don't think there's any getting away from having p4 access of some sort on the Bamboo server, and as it's a proprietary thingy, it's really hard to build into a CI service (on the brighter side, Perforce are much more friendly than other non-open SCM providers and say "help yourself to the client side stuff", and their binaries are monolithic, so you drop one executable on your system, do a tiny bit of config, and it works)
Thanks for signing up for Jira Ops! I’m Matt Ryall, leader for the Jira Ops product team at Atlassian. Since this is a brand new product, we’ll be delivering improvements quickly and sharing updates...
Connect with like-minded Atlassian users at free events near you!Find a group
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG
You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs