竹选择性分支部署

时间:2015-01-06 16:43:31

标签: bamboo

我正在使用Bamboo并且有两个分支:branch1和branch2以及master。

当我构建master时,生成的artefact按预期部署到nexus存储库。但是,当我构建任何分支时,它们也会被部署到nexus。

理想情况下,我想要发生的是只有master被部署到nexus。

由于master和branch都使用相同的stage / job,你如何配置它?

3 个答案:

答案 0 :(得分:4)

最后,我们确定了一个涉及使用分支变量的解决方案。使用这些,我们可以插入一个值作为maven目标,即mvn clean $ {bamboo.variableName}。默认情况下,变量的值为install,但Bamboo中的主分支将覆盖该变量并将其设置为deploy。这样,所有分支都将构建和测试,而master将构建,测试和部署。

答案 1 :(得分:3)

您应该能够在设置自动部署时选择部署的分支,在此处记录 - https://confluence.atlassian.com/display/BAMBOO/Deployments+from+branches#Deploymentsfrombranches-Automatedbranchdeployment

答案 2 :(得分:2)

最适合我的解决方案是使用脚本来决定做什么。因此,我创建了脚本任务而不是maven任务,并根据正在构建的分支决定运行哪个命令:

echo "Starting build for branch:"
echo $bamboo_planRepository_branchName

if [ $bamboo_planRepository_branchName = "development" ] ; then
    echo "Executing mvn clean deploy -U"
    mvn clean deploy -U
else
    echo "Executing mvn clean install -U"
    mvn clean install -U
fi

$ bamboo_planRepository_branchName是Bamboo提供的变量。