竹选择性分支部署

Bamboo selective branch deployment

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

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

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

既然 master 和 branches 使用相同的 stage/job 你会如何配置它?

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

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

最适合我的解决方案是使用脚本来决定要做什么。因此,我创建了脚本任务,而不是 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提供的变量。