2015-01-06 3 views
4

저는 Bamboo를 사용하며 master뿐만 아니라 branch1과 branch2의 두 가지 분기를가집니다.대나무 선택 분기 배포

마스터를 빌드하면 예상되는 결과물이 넥서스 저장소에 배치됩니다. 그러나, 내가 지사를 만들 때 그들은 또한 넥서스에 배포됩니다.

내가 원하는 것은 마스터 만이 넥서스에 배포된다는 것입니다.

마스터와 지사 모두 동일한 단계/작업을 사용하므로 어떻게 구성합니까? 우리가 가지 변수를 사용하여 관련 솔루션에 정착 결국 https://confluence.atlassian.com/display/BAMBOO/Deployments+from+branches#Deploymentsfrombranches-Automatedbranchdeployment

답변

4

-

+0

어떻게 다른 지점에 다른 변수 값을 설정합니까? 해당 기능이 설명서에 설명되어 있지 않습니다. – Mzzzzzz

+0

분기 계획 자체에서 변수를 무시할 수 있습니다. 주 브랜치의 변수를 오버라이드 할 수 없으므로 배포하려는 플랜 브랜치로 변환해야합니다. – john16384

3

당신은 자동으로 여기에 문서화 배포를 설정할 때 배포 된 지점을 선택 할 수 있어야한다. 이것들을 사용하여 값을 maven 타겟, 즉 mvn clean $ {bamboo.variableName}으로 삽입 할 수 있습니다. 기본적으로 변수의 값은 install이지만 Bamboo의 master 브랜치는 변수를 무시하고 배포하도록 설정합니다. 마스터가 빌드, 테스트 및 배포하는 반면,이 방법은 모든 브랜치를 빌드하고 테스트합니다.

+0

흠, 내가 잘못하지 않았다면 배포 프로젝트를 사용해야합니다. Nexus에 배포하는 데만 관심이 있으므로 여기에 배치하기 위해 배포 프로젝트를 설정하는 것이 옳지 않다고 생각합니다. 배포 프로젝트를 사용하지 않고 가능한지 궁금합니다. –

+0

그렇습니다. Nexus를 사용하지 않았으므로 워크 플로가 무엇인지 잘 모르겠습니다 만 최종 단계의 배포 프로젝트를 고려해 볼 가치가 있습니다. Bamboo는 빌드와 배포를 분리하려고 시도합니다. 그래서 다른 곳에서 (또는 새로운 환경으로) '배포'해야한다면 쉽게 관리 할 수 ​​있습니다. - [docs] (https://confluence.atlassian.com/display/BAMBOO/Deployment+ 프로젝트). 내가 말했듯이, 그것은 넥서스 워크 플로우에 즉각적으로 맞지 않을 수도 있지만, 단지 프로젝트를 빌드 할 때 얻은 결과를 얻지 못할 것이라고 생각합니다. –

+0

오, 오케이, 제안 주셔서 감사합니다. Nexus는 인위적인 저장소입니다. Maven을 사용하여 프로젝트를 빌드 한 다음 생성 된 JAR 파일을 다른 사람이 가져 와서 프로젝트에서 사용할 수 있도록 인공물을 저장하는 Nexus 서버에 업로드합니다. 이 점을 염두에두고 배포 프로젝트는 상당히 비중있는 것 같습니다. 그럼에도 불구하고 그 가능성을 알게 된 점은 무엇입니까 –

1

나를 위해 가장 잘 맞는 해결책은 스크립트를 사용하여 수행 할 작업을 결정하는 것이 었습니다. 대신 받는다는 작업의 그래서, 나는 스크립트 작업을 생성하고 분기가 건설되고 기반으로 실행할 명령을 결정했다 :

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는 대나무에서 제공하는 변수입니다.

+0

이 스크립트의 상당수 복제본을 얻었습니다. 제 경우에는 배치가 좀 더 복잡하기 때문에이 스크립트를 9 번 사용했습니다. – Qw3ry