2017-07-04 16 views
0

VSTSのチームプロジェクトから特定のフォルダをダウンロードし、それを構内サーバーにコピーします。私はvstsエージェントをセットアップして、 "Windows Machine File Copy"を使用してファイルを正常にコピーできますが、問題はエージェントがルートから始まるチーム全体のプロジェクトをダウンロードすることです。VSTS Release Managerは特定のファイルのみをコピーします

アーティファクトでは、アーティファクトソースとのリンクを選択し、タイプでTeam Foundation Version Controlを選択します。ソース(リポジトリ)の下では、ドロップダウンリストでチームプロジェクト$/myTeamProjectのみを選択できます。私は$/myTeamProjet/Main/subfolderのようなVSTSのパスを提供することができません。

これは間違ったアプローチですか?基本的に私のチームプロジェクトのサブフォルダからいくつかのファイルをVSTSにコピーして、ルートフォルダ全体($/myTeamProject)からすべてをダウンロードすることなく、構内マシンにコピーしたいと考えています。ファイルをコピーするシングルタスクでリリースを起動すると、永遠にかかる。エージェントはどのようにしてルートフォルダ全体ではなく特定のフォルダだけをマッピングできますか?

答えて

0

私の意見は、それが大きなアプローチではないということです。あなたのビルドは、が静的​​であるパイプラインを通じて展開するときにのままになる展開可能なビットのフルセットを表すアーティファクトのセットを公開している必要があります。

このシナリオを考えてみましょう:Dev - > QA - > Prodに行くパイプラインが定義されたリリース定義があります。

Devにデプロイします。あなたのリリース定義はChangeet 1234をソース管理から引き出します。

数時間後、QAにデプロイします。あなたのリリースの定義はChangeset 1234を参照してください。

誰かがソースコードを変更しました。あなたはProdに展開します。あなたのリリースの定義は、Changeset 123 に入っています。今では、低い環境でテストされていないものをいくつか配置しています。あなたは、問題の可能性を大幅に高めました。

古いバージョンを再配布してバグを再現したい場合は、同じシナリオが適用されます。

要するに、そのフォルダをビルドプロセスの一部としてアーティファクトとして公開します。

+0

私はあなたのことを理解していますが、私はVSTSには何も構築していません。私は、特定のサブフォルダに複数のファイルを含む特定のフォルダを持っているだけで、時折、いくつかの前提マシンにコピーできるようにしたいと思っています。関係する建物はありません。私はちょうど全チームプロジェクトと私がリリースを引き起こすすべてのファイルを取得したくありません。私はVSTS内の特定のフォルダを選択することができず、エージェントを作業フォルダとしてマップし、それらのファイルだけを取得させます。 –

+1

最良の方法は、アーティファクトソースとしてビルドを使用することです。ビルドは、ソースコードを同期して特定のフォルダをアーティファクトとして公開することだけで構いません。 –

+0

私はあなたが示唆したようにそれは働いた。ヘルプのThx –

0

リリース定義では、アーティファクトからダウンロードするファイルの一部を指定することはできません(アーティファクトソースリンクは、ビルド定義からアーティファクトを選択するためのものです)。

ただし、Windows Machine File Copyタスクでコピーするファイルを指定することができます。 Windowsマシンファイルコピーのソースオプションには、コピーするサブフォルダ($(System.DefaultWorkingDirectory)/BuildDefinition/drop/Main/subfolderなど)を指定できます。

enter image description here

関連する問題