2016-09-30 2 views
4

Visual Studio Team Services을 사용하고 있습니다.Visual Studio Team Services : 여러 분기에 대한 단일 빌드 정의

우리는 Prod-Build-Definition에 의해 빌드되고 Prod-Release-Definition에 의해 테스트/통합 및 프로덕션 환경에 배치되는 Prod-Branch를 보유하고 있습니다.

각 Prod-Release를 고객에게 배포 할 때 Prod-Branch에서 Prod-Rel-Version-x.x.x Branch를 만듭니다 (핫픽스가 필요한 경우).

스프린트 동안 우리는 Dev-Build-Definition에 의해 빌드되고 Developer Test 용 DEV 환경에 우리의 Dev-Release-Definition에 의해 배치 된 Dev-Branch에서 개발하고있다.

스프린트 (또는 수시로) Dev-Branch가 Main-Branch에 병합 된 다음 Prod-Branch에 병합됩니다. 거기에서 그것은 고객이 테스트를 위해 다른 스테이지에 배치됩니다.

핫픽스 - 사례가있는 경우 Prod-Rel-Version-xxx Branch에서 버그를 수정하고 기존의 Prod-Build-Definition을 재사용하여이 Hotfix-Version을 빌드하고 다른 단계에 배포하려고합니다 기존 버전의 Prod-Release-Definition에 의해 테스트되었고이 버전으로 실행되었습니다.

Prod-Build-Definition을이 다른 Branch (Prod-Branch 대신 Prod-Rel-Version-x.x.x Branch)로 어떻게 재사용 할 수 있습니까?

빌드 정의를 보면, 서버 경로 (Repository> Mappings)를 $/NameOfOurApp/Prod에서 $/NameOfOurApp/Prod-Rel-Version-x.x.x)으로 편집하는 것이 가능하다고 생각합니다. 트릭을 수행 할 것인지 말 것인지를 결정해야합니다. 그러나 내가 읽은 바에 따르면 서버 매핑에 Build-Variables를 사용할 수 없으므로이 변수를 Queue new Build Dialog에서 변경할 수는 없습니다 ...

내 시나리오를 수행하는 가장 좋은 방법은 무엇입니까?

+0

이것은 슬픈 일입니다. ("Queue new build dialogue"에서 "branch"를 선택하는 방법이 있어야합니다.) – Vivek

답변

5

이 작업을 수행하는 유일한 방법은 모든 분기를 다운로드하는 단일 빌드 정의를 만드는 것입니다. 그런 다음 태스크의 변수를 사용하여 빌드 할 버전을 선택하십시오. 이것은 매우 지저분해질 것입니다.

대신 빌드 정의를 복제하는 것이 훨씬 쉽습니다. 또는 기존 빌드 정의에서 빌드 정의 템플리트를 작성하고이를 사용하여 새 빌드 정의를 작성할 수 있습니다.

그러나 훨씬 더 나은 해결책은 너무 많은 가지에 의존하지 않는 것입니다. 실제로 핫픽스를 만들어야 할 때만 분기가 필요하며 많은 조사 결과가있을 때 단계 분기 만 필요합니다. 높은 단계. 작업 방식을 향상시킴으로써 지사를 없애고 모든 업무를 단순화 할 수 있습니다.

관련 문제