TFVCに1つ、Gitに2つのリポジトリがあります。それらを分離しておく特定の技術的な理由があります。
TFVCのコードはプライベートビルドエージェントでビルドされ、Gitのコードはホストされたエージェントでビルドされます。そのため、現在2つの独立したビルドがあり、それらの結果はリリース定義に一緒にデプロイされます。
両方のリポジトリからソースを取得できるビルドを作成して、単一のビルド定義を管理できるようにすることを検討しています。
これを達成する方法はありますか?
現時点では、「ソースの取得」ステップで複数のリポジトリを指定する方法はありません。そして、ユーザーの声があります TFSビルドが複数のリポジトリに依存することを許可します これは同様の機能を示唆し、投票してフォローアップすることができます。
現時点での回避策は、他のリポジトリからファイルを手動で取得することです。
たとえば、[ソースの取得]ステップでTFVCリポジトリを指定した場合、タスクの先頭にPowerShellタスクを追加し、他のgitを複製できます。 git clone <repo URL>
などによるレポ.
また、マリーナの答えの逆も可能です。デフォルトでビルド定義を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ビルドを作成するか、単にソースディレクトリをアタッチします。 「その他」のビルドでそれらを取得します。
実際に両方のリポジトリを同時にビルドし、ビルドアーティファクトを一緒に取得したいですか?または、同じ定義を使用して異なるソースをターゲットにしたいだけですか?
本当に最初のものが必要な場合は、他の回答が指摘しているように、ビルド中にソースの取得をスクリプト化できます。ただし、ホストでGitを構築し、プライベートでTFVCを構築することが厳しい要件である場合、両方のソースセットを同時に構築すると失敗します。
共通のタスクで Task Group を作成することをお勧めします。次に、タスクグループを参照する個別のビルド定義を作成します。