特定のビルド セットを既存の Visual Studio Team Service プロジェクトから新しいプロジェクトに移動しています。残念ながら、あるプロジェクトから別のプロジェクトにビルド定義を移行する方法が見つかりません。インポート/エクスポート機能やその他のメカニズムはないようです。
新しいプロジェクトでビルドを手動で再作成せずにこれらを移動する方法はありますか?
特定のビルド セットを既存の Visual Studio Team Service プロジェクトから新しいプロジェクトに移動しています。残念ながら、あるプロジェクトから別のプロジェクトにビルド定義を移行する方法が見つかりません。インポート/エクスポート機能やその他のメカニズムはないようです。
新しいプロジェクトでビルドを手動で再作成せずにこれらを移動する方法はありますか?
Visual Studio Marketplace には、すぐに使用できるエクスポート/インポート ビルド定義拡張機能があります。
次のようなことができます。
$project1Url = "http://tfs:8080/tfs/collection/project1/_apis/build/definitions/$($buildId)?api-version=2.0"
$obj = Invoke-RestMethod -Uri $project1Url -Method Get -ContentType "application/json" -UseDefaultCredentials
$obj.project = $null
#TODO: Update all repository/source control info, too.
$json = ConvertTo-Json $obj -Depth 3
$project2Url = "http://tfs:8080/tfs/collection/project2/_apis/build/definitions/?api-version=2.0"
Invoke-RestMethod -Uri $url -Method Post -Body $json -ContentType "application/json" -UseDefaultCredentials
要点は次のとおりです: ソース プロジェクト (projec1) から既存の定義を取得し、プロジェクトの関連付けをクリアし、必要に応じて新しいリポジトリ情報を設定し、新しい定義をPOST (CREATE) としてターゲット プロジェクト (project2) に送信します。
チーム プロジェクト間で vnext ビルド定義テンプレートをコピーまたは同期する方法はありません。ビルド定義テンプレートは、現在のチーム プロジェクト専用です。そのため、チーム プロジェクトごとにビルド定義テンプレートを作成する必要があります。
また、UserVoiceに機能リクエストがありました。投票して監視することができます
VSO ビルド vnext: プロジェクト間でビルド テンプレートを共有 する
ただし、API を使用して実現できます。ここでは、簡単に使用できるツールを紹介します。(同じチーム プロジェクト コレクションにある必要があります。)
これを実行するには、REST API を使用できます。ここに例を示します。
ビルド定義の JSON 応答を取得し、同じ参照を使用して、必要なプロジェクトで新しい参照を作成する方法を示します。
の
ソースプロジェクトのエクスポートで(...を介して)各ビルド定義
宛先プロジェクトのビルド定義のフォルダー ビューで、[新規] -> [1 つインポートして調整]: エージェント プール リポジトリ パス (インポートを保存するときに後で確認します)
正常にインポートされたビルド定義をエクスポートする