youngmon/atlassian-qna huggingface dataset:
Bamboo OnDemand build + local deploy
Asked by Vincent Kellers da Silveira:

Hello,

I would like to check whether Bamboo OnDemand supports the following scenario:

1. Build my application using maven in Amazon EC2

2. Deploy the built application in my servers, which are hosted locally in my company, not in the cloud

As per my research ([https://answers.atlassian.com/questions/32813/jira-ondemand-with-standalone-download-local-bamboo](/questions/32813/jira-ondemand-with-standalone-download-local-bamboo) and <https://studio.atlassian.com/browse/JST-3425?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#issue-tabs>) step 2 is not possible, but I would like to double check anyway.

If the above scenario is not achievable using Bamboo OnDemand, I would like to check whether it is possible to provide a link to the artifacts resulting of the latest stable build. This link should not depend on version number, since (ideally) it would be used by scripts that would download the artifacts and then execute the deploy.

Thanks in advance.


Answers:
author: ReneR
body: This is certainly within the realm of possibility.

Bamboo-wise, you'll need a custom AMI.

<http://confluence.atlassian.com/display/BAMBOO/Creating+a+Custom+Elastic+Image>

Any EC2 instances you create from that AMI will have access to any of the functionality AWS provides. One of those features, for example, let's you create a hybrid VPN network between AWS and your datacentre:

<http://aws.amazon.com/vpc/faqs/#C6>

So you configure the custom Bamboo AMI with the security group for your VPN and in your build plan you just setup a Job to do the deployment (as if the Bamboo agent was in your own datacentre) via ssh, scp or whatever other means of automation you would use in your own datacentre.

Since you're using Maven, you can definitely use an artifact repository manager like Nexus that's setup in your datacentre and which you can provide a public access URL for or setup via the VPC. Setup a user for the bamboo builds and hide the encrypted settings.xml in your custom AMI. Any Jobs can then push artifacts into your repository via the normal maven-deploy methods.

You could also setup a Nexus repository manager inside EC2 on a dedicated instance that you can, again, reach from your custom AMI. Then setup a Nexus proxy in your data centre that can replicate artifacts back and forth from AWS.


Tags: cloud
Bamboo: Reuse artifacts of jobs
Asked by Sascha Herrmann:

We're currently evaluating Bamboo as a replacement for our Hudson CI server.

There is one thing dearly missing: The possibility to easily (!) reuse artifacts of build jobs. I know it's possible within a plan, but that's simply not enough.

I'd like to be able to have a preparation stage, containing jobs that assemble the artifacts of other jobs (of other plans) before the build stage of the plan is executed. Or to be able to plug in jobs from other plans into a stage as artifact-only jobs (no execution, just so that the artifacts are accessible).

Maybe we could create a Bamboo plugin for that, but currently we don't have the time to look into that.

In Hudson (back when we started) there was also no plugin for that, so we created our own plugin that - as a build step - copied artifacts from other jobs to the running job.

I read in Answers that cross-plan artifact sharing is on the roadmap for 2012, did I understand that correctly? But my impression is, it's not here yet, right?And there is no plugin in the Exchange that provides such a functionality (or did I miss it)?

Just want to make sure that I did not miss something and that the functionality is really missing right now.

Thanks.

Sascha


Answers:
author: James Dumay
body: Sascha, if this is what you are looking for, please watch and vote for this feature request that allows you to [pass artifacts between plans](https://jira.atlassian.com/browse/BAM-10573).

comments: author: Sascha Herrmann
body: Thanks. I tried to access the feature request, but I get a permission violation.

Sascha


author: Jan Swaelens
body: We currently work around this by defining the artifacts on plan X and retrieve them using the ant \<get\> task in plan Y which needs them (using the HTTP URL which leads to the artifacts in combination with the 'latestSuccessfull' link of the plan).

I have been thinking about why this is not possible today using build in Bamboo features, in the end it makes sense that artifacts are contained within the boundaries of a single plan to make sure all sources matches up together - I think of it as a transaction.  
But on the other hand, in very large projects it can take up a long time to build all required artifacts and then for instance start the tests.


author: Przemek Bruski
body: > But my impression is, it's not here yet, right?And there is no plugin in the Exchange that provides such a functionality (or did I miss it)?
>
> Just want to make sure that I did not miss something and that the functionality is really missing right now.

That's right. Stock Bamboo does no support it. I am not aware of plugins supporting that either.


Tags: artefact

share
NetBeans Plugin for Bamboo
Asked by Adam Myatt:

It seems the Atlassian Bamboo continuous integration product has IDE plugins for Eclipse, IntelliJ, and Visual Studio, but not NetBeans. [http://www.atlassian.com/software/ide-connectors/overview](http://www.atlassian.com/software/ide-connectors/overview "http://www.atlassian.com/software/ide-connectors/overview")

I was wondering if anyone else knows of a NetBeans plugin for working with Bamboo, similar to the Hudson Plugin in NetBeans?


Answers:
author: James Dumay
body: Hi Adam, I'm not aware of any Netbeans plugin at this time and Atlassian has no plans to implement one in the forseable future.

comments: author: Adam Myatt
body: I thought so, but good to hear confirmation. Duplicate effort is definitely no fun. I started blogging about my experience getting started creating a NetBeans plugin for Bamboo here and if I ever get done will be sure to update this ticket. <http://pronetbeans.com/archives/286>


author: James Dumay
body: Wow thats really awesome Adam! Keep me in the loop with your progress :)


author: Adam Myatt
body: Progress update for those interested : So far I have a basic NetBeans plugin configured that can allow a user to register a remote Bamboo server, authenticate using Basic Auth to the REST API, expand a the children under the parent node to see the Projects in the Bamboo server and then open a details page which retrieves all the plans for a specific project and display the latest build results for that plan. You can read the latest blog post and see screenshots here. <http://pronetbeans.com/archives/413>

The plugin is a bit ugly and needs a lot of QA but is working based on what is shown in the screenshots. Next steps include getting it to trigger the plan to build and viewing the list of all builds for a specific plan.


author: raulgd
body: Adam Myatt's links are dead, there is no info whatsoever of a netbeans plugin ever existed, is there somewhere we can see the documentation or if the plugin was built at all?

comments: author: Adam Myatt
body: Raul - sorry the links died. My web host provider lost some of my data for a few months including my blog posts about building the Bamboo NetBeans pluin. The plugin was about halfway done and still needs some work before it is usable. I intend to return working on it soon and will publish some blogs posts on how I built it and user docs on how to actually use it.


author: J. Wilkes
body: I'm very interested in Bamboo - NetBeans connector, too.

It would be good to hear whether Adam (or somebody else is) still on this.


author: J. Wilkes
body: I'm still very interested in a Bamboo - NetBeans connector.Anything, anywhere?


Tags: jenkins

netbeans
Hardware Sizing For 100-agent Bamboo Installation
Asked by Adam Myatt:

Can anyone who runs Bamboo with 50 or 100 remote agents provide any feedback on what size hardware they are running on (# of CPUs, Memory, etc), as well as how many plans they have building and if they have seen performance issues? I'm trying to plan out a near future installation of 100 remote agents and want to try to size our hardware appropriately.

Thanks.


Answers:
author: ReneR
body: For your Bamboo server see this related answer:

[https://answers.atlassian.com/questions/11721/server-specifications](/questions/11721/server-specifications)

For the remote agents, we use Dell R510s, 610s and 710s, with 64-96GB of memory. You want to get the fastest memory and disks that you can -- we usually fill up most of the drive bays (so about 800GB of disk space for those models). Base server uses Scientific Linux and we have KVM virtualisation on top of that. We get a density of about 12 to 18 guests, depending on how we size them (usually 60GB disk and 4 or 6 or 8 GB of RAM). We create separate logical volumes on the host node to give each guest some swap. Our guest OSs can be CentOS, Fedora or Ubuntu.

For Windows builds, we have a couple of ESX servers with VMWare images.

We also use Amazon EC2 for overflow capacity. The Bamboo server instance has no problems coping with 80,100 agents and dozens of plans executing simulatenously. Usually things that are the bottleneck are the network and dependent services like source code servers or artifact repositories (Nexus).

comments: author: Adam Myatt
body: Rene - thanks for the quick feedback. A few clarifying questions : when you say 12-18 guests do you mean you have 12-18 VMs running on a single physical machine, such as the 510s, 610, 710?

Also, you seem to infer you're assigning 4-8 GB RAM for each VM. Is this correct? Also what type and number of cores do you assign to each VM.

Additionally, for each Bamboo server itself, the key question for performance is how many plans can be configured in them, regardless of whether they are simultaneously running or sitting idle. I would imagine at some point having 500 plans or 1000 plans in the system there would be some sort of limit, even if only a few dozen ran at once?


author: Adam Myatt
body: Thank you for the feedback. Very valuable!


author: Przemek Bruski
body: Idle plans: we have customers with \>1500 plans on their dashboards. It has some impact on the browser (some pages become a bit heavy), but the server side copes with it just fine.


author: ReneR
body: Yes, 12-18 guests per single physical machine. Each physical host node uses 2 Intel Xeon X5690, 6 core CPUs. We give each guest 4 virtual cpus.


Tags: hardware

remote-agent
Deploying website with SCP Task
Asked by Florian Brandel:

How is it possible to deploy multiple files within subfolders to the remote server? With the Bamboo SCP Task Plugin it seems that transfering subfolders is not supported. All selected files in the 'local path' get pushed to the 'remote path' but without caring about folders.


Answers:
author: James Dumay
body: Hi Florian,

I've raised a feature request (<https://jira.atlassian.com/browse/BAM-11000>) to preserve the directory structure on copy. Ill try to get around todoing this in the next week or so but my schedule is tight. The plugin is also open source, so if you are feeling adventurous you can hack in the feature yourself :) <https://bitbucket.org/i386/bamboo-scp-plugin/>

Thanks

James

comments: author: Florian Brandel
body: Thanks James! At least it's clear that it is not supported yet... A solution would be great, though ;) Maybe I will have look at the code and see what I can do...


author: James Dumay
body: No worries. Feel free to ask questions!


Tags: scp

task
Export Build automaticly to a directory/file
Asked by Norbert:

Hi

is it possible to copy all the Build Log files/text to a file/directory as last step of a build?  
In our we copy the result of the build (a pdf and an installer) to a directory  
for archieving it would be nice to have the log file of the build also in this directory.  

How can this be achieved?


Answers:
author: Renjith Pillai
body: Do a 'tee' of the build commands so that you get the output in the web interface as well as to a file. And archive the log as an artifact.

comments: author: Norbert
body: This is suboptimal because I don't get ALL output, only of the tools not for the batchfiles and other stuff  
(I'm using a windows buildserver)

So the important stuff of the commandline parameters is missing!  

I'm marking your response as answer because I don't think there is a better "solution" for this problem.


author: Przemek Bruski
body: You can add a Script Task that will cp/copy all the files you want.

comments: author: Norbert
body: Hi

Im' talking about the same logtext available in the webinterface..  
where can this file be found?
Problem with Bamboo Agent on 64-bit Windows 7
Asked by Adam Myatt:

I have installed Bamboo 3.4.4 64-bit windows version on 64-bit Windows 7 machine. I tried installing the agent as a service.

When I point the wrapper.java.command property in the wrapp.er.conf file to a Java 7 64-bit JRE and start the agent the log shows:

INFO \| jvm 5 \| 2012/02/26 13:40:46 \| java.net.SocketException: Permission denied: connect


Answers:
author: Adam Myatt
body: I believe I figured this out. I was using Java 7U3 from home to connect via VPN to Bamboo at work. I did some research and found this thread : <http://www.java.net/node/703177> that discussed issues with JDK 7 using VPNs. Though the thread talks about CISCO VPN clients, I have the Juniper Network Connect version 6.5. I installed the 64-bit JDK 6 Update 31 and pointed the "wrapper.java.command" at the new java.exe, without changing anything else and it worked fine. I will try with JDK 7 tomorrow at work and confirm if it works.


author: Adam Myatt
body: See previous answer.
Hosted (on demand) Bamboo - why not offer a zero agents, use your own slave agents option?
Asked by David Boden:

The Bamboo on demand pricing options are based around the notion of paying for more build agents as you need them. Which is fine. There many projects, popular open source projects for example, where a significant group of developers would probably be happy to run a slave agent up on their PC and have that used to do the grunt work of the builds.

Could Bamboo be offered up in a hosted (on demand) but zero agents option? That way, development teams get a cheap and convenient Bamboo \*web configuration interface\*, which gets upgraded by Atlassian whenever there's a new version. Atlassian don't have to pay for cloud computing resources for running potentially intensive builds.

The pricing could still be targeted at number of slave agents; there will be an overhead of allowing hundreds of slave agents to constantly ping the central Bamboo server; and perhaps pricing based on the number of build jobs.

Projects could start off in this cheap mode of operation. If project owners find that builds are not running consistently across developers' PCs then they might be tempted to buy some cloud build server time. So, it's a strategy that allows Atlassian to offer a basic solution very cheaply and opens the door to further upgrade sales.

The other situation where this approach is applicable is the corporate environment. Companies like investment banks are not going to allow source code out of the building. At the moment, that means that they are forced to take the \*download\* option for Bamboo and run the whole thing locally. Could separating the web management console and the build agents mean that investment banks are happy to use the hosted verison of Bamboo but run all of the builds on the bank's hardware? Banks are always looking to reduce costs in areas that are not part of their core business. Running, maintaining and periodically upgrading a locally running Bamboo server definitely does not qualify as core business, so most IT managers would favour buying an Atlassian hosted (on demand) solution.

Anyway, just thought I'd put my thoughts about it down. I'd be interested to hear any comments.


Answers:
author: Michael Knight
body: Hi David,

That is a good suggestion. We are tracking that feature request [here](https://studio.atlassian.com/browse/JST-3425). Please feel free to add your comments (even if you just link back to this page ;).


Tags: cloud
Share Job Folders
Asked by Norbert:

Hi

I'm using Bamboo for a C++ Project  
Currently we have only on Stage and one Job  
to make the build a little bit faster (parallelize task) I split the the job in serveral stages/jobs

* Init Build - Stage  
  get sourcecode,   
  copy some prebuild stuff
* Buildstage  
  build 32 bit  
  build 64 bit  
  create Installer
* PostBuild Stage  
  copy result to Share folder

The problem is, that every stage/Job uses his own Buildfolder  
I know i kann use Artifacts and then everything from stage/Job1 is copied to the next  
but is there a way around duplicating everything?  
I would like to have a common buildfolder for everything..


Answers:
author: Renjith Pillai
body: Does this help? <http://confluence.atlassian.com/pages/viewpage.action?pageId=19923015>

comments: author: Norbert
body: Thanks for the tip

i wouldn't call this a beautiful solution but at least its a working one :-)
How to change Bamboo default Java encode
Asked by Akira Tsuchiya:

I want to know how to change the Bamboo's JDK default Java encode.

I am using SVNKit ISVNAnnotateHandler#handleLine(..., String line, ...).

The handleLine() seems to convert the byte array retrieved from Subversion to Java String using the Bamboo's default encode.

I want to change the default encode, probably M932, to UTF8.

How can I do that?


Answers:
author: Akira Tsuchiya
body: I found the solution for this issue.

You can set the encode in the method of SVNLogClient.doAnnotate().
Wildcards in Artifact locations and Working Sub Directory
Asked by J?rg Godau:

I'm trying to set up many similar plans.   
In order to copy them and not have to change all of them manually I want to use wildcards in directory names.

Eg. Two projects gba-vst-protokoll and gba-vst-psn both have webapps but with different names.  
vstprotokoll-webapp and vstpsn-webapp.

In the compile Stage of the plans I want to publish an artifact containing the target directory of the webapp folder using an Artifact:
> Name: webapp-target  
> Location: \*-webapp/target  
> Copy Pattern: \***/**   
> Shared: true

The build fails with this message:  

```
Unable to publish artifact [webapp-target]: the source directory /home/bamboo/bamboo.home/xml-data/build-dir/GBA-PROTOKOLL-COMPILE/gba-vst-protokoll/*-webapp/target does not exist.
```

If I go to the server I can successfully reach the directory and see the expected content:  

```
$ cd /home/bamboo/bamboo.home/xml-data/build-dir/GBA-PROTOKOLL-COMPILE/gba-vst-protokoll/*-webapp/target$ pwd/home/bamboo/bamboo.home/xml-data/build-dir/GBA-PROTOKOLL-COMPILE/gba-vst-protokoll/vstprotokoll-webapp/target$ lsclasses  generated-sources
```

Edit: If I set the Location to vstprotokoll-webapp/target then the build runs (so the data is definitely there). It's just a pain to do this for 10 to 50 Projects...

**Is it possible to use wildcards in directory / location names for artifacts?**

Note: using a wildcard in the destination folder for an artifact works...

So I can have an artifact successfully copied to \*-webapp/target but not from \*-webapp/target?

The same question applies to Stage - Job - Task - Working Sub Directory.

I have a lot of projects that have a \<name\>-db directory out of which database patches need to run. I'd like to set up a task that runs in \*-db so that I can copy this around and save setup times, and not be tied to the actual project name.

Cheers

Jack...


Answers:
author: J?rg Godau
body: I opened a support request for this, and the answer ist to use Plan or Bamboo variable instead of wildcards.

Cheers

Jack...


author: SGD
body: For reference, here is the juicy part of the support ticket (#BSP-6577):

My first idea is to use Bamboo Variables in Location and Destination fields  

```
${bamboo.webappname}-webapp/target
```

and then give that variable a proper value on a [Plan level](http://confluence.atlassian.com/display/BAMBOO/Defining+Plan+Variables).   
Please let us know if that is viable solution.

Cheers  
Krystian Brazulewicz  
Atlassian Bamboo Development


Tags: configuration

wildcard
Do the Build trigger condition work for you on Bamboo 3.4.3?
Asked by Kepio:

I can't get the default trigger condition : **Only run Build if other Plans are currently passing** to work on my manual plans.

I setup a manual build strategy with a trigger condition pointing to a top level plan - I made sure the last build on the other plan had failed and then requested a build on the current plan. The plan still gets executed without checking the other plan status.

As a side note, I did not set any dependencies between the 2 plans - other than speficying the plan key.

I opened a [BAM](https://jira.atlassian.com/browse/BAM-10989) defect ticket (since it's blocking our builds), but I was wondering it it worked for you.


Answers:
author: Kepio
body: Brydie answered my question in the BAM ticket - for sharing purposes, here'sher answer ( which makes perfect sense):
> This was by original design. We assumed that if you are going to click the play button manually that you actually wanted it to build, regardless of external conditions. There are other things (e.g. checking if parent dependencies are building) which we also don't check when running a manual build.


Tags: build
A long string is truncated at the end in a Plan Sub Menu
Asked by Akira Tsuchiya:

Take a look at the attached image.

A long string is truncated at the end in a Plan Sub Menu.

I want a hirizontal scroll bar is displayed in a Plan Sub Menu for displaying too long a string.

How can I do that?

![](../../upfiles/stringTruncated.PNG)


Answers:
author: Jason B
body: Put your content in a containing element, and on that containing element use the following CSS to trigger scrollbars when the content is too long:

```
overflow: auto;
```

Generally it's more ideal for the content to wrap, however, as horizontal scrollbars can present some UX issues (e.g. if your content is long it's not immediately obvious that there's a horizontal scrollbar because it will appear right down at the bottom of your content, possibly off-screen).

To force unbreakable content to wrap you can use:

```
word-wrap: break-word;
```