2014-05-07 19 views
4

請注意,雖然我的具體示例涉及Java/Grails,但它確實適用於Bamboo中可用的任何類型的任務。如何參數化Bamboo builds?

我有一個任務是竹子建造,我運行一個Java/Grails的應用程序,像這樣的一個部分:

grails run-app -Dgrails.env=<ENV> 

其中「<ENV>」可以是幾個值(dev之一,prodstaging等)。使,有時,它就像一條流淌所以這將是很好的「參數」的計劃:

grails run-app -Dgrails.env=dev 

而其他時候,它運行像這樣:

grails run-app -Dgrails.env=staging 

等。這是可能的,如果又怎樣? REST API允許我指定參數信息,因此我可以使用cURLwget啓動不同參數化版本?

+1

什麼以及如何更改該變量? – tmlai

+0

感謝@tmlai(+1) - 這個想法是,一個自動化的過程將通過Bamboo的[REST API](https://developer.atlassian.com/display/BAMBOODEV/REST+APIs)啓動構建,傳遞作爲該RESTful呼叫的一部分,''param的值。 – IAmYourFaja

回答

7

這似乎是一個工作,但我相信它可以幫助解決您的問題。 Atlassian有一個免費的插件電話Bamboo Inject Variables Plugin。基本上,使用這個插件,您可以創建一個「從文件注入Bamboo變量」任務以從文件讀取變量。

所以這裏的想法是讓你的腳本將變量設置爲特定的文件,然後啓動構建;構建本身會從文件中讀取該變量並在grails任務中使用它。

UPDATE

搜索後,我發現,您可以使用REST API改方案的變量(不是全球性)。這會讓你的任務變得更簡單:只需定義一個計劃變量(在計劃配置 - >選項卡變量中),然後在每次需要時更改它。有關如何更改的信息可在Bamboo Knowledge Base