Is it mandatory to have the capability on Server?

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.

Is this expected? Do we need the executable on the Server side even if it is there on the remote agent? Does it mean the source will be downloaded on the server? Can I instead force the build to use the remote agent and its capability?

2 answers

1 accepted

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?

Yup, that will work for me. Thanks Piotr!

1 vote

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.

Thanks Nic, for the quick answer. It would have been awesome if the server could share the execuatble on the Remote. I think it is the other way that is possible now.

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)

Suggest an answer

Log in or Sign up to answer
Community showcase
Published Monday in Jira Ops

Jira Ops Early Access Program Update #1: Announcing our next feature and a new integration

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...

363 views 0 8
Read article

Atlassian User Groups

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!

Find my local user group

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

Groups near you