練習 - 將變更推送至您的套件
此時,您有兩個管線。 一個管線將模型套件發佈至 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 專案的複本。
從 Visual Studio Code 開啟整合式終端機。
從終端執行下列
git checkout
命令來建立名為add-game-style
的分支。git checkout -B add-game-style
將屬性新增至模型套件
將名為 Score
的屬性新增至其中一個模型類別,該模型類別會提供與該分數相關聯的遊戲風格 (或困難度)。
在這裡,您將使用 Tailspin.SpaceGame.Web.Models 專案的 Visual Studio Code 複本。
從 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 應用程式以使用新的屬性。
儲存檔案。
若要驗證工作,請建置專案:
dotnet build --configuration Release
實際上,您可能會執行額外的驗證步驟,例如執行測試,或透過使用新套件的應用程式來測試新套件。
建置和發佈套件
現在您已將新屬性新增至 Score
類別,並已成功驗證專案組建,您可以更新套件的版本。 然後,您可以將變更推送至 GitHub,讓 Azure Pipelines 可以建置並發佈更新的套件。
開啟 azure-pipelines.yml,將
minorVersion
從0
變更為1
,然後儲存檔案。minorVersion: '1'
在這裡,我們會將版本從 1.0.0 提高至 1.1.0,以使變更清晰可見。 實際上,對於正在使用的套件類型,您會遵循其版本設定配置。
例如,根據語意化版本控制系統,將次要版本提高至 1 (1.1.0),可告知其他人套件與使用該套件 1.0.0 版的應用程式回溯相容。 使用套件的人員可能會修改其應用程式,以利用新功能。
熱門的開放原始碼專案以 changelog 的形式提供文件,說明每個版本中所做的變更,以及如何從一個主要版本移轉到下一個主要版本。
暫存、認可和推送變更:
git add . git commit -m "Add GameStyle property" git push origin add-game-style
從 Microsoft Azure Pipelines,前往 Tailspin.SpaceGame.Web.Models 專案,然後監看組建執行。
開啟 [成品] 索引標籤,並記下新版本。 別擔心;對於任何仍然參考舊版本的專案,您的舊版本仍在那裡。
如同您先前所做的,為下一個單元寫下新的版本。
參考模型套件的新版本
現在,變更 Tailspin.SpaceGame.Web 專案,以使用 Tailspin.SpaceGame.Web.Models 套件的新版本。
在這裡,您將使用 Space Game Web 應用程式專案 Tailspin.SpaceGame.Web 的 Visual Studio Code 複本。
從 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 應用程式。
從終端暫存、認可和推送變更。
git add . git commit -m "Bump Models package to 1.1.0" git push origin models-package
從 Azure Pipelines,前往 mslearn-tailspin-spacegame-web 專案,然後監看組建執行。
您可以從組建輸出中看到其取得最新的相依性、組建應用程式,以及發佈 Web 應用程式的成品。