練習 - 將變更推送至您的套件

已完成

此時,您有兩個管線。 一個管線將模型套件發佈至 Azure Artifacts,另一個管線則用於 Space Game Web 應用程式。 Web 應用程式的組建組態會參考模型套件,使其可存取模型類別。

您會在這裡練習更新模型套件,並從 Web 應用程式取用該變更。

若要這樣做,請先將屬性新增至其中一個模型類別,再提高套件版本。 然後,您會將變更提交至 GitHub,讓管線可以建置套件,並將其發佈至 Azure Artifacts。

您會更新 Web 應用程式來參考較新版本號碼的模型套件,好讓其可以使用新增的屬性。

建立分支

讓我們開始建立分支來保存工作。 建立名為 add-game-style 的分支,其以 main 分支為基礎。

此時,您已開啟兩個 Visual Studio Code 複本,一個用於 Tailspin.SpaceGame.Web.Models 專案,另一個用於 Space Game Web 應用程式專案 Tailspin.SpaceGame.Web。 在這裡,您將使用 Tailspin.SpaceGame.Web.Models 專案的複本。

  1. 從 Visual Studio Code 開啟整合式終端機。

  2. 從終端執行下列 git checkout 命令來建立名為 add-game-style 的分支。

    git checkout -B add-game-style
    

將屬性新增至模型套件

將名為 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 版的應用程式回溯相容。 使用套件的人員可能會修改其應用程式,以利用新功能。

    熱門的開放原始碼專案以 changelog 的形式提供文件,說明每個版本中所做的變更,以及如何從一個主要版本移轉到下一個主要版本。

  2. 暫存、認可和推送變更:

    git add .
    git commit -m "Add GameStyle property"
    git push origin add-game-style
    
  3. 從 Microsoft Azure Pipelines,前往 Tailspin.SpaceGame.Web.Models 專案,然後監看組建執行。

  4. 開啟 [成品] 索引標籤,並記下新版本。 別擔心;對於任何仍然參考舊版本的專案,您的舊版本仍在那裡。

    A screenshot of the package in Azure Artifacts, showing version 1.1 of the package.

  5. 如同您先前所做的,為下一個單元寫下新的版本。

參考模型套件的新版本

現在,變更 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 應用程式的成品。