2017-01-06 19 views
1

2つのビルドタスクを持つVSTS拡張があります.1つのビルドタスクはVSTSとTFSの両方で使用できます。もう1つはTFSのみです。拡張マニフェストを介して各ビルドタスクに対してこれを設定することは可能ですか?ビルドタスクをTTSではなく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には、この拡張機能がTeam Services(targets = Microsoft.Visualstudio.Services.Cloud)でのみ使用可能であることが示されます。

+0

2つの拡張を作成することを意味します。一つは、VSTSのビルドタスクだけを含むMS.VS.Sevices.Cloudに 'targets'を設定し、もう一つのビルドを含むMS.VS.Servicesに' targets'を設定したもう一つの拡張子タスクはTFSとVSTSの両方で利用できますか? –

+0

@Cece:これは、VSTSにのみ拡張機能を制限します。私の要件は、VSTSとTFSの両方をサポートする必要がある一方で、VSTSに制限することです。ありがとう。 – Bandara

+0

@ルーカカッパ、はい、そうです。あなたの説明をありがとう。 –

0

拡張マニフェストファイルでこれを達成する方法はありません。良い解決策は、jessehouwingと同じです:2つのビルド・タスクを1つに結合し、ビルド・タスクを実行するときにユーザーがビルド環境を選択または検出できるようにビルド設定でオプションを指定します。 TFSが選択または検出された場合は、2つのビルドタスクでコードを実行します。それ以外の場合は、最初のビルドタスクでコードを実行します。

+0

ありがとうございます。私はロジックの周りにワーカーを追加しました。 – Bandara

関連する問題