特定のビルドセットを既存のVisual Studio Team Serviceプロジェクトから新しいプロジェクトに移動しています。残念ながら、ビルド定義をプロジェクト間で移行する方法が見つかりません。インポート/エクスポート機能や他のメカニズムはないようです。
新しいプロジェクトでビルドを手動で再作成せずにこれらを移動する方法はありますか?
これは、VSTSビルド定義Web UI内から利用できるようになりました。
。
Visual Studio Marketplaceに Export/Import Build Definition 拡張機能があり、現在使用できます。
次のようなことができます:
$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:プロジェクト間でビルドテンプレートを共有https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/8468566-vso-build-vnext-share-build-templates-between-pro
ただし、APIを使用して実現できます。これが シンプルなツール です。 (同じチームプロジェクトコレクションに属している必要があります。)
REST APIを使用してこれを実行できます。 ここに示されている例 があります。
ビルド定義のJSON応答を取得する方法と、同じ参照を使用して目的のプロジェクトで新しい参照を作成する方法を示します。
に
(...を介して)ソースプロジェクトのエクスポートで、各ビルド定義
宛先プロジェクトのビルド定義のフォルダービューで、[新規]> [1つインポート]を調整します。エージェントプールのリポジトリパス(後でインポートを保存するときに確認します)
正常にインポートされたビルド定義をエクスポートします