web-dev-qa-db-ja.com

VSTS CIパイプラインからソリューション内のプロジェクトごとに個別にアーティファクトを公開する方法は?

私のソリューションには、2つのプロジェクト(Asp.net MVCとWindowsサービス)があります。 CI/CDパイプラインを作成して、異なるVMにWebアプリケーションとWindowsサービスをデプロイしたい。ただし、これを実現するには、CIパイプラインで両方のプロジェクトのアーティファクトを個別に公開し、展開用にこれらのアーティファクトをCDパイプラインでフィードする必要があります。 CIパイプラインですべてのプロジェクトのアーティファクトを個別に公開するにはどうすればよいですか?

PS:それぞれ1つのプロジェクトのみで2つのソリューションを作成し、CI/CDパイプラインを個別に作成すると、すべて正常に動作します。しかし、私は上記のように複数のプロジェクトを持つソリューションでそれを達成したいと考えています。

9
DevX

複数の発行タスクを使用して、単一のビルド定義に複数の成果物を作成できます。

たとえば、_PublishedWebsites\MVS5WebApp(XCopyデプロイ可能なWebサイト)および_PublishedWebsites\MVS5WebApp_Package(Webデプロイパッケージ)で構成される単一プロジェクトの現在のアーティファクトとして、以下があるとします。

Current Artifact

これら2つを2つのアーティファクトに分割する場合、以下に示す2つのアーティファクトの公開タスクを使用できます。各タスクは公開する正確なパスを指定します(このパスはワイルドカードをサポートしません。公開する必要があるフォルダーを指定するだけです) Publish website XCopy deploy content

Publish Web Deploy Package

これにより、次のような出力が得られます。 Two Artifacts

この例では、「成果物の公開」タスクのみを使用し、単一のWebサイトプロジェクトを使用して2つの成果物を作成しました。 2つのプロジェクトシナリオでも同じことができます。公開前にワイルドカードを使用してさらにファイルをフィルタリングする場合は、必要に応じて「ファイルのコピー」タスクを複数回使用できます。

8
ChamindaC

ビルドパイプラインで'。net core'タスクを使用している場合は、コマンドテキストボックスの直後にチェックボックス 'Publish web projects'のチェックを外すを使用します。

次に、ソリューション内のプロジェクトごとに、各プロジェクトファイルと同じ名前のパブリッシュアーティファクトが自動的に作成されます。

2
Ram

それを実現する方法は複数あります。
適切な引数を使用して、ビルドステップのソリューションではなく、プロジェクトを対象とする複数のビルド定義を作成できます。
または、1つのビルド定義に複数のビルドステップを含めることができます。
その後、リリース側では、1つのリリース定義を複数のステップまたは複数のリリース定義で活用できます。

0
baywet