竹选择性分支部署
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提供的变量。
我正在使用 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提供的变量。