2017-01-06 7 views
1

두 가지 빌드 작업이있는 VSTS 확장이 있습니다. 하나의 빌드 작업은 VSTS와 TFS에서 모두 사용할 수 있어야하고 다른 작업은 TFS에서만 사용할 수 있어야합니다. 확장 매니페스트를 통해 각 빌드 작업에 대해이 기능을 구성 할 수 있습니까?빌드 작업을 TFS가 아닌 VSTS로 제한하는 방법

+1

나는 가능하지 않다고 생각하는데 왜 2 가지 작업이 필요합니까? 다른 작업이 필요하다는 점에있어 특별한 점은 구현시 TFS/VSTS를 감지 할 수 있고 단일 작업을 제공 할 수 있다고 생각됩니다. – jessehouwing

답변

1

메시지를 표시하고 TFS에서 빌드를 중단하려면 다음 해결 방법을 사용했습니다.

var collectionUrl = process.env["SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"]; 
var regExpression = new RegExp("^((https?)\:\/\/)(([a-z0-9])+\.)*(visualstudio\.com)"); 
if(regExpression.test(collectionUrl)) 
{ 
    //VSTS Detected 
} 
else 
{ 
    //Display message task not compatible with TFS 
    //Fail the build 
} 
+0

답변으로 표시 할 수 있습니다. –

0

extension manifest은 팀 서비스 (targets = Microsoft.Visualstudio.Services.Cloud)에서만 확장 기능을 사용할 수 있음을 나타냅니다.

+0

두 개의 확장, 즉 VSTS에 대한 빌드 작업 만 포함하는 MS.VS.Sevices.Cloud로 설정된 '대상'집합과 다른 대상이 포함 된 MS.VS.Services로 설정된 '대상'집합의 다른 확장명을 만드는 것을 의미합니까? 작업은 TFS와 VSTS 모두에서 사용할 수 있습니까? –

+0

@Cece : 이것은 VSTS로만 확장을 제한합니다. 나의 요구 사항은 하나의 빌드 작업을 VSTS로 제한하고 다른 작업은 VSTS와 TFS를 모두 지원해야합니다. 감사. – Bandara

+0

@ 루카 카파, 그래, 그게 무슨 뜻이야. 당신의 설명에 감사드립니다. –

0

확장 매니페스트 파일을 통해이를 수행 할 수있는 방법이 없습니다. 좋은 해결 방법은 jessehouwing이 언급 한 것과 같습니다. 두 빌드 태스크를 하나로 결합하고, 빌드 태스크를 실행할 때 사용자가 빌드 환경을 선택하거나 감지 할 수 있도록 빌드 설정에서 옵션을 제공하십시오. TFS가 선택되거나 감지되면 두 빌드 태스크에서 코드를 실행하십시오. 그렇지 않으면 첫 번째 빌드 태스크에서 코드를 실행하십시오.

+0

감사합니다. 에디. 논리를 중심으로 작업자를 추가했습니다. – Bandara