演習 - パッケージに変更をプッシュする

完了

この時点で、2 つのパイプラインがあります。 モデル パッケージが Azure Artifacts に発行されます。 もう 1 つは Space Game Web アプリ用です。 Web アプリのビルド構成は、モデル クラスにアクセスできるように Models パッケージを参照します。

ここでは、Models パッケージを更新し、その変更を Web アプリから使用する方法を示します。

そのためには、まずいずれかのモデル クラスにプロパティを追加してから、パッケージのバージョンをバンプします。 次に、パイプラインがパッケージをビルドして Azure Artifacts に発行できるように、変更を GitHub に送信します。

次に、追加されたプロパティを使用できるように、Models パッケージの新しいバージョン番号を参照するように Web アプリを更新します。

分岐を作成する

まず、作業内容を保持するためのブランチを作成します。 add-game-style ブランチに基づいて、mainという名前のブランチを作成します。

この時点で、Visual Studio Code の 2 つのコピーが開いています。1 つは Tailspin.SpaceGame.Web.Models プロジェクト用で、1 つは Space Game Web アプリ プロジェクト Tailspin.SpaceGame.Web 用です。 Tailspin.SpaceGame.Web.Models プロジェクトのコピーから作業します。

  1. Visual Studio Code から、統合ターミナルを開きます。

  2. add-game-styleという名前のブランチを作成するには、ターミナルで次の git checkout コマンドを実行します。

    git checkout -B add-game-style
    

Models パッケージにプロパティを追加する

Scoreという名前のプロパティをいずれかのモデル クラスに追加します。このクラスは、スコアが関連付けられているゲーム スタイルまたは難易度を提供します。

Tailspin.SpaceGame.Web.Models プロジェクトの Visual Studio Code のコピーから作業します。

  1. Visual Studio Code から Tailspin.SpaceGame.Web.Models/Models/Score.cs を開きます。 次の強調表示されたプロパティを、既に存在するプロパティの一覧に追加します。

    using System.Text.Json.Serialization;
    
    namespace TailSpin.SpaceGame.Web.Models
    {
        public class Score : Model
        {
            // The ID of the player profile associated with this score.
            [JsonPropertyName("profileId")]
            public string ProfileId { get; set; }
    
            // The score value.
            [JsonPropertyName("score")]
            public int HighScore { get; set; }
    
            // The game mode the score is associated with.
            [JsonPropertyName("gameMode")]
            public string GameMode { get; set; }
    
            // The game region (map) the score is associated with.
            [JsonPropertyName("gameRegion")]
            public string GameRegion { get; set; }
    
            // The game style (difficulty) the score is associated with.
            [JsonPropertyName("gameStyle")]
            public string GameStyle { get; set; }
        }
    }
    

    バージョン番号を上げる場所を示すために、プロジェクト内のファイルに変更を加えます。 ただし、新しいプロパティを使用するように Web アプリを更新しないでください。

  2. ファイルを保存します。

  3. 作業内容を確認するには、プロジェクトをビルドします。

    dotnet build --configuration Release
    

    実際には、テストの実行や、それを使用するアプリを使用した新しいパッケージのテストなど、より多くの検証手順を実行できます。

パッケージをビルドして発行する

Score クラスに新しいプロパティを追加し、プロジェクトのビルドが正常に完了したことを確認したら、パッケージのバージョンを更新できます。 その後、変更を GitHub にプッシュして、Azure Pipelines が更新されたパッケージをビルドして発行できるようにします。

  1. azure-pipelines.ymlを開き、minorVersion0 から 1 に変更して、ファイルを保存します。

    minorVersion: '1'
    

    ここでは、バージョンを 1.0.0 から 1.1.0 に変更を明確にします。 実際には、使用しているパッケージの種類のバージョン管理スキームに従います。

    たとえば、セマンティック バージョン管理によると、マイナー バージョンを 1 (1.1.0) に変更すると、パッケージがそのパッケージのバージョン 1.0.0 を使用するアプリと下位互換性があることを他のユーザーに通知します。 パッケージを使用するユーザーは、新しい機能を利用するようにアプリを変更する場合があります。

    一般的なオープンソース プロジェクトでは、各バージョンで行われた変更と、メジャー バージョンから次のメジャー バージョンへの移行方法を説明する 変更ログ の形式でドキュメントが提供されます。

  2. 変更をステージングし、コミットし、プッシュすることを行います。

    git add .
    git commit -m "Add GameStyle property"
    git push origin add-game-style
    
  3. Microsoft Azure Pipelines から Tailspin.SpaceGame.Web.Models プロジェクトに移動し、ビルドの実行を確認します。

  4. [成果物] タブ 開き、新しいバージョンをメモします。 ご安心ください;古いバージョンは、まだそれを参照しているプロジェクト用に残っています。

    Azure Artifacts のパッケージのスクリーンショット。パッケージのバージョン 1.1 が示されています。

  5. 前に行ったように、次のユニットの新しいバージョンを書き留めておきます。

Models パッケージの新しいバージョンを参照する

次に、 Tailspin.SpaceGame.Web プロジェクトを変更して 、Tailspin.SpaceGame.Web.Models パッケージの新しいバージョンを使用します。

ここでは、 Space Game Web アプリ プロジェクト Tailspin.SpaceGame.Web の Visual Studio Code のコピーから作業します。

  1. Visual Studio Code から Tailspin.SpaceGame.Web.csproj を開き、 PackageReference を Azure Artifacts で作成した Tailspin.SpaceGame.Web.Models パッケージのバージョン番号に変更します。 その後、ファイルを保存します。

    次に例を示します。

    <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.1.0-CI-20210528-202436" />
    

    Visual Studio Code からパッケージの復元を求められた場合は、そのメッセージを無視しても問題ありません。 簡潔にするために、Web アプリはローカルにビルドしません。

  2. ターミナルから、変更をステージ、コミット、プッシュします。

    git add .
    git commit -m "Bump Models package to 1.1.0"
    git push origin models-package
    
  3. Azure Pipelines から mslearn-tailspin-spacegame-web プロジェクトに移動し、ビルドの実行を確認します。

    ビルド出力から、最新の依存関係を取得し、アプリをビルドし、Web アプリの成果物を発行していることがわかります。