2017-10-15 3 views
1

マイクロサービスアーキテクチャを採用しているうちに、非常に同じ構造のプロジェクトが多数あることがわかりました。VSTSで一般的なビルドとリリースを作成する方法

.Netと.Netコアプロジェクトがより具体的になり、そのほとんどはAzure App Services(Web Apps)として公開されています。

今日、プロジェクト/アプリケーションごとにビルド定義とリリース定義を構成する必要があります。

1つのビルド定義と1つのリリース定義のみを持つ方法はありますか?チェックイン、特定のプロジェクトをビルドしたり、特定のアプリケーションサービスに公開するリリースを作成したりできますか?

ありがとうございました

答えて

1

はい、可能です。異なるタイプのプロジェクトを別々にビルド/デプロイするためにビルドとリリースの定義を行うことができます。以下のように

root 
    |___ .git  
    |___ dotnetProject 
      |___ dotnetProject.sln 
      |___ dotnetProject 
         |___ dotnetProject.csproj 
         |___ … 
    |___ dotnetCoreProject 
      |___ dotnetCoreProject.sln 
      |___ dotnetCoreProject 
         |___ dotnetCoreProject.csproj 
         |___ … 

は詳細setps:

あなたがGitのレポに2つのプロジェクトを持っていると仮定し

  1. をビルドし、ビルドとリリースの定義では、あなたのプロジェクトのために展開するために必要なすべてのタスクを追加します。
  2. 2つの変数dotnetdotnetCoreを、ビルドとリリースの定義に別々にデフォルト値0で定義します。
  3. 異なる種類のプロジェクトに対してビルド/デプロイする必要があるタスクのカスタム条件を設定します。 enter image description here

  4. タスクカスタム条件の下に使用し、.NETのコアプロジェクトの展開/構築するために::、.NETプロジェクトの展開/カスタムビルド条件の下に使用するタスクの場合

    • enter image description here
  5. PowerShellタスクを追加して、CIビルド用に変更されたプロジェクトを検出します。

    タスクの先頭にPowerShellタスクを追加し、最後にコミットによって変更されたファイルを確認します。 .NETプロジェクトが変更されている場合は、値1の変数dotnetを設定し、内容1のファイルdotnetを作成します。 .NETコアプロジェクトが変更された場合は、変数dotnetCoreを値1に設定し、内容1のファイルdotnetCoreを作成します。

    注:あなたがファイルに基づいてリリース定義でdotnetdotnetCore変数の値を解析する必要があるので、あなたはまた、ビルドの成果物として、ファイルdotnetdotnetCoreを公開すべきです。

  6. dotnetdotnetCoreのファイルに基づいて変数値をdotnetdotnetCoreに変更します。

    リリース定義の冒頭で、PowerShellタスクを追加します。ファイルdotnet/dotnetCoreがビルド成果物に含まれているかどうかを確認する。存在する場合は、ファイルの内容に基づいて関連する変数を変更します。

+0

こんにちはマリアナ!とても興味深い。しかし、この場合、1つのビルド定義だけを持つチームプロジェクト内にプロジェクトを構築し、1つのリリース定義を使用するアプリケーションサービスをすべて削除する必要があります。このリリース定義は、生成された成果物を識別し、出来ますか?あなたのexempleのような変数を使用している可能性がありますか?ありがとう –

+0

はい、その例を達成することができます。さまざまなカスタム条件で複数のAzure App Service Deployタスクを追加するだけで済みます。カスタム条件のみが満たされている場合、タスクが実行されます。 –

+0

いくつかのテストを実行できます。ありがとうございました!!! –

関連する問題