我正在使用Bamboo并且有两个分支:branch1和branch2以及master。
当我构建master时,生成的artefact按预期部署到nexus存储库。但是,当我构建任何分支时,它们也会被部署到nexus。
理想情况下,我想要发生的是只有master被部署到nexus。
由于master和branch都使用相同的stage / job,你如何配置它?
答案 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提供的变量。