2016-08-12 2 views
0

새 VSTS 배포시 빌드 시간을 줄이려고했지만 문제가 발생했습니다. 빌드 및 테스트가 필요한 곳에서 게이트 배포를하고 싶습니다. 배포를 성공적으로 수행 할 수는 있지만 인프라 때문에 msbuild를 배포 플래그와 함께 사용해야합니다.Visual Studio Team Services 테스트 할 빌드 2 개를 피하십시오.

현재 빌드 단계는 플래그를 사용 /p:AllowUntrustedCertificate=True /p:DeployOnBuild=true /p:PublishProfile="$(PublishProfileName)" /p:Username=$(UserName);Password=$(Password) /p:EnableMSDeployAppOffline=true

현재 아키텍처 :

Step 1: Nuget Restore (3s) 

Step 2: Build/Deploy Solution (50s) 

Step 3: Other Deploy Tasks (102s) 

원하는 아키텍처 :

Step 1: Nuget Restore 

Step 2: Build Solution 

Step 3: Run Tests 

Step 4: Deploy built solution 

Step 5: Other Deploy Tasks 

은 기본적으로 내가 어디에 두 배 50이 발생하지 않으 I 필요는 없지만 flag/p : DeployOnBuild를 사용할 때 msbuild가 다르게 수행하고 있는지 알 수 없습니다.

답변

1

/p : DeployOnBuild의 인수는 빌드 성공 후 프로젝트를 배포하기위한 것입니다. 빌드간에 차이점이 없으면 게시/배포하십시오.

4 단계에서 빌드하는 데 50 초의 시간이 걸리지 않으며 파일이 수정되었는지 아닌지 확인하고 그렇지 않은 경우 결과가 최신이므로 빌드가되지 않습니다. 다시 프로젝트하므로 50 초의 추가 시간이 필요하지 않습니다. 그것에 대해 걱정하지 마십시오. 구성 및 플랫폼이 동일한 지 확인하십시오.

한편, baywet의 제안은 4 단계와 5 단계로 나누는 것이 좋습니다.

+0

글쎄, 그건 내가 바보가되는 것 같아! 방금 해봤 으면 좋았을 텐데! –

1

원하는 아키텍처의 4 단계와 5 단계를 릴리스 정의로 분할해야한다고 생각합니다.
이 방법이 가장 좋은 방법 일뿐만 아니라 빌드 (1 단계, 2 단계 및 3 단계)가 성공적 일 때 두 번째 부분이 실행되도록하여 시간을 절약 할 수 있습니다.
수동 트리거를 피하고 시간을 절약하기 위해 빌드가 성공하면 자동으로 트리거되도록 릴리스를 구성 할 수 있습니다.
두 개의 테스트 프로젝트/카테고리간에 테스트를 나눌 수도 있습니다. 테스트 작업을 필요로하는 순간에만 대상으로 삼아 테스트 작업을 세밀하게 조정할 수 있습니다.
도움이 되길 바랍니다

관련 문제