web-dev-qa-db-ja.com

Visual Studio Team Serviceビルドを新しいプロジェクトにコピーするにはどうすればよいですか?

特定のビルドセットを既存のVisual Studio Team Serviceプロジェクトから新しいプロジェクトに移動しています。残念ながら、ビルド定義をプロジェクト間で移行する方法が見つかりません。インポート/エクスポート機能や他のメカニズムはないようです。

新しいプロジェクトでビルドを手動で再作成せずにこれらを移動する方法はありますか?

19
jlo

これは、VSTSビルド定義Web UI内から利用できるようになりました。

VSTS Export and clone

16
marv

Visual Studio Marketplaceに Export/Import Build Definition 拡張機能があり、現在使用できます。

13

次のようなことができます:

$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)に。

4
Codingrunr

チームプロジェクト間でvnextビルド定義テンプレートをコピーまたは同期する方法はありません。ビルド定義テンプレートは、現在のチームプロジェクト専用です。したがって、チームプロジェクトごとにビルド定義テンプレートを作成する必要があります。

また、UserVoiceに機能のリクエストがあり、投票して監視できます

VSOビルドvnext:プロジェクト間でビルドテンプレートを共有https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/8468566-vso-build-vnext-share-build-templates-between-pro

ただし、APIを使用して実現できます。これが シンプルなツール です。 (同じチームプロジェクトコレクションに属している必要があります。)

3
PatrickLu-MSFT

REST APIを使用してこれを実行できます。 ここに示されている例 があります。

ビルド定義のJSON応答を取得する方法と、同じ参照を使用して目的のプロジェクトで新しい参照を作成する方法を示します。

2
Dhruv Patel

  1. (...を介して)ソースプロジェクトのエクスポートで、各ビルド定義

  2. 宛先プロジェクトのビルド定義のフォルダービューで、[新規]> [1つインポート]を調整します。エージェントプールのリポジトリパス(後でインポートを保存するときに確認します)

  3. 正常にインポートされたビルド定義をエクスポートします

  4. 残りの抽出されたビルド定義を編集し、エージェントプール、リポジトリ、およびパスの値を(最初に正常にインポートされたビルド定義の値で)置き換えます
  5. 残りのビルドをインポートする名前を確認する(-importサフィックスを削除する)エージェントプールを確認するインポートしたビルドを保存するときに、宛先プロジェクトのフォルダービュー内のパスを確認する
0
SCDomingos