如何将构建任务仅限制为VSTS而不是TFS

时间:2017-01-06 05:43:56

标签: tfs azure-devops azure-pipelines-build-task azure-devops-rest-api

我有一个带有两个构建任务的VSTS扩展,一个构建任务应该可用于VSTS和TFS,另一个仅用于TFS。是否可以通过扩展清单为每个构建任务配置它?

3 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:0)

使extension manifest表示该扩展程序仅适用于团队服务(targets = Microsoft.Visualstudio.Services.Cloud)。

答案 2 :(得分:0)

没有任何方法可以通过扩展清单文件实现此目的。一个好的解决方法就像jessehouwing提到的那样:将两个构建任务合并为一个,在构建设置中提供一个选项,让用户在运行构建任务时选择或检测构建环境。如果选择或检测到TFS,请运行两个构建任务中的代码,否则只需在第一个构建任务中运行代码。