{"id":160,"date":"2010-02-25T09:41:42","date_gmt":"2010-02-25T09:41:42","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2010\/02\/25\/disadvantage-of-bamboo\/"},"modified":"2021-11-20T05:25:09","modified_gmt":"2021-11-20T05:25:09","slug":"disadvantage-of-bamboo","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/disadvantage-of-bamboo\/","title":{"rendered":"Disadvantages of Bamboo &#8211; Bamboo Expert Review"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4162\" src=\"http:\/\/www.scmgalaxy.com\/tutorials\/wp-content\/uploads\/2010\/02\/bamboo-disadvantage.png\" alt=\"bamboo-disadvantage\" width=\"600\" height=\"400\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2010\/02\/bamboo-disadvantage.png 600w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2010\/02\/bamboo-disadvantage-300x200.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p><b>Bamboo Disappointment <\/b><br \/>Being a big fan of Atlassian&#8217;s Confluence and Jira, it was with much anticipation that installed Bamboo, the continuous integration (CI) engine they&#8217;ve released. Perhaps these high expectations led to my ultimate disappointment with Bamboo, but truly the features I&#8217;ve come to expect in a commercial CI product are nowhere to be found.<\/p>\n<p><b>No concept of inherited project structure.<\/b><br \/>If you have 20 modules you would like to build, defining behavior and properties for each is a daunting task. QuickBuild and AntHillPro both allow for a hierarchal organization of modules, so that a child may inherit properties (like environmental variables, build targets, etc) of its parent. In Bamboo, when creating a &#8220;Plan&#8221;, I can clone an existing module, but that&#8217;s it. Should I have the need to change a property for all plans, I&#8217;ll be forced to configure each through the web GUI. A tedious process &#8212; even with Cruisecontrol I could search &amp; replace config.xml in a text editor to make wholesale changes.<\/p>\n<p><b>Alien nomenclature<\/b><br \/>In Bamboo, you have top-level &#8220;projects&#8221;, and beneath them you have &#8220;plans&#8221;, which represent the modules being built. I&#8217;ve never used the word &#8220;plan&#8221; before when describing a module&#8217;s build, and frankly the limited options offered by Bamboo to govern build behavior makes it a dubious word choice.<\/p>\n<p><b>No passing of properties<\/b><br \/>It is sometimes desirable to direct a CI engine to pass arbitrary properties to one&#8217;s build process, and vice versa. I don&#8217;t mean &#8220;static&#8221; environmental variables, rather I refer to dynamic properties like &#8220;version number&#8221;. No such functionality is present in Bamboo. Luntbuild and Quickbuild both allow for this using OGNL expressions.<\/p>\n<p><b>No concept of build promotion<\/b><br \/>Most commercial CI products have evolved to include &#8220;Application Lifecycle Management&#8221;, so you may describe how a build can go from being development-status to gold. Implicit in this is a workflow allowing QA to promote and release builds. None of this is even hinted at in Bamboo &#8212; it does not even tag your build.<\/p>\n<p><b>Reference:<\/b><br \/><a href=\"http:\/\/poorinnerlife.blogspot.com\/2007\/09\/bamboo-disappointment.html\" target=\"_blank\" rel=\"noopener\">http:\/\/poorinnerlife.blogspot.com\/2007\/09\/bamboo-disappointment.html<\/a><\/p>\n<p>\u00a0<\/p>\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_24381\"><iframe loading=\"lazy\"  id=\"_ytid_92934\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  data-epytgalleryid=\"epyt_gallery_24381\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><div class=\"epyt-gallery-list\"><div>Sorry, there was a YouTube error.<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Bamboo Disappointment Being a big fan of Atlassian&#8217;s Confluence and Jira, it was with much anticipation that installed Bamboo, the continuous integration (CI) engine they&#8217;ve released. Perhaps these high expectations&#8230; <\/p>\n","protected":false},"author":1,"featured_media":4162,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[30],"tags":[172,3563,3556,3557,3555,3562,3564,3565,3561,3560,4030,3559,3554,3558],"class_list":["post-160","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bamboo","tag-bamboo","tag-bamboo-analysis","tag-bamboo-disadvantages","tag-bamboo-disappointment","tag-bamboo-drawbacks","tag-bamboo-experts-review","tag-bamboo-feedback","tag-bamboo-implementation-feedback","tag-bamboo-missing-features","tag-ci-tool-bamboo-disadvantages","tag-cons-of-atlassian-bamboo","tag-continuous-integration-tool","tag-disadvantage","tag-disadvantages-of-bamboo"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/160","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=160"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/160\/revisions"}],"predecessor-version":[{"id":25880,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/160\/revisions\/25880"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/4162"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=160"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=160"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}