web-dev-qa-db-ja.com

複数のリポジトリからのVSTSビルド

TFVCに1つ、Gitに2つのリポジトリがあります。それらを分離しておく特定の技術的な理由があります。

TFVCのコードはプライベートビルドエージェントでビルドされ、Gitのコードはホストされたエージェントでビルドされます。そのため、現在2つの独立したビルドがあり、それらの結果はリリース定義に一緒にデプロイされます。

両方のリポジトリからソースを取得できるビルドを作成して、単一のビルド定義を管理できるようにすることを検討しています。

これを達成する方法はありますか?

12
Kangkan

現時点では、「ソースの取得」ステップで複数のリポジトリを指定する方法はありません。そして、ユーザーの声があります TFSビルドが複数のリポジトリに依存することを許可します これは同様の機能を示唆し、投票してフォローアップすることができます。

現時点での回避策は、他のリポジトリからファイルを手動で取得することです

たとえば、[ソースの取得]ステップでTFVCリポジトリを指定した場合、タスクの先頭にPowerShellタスクを追加し、他のgitを複製できます。 git clone <repo URL>などによるレポ.

14
Marina Liu

TFVC

また、マリーナの答えの逆も可能です。デフォルトでビルド定義をGitにバインドしたら、PowerShellスクリプトを追加してワークスペースをマップし、ソースを取得できます。

tf workspace /new /noprompt /location:local /permission:private <name>
tf workfold /map $/Server/Path "$(Agent.BuildDirectory)\tfvc" /workspace:<name>
tf get "$(Agent.BuildDirectory)\tfvc"

そして、「常にタスクを実行」を追加して、後でワークスペースをクリーンアップします。

tf workspace /delete <name>
rd /s /q "$(Agent.BuildDirectory)\tfvc"

アーティファクトをダウンロードする

もう1つのオプションは、アーティファクトのダウンロードタスクを使用して、次の拡張機能からアーティファクトをダウンロードすることです: リリース管理用のTFSアーティファクト

または、VSTSに付属するアーティファクトのダウンロードタスク(ダウンロードにはビルド定義へのリンクが必要です)。つまり、ソースをビルドするGitまたはTFVCのいずれかでCIビルドを作成するか、単にソースディレクトリをアタッチします。 「その他」のビルドでそれらを取得します。

5
jessehouwing

実際に両方のリポジトリを同時にビルドし、ビルドアーティファクトを一緒に取得したいですか?または、同じ定義を使用して異なるソースをターゲットにしたいだけですか?

本当に最初のものが必要な場合は、他の回答が指摘しているように、ビルド中にソースの取得をスクリプト化できます。ただし、ホストでGitを構築し、プライベートでTFVCを構築することが厳しい要件である場合、両方のソースセットを同時に構築すると失敗します。

共通のタスクで Task Group を作成することをお勧めします。次に、タスクグループを参照する個別のビルド定義を作成します。

3
Brian Cristante