2017-09-28 6 views
0

vsts에서 단일 커밋 내에서 빌드 순서/우선 순위를 설정할 수 있는지 궁금합니다. 나는 여러 프로젝트와 솔루션 (하나의 저장소)가VSTS - 단일 자식 커밋 내에서 빌드 순서

:

오전 데 시나리오는 이것이다.

  • 제작사
  • Subscriber1
  • Subscriber2
  • 메시지

이들 각각 (메시지를 기대) (지속적인 통합)를 각각의 프로젝트에 패스 필터를 하나의 빌드 정의가, (연속 배포 트리거)가 해제되고 거기에서 초기화됩니다.

프로젝트가 서로 의존하지 않고 통신에 사용되는 메시지를 기대합니다.

게시자 프로젝트와 구독자 프로젝트를 변경 한 다음 커밋하면 게시자 프로젝트를 먼저 빌드하고 릴리스하고 싶습니다.

구독자가 구독하려는 새로 만든 메시지가있는 경우 게시자가 지금 필요합니다.

그런 것이 가능합니까?

답변

1

VSTS는 동일한 코드에 의해 트리거 된 CI 빌드의 순서를 지정할 수 없습니다.

나는 사용자의 목소리 Specify queue builds order if there has multiple CI builds are triggered by the same code을 게시 했으므로 투표하고 후속 조치를받을 수 있습니다.

지금, 당신은 해결 방법을 아래에 사용할 수 있습니다

  1. 빌드를 모든 프로젝트에 대해서만 특정 프로젝트 (게시자 또는 가입자)

    에 대한 변경이있는 경우에도 당신을 위해 괜찮아요 경우 프로젝트에 대해서만 변경 사항이 있어도 모든 프로젝트를 빌드하려면 빌드 정의를 정의하여 그 안에있는 모든 프로젝트를 빌드 할 수 있습니다. 그런 다음이 빌드를 CI 빌드로 사용하여 여러 CI 빌드를 대체하십시오. 모든 관련 작업

    당신은 여전히 ​​하나의 빌드 정의에 모든 작업을 정의하고, 두 변수 publisher 및 기본 값 0subscriber를 추가 할 필요가

    에 대한

  2. 설정 사용자 지정 조건.

    빌드 시작 부분에 PowerShell 작업을 추가하여 어떤 프로젝트가 변경되었는지 확인하십시오. 게시자 프로젝트가 변경된 경우 값이 1publisher 변수를 설정하십시오. 구독자 프로젝트가 변경된 경우 값 1subscriber을 변수로 설정하십시오.

    그런 다음 관련 프로젝트에 대해서는 ustom conditions을 사용하십시오. 예를 들어 게시자 프로젝트 작업을 빌드하는 경우 사용자 지정 조건 : and(succeeded(), eq(variables['publisher'], '1'))을 사용합니다.publisher 변수가 1

    enter image description here

    는 다음 작업에만 실행됩니다. 사용자 지정 조건을 사용하는 방법으로 this post을 참조 할 수도 있습니다.

+0

답장을 보내고 Thumb을 많이 배웠습니다. 내 현재 "해결 방법"은 게시자가 build-def-ID가 가장 낮은 build-def-id를 갖도록 보장하는 것입니다. vst는 항상 커밋 내에서 가장 낮은 ID에서 가장 높은 ID로 빌드됩니다. –

0

해결 방법은 지속적인 통합에 의해 트리거 될 당신의 우선 순위 빌드를 설정하는 것입니다 나머지는 에 롤링 모드를 기반으로 트리거. 롤링 빌드는 시작하기 전에 CI를 기다립니다.

+0

공유를위한 Thx이지만 변경된 곳 (예 : 게시자가 변경 사항이없고 트리거되지 않은 경우)에서만 구독자가 작동합니까? –