練習 - 升階至開發階段
團隊有一個計劃,並準備好著手執行其發布流程。 您的 Azure DevOps 專案已設定,且您的 Azure App Service 實例已準備好接收組建成品。
此時,請記住小組的管線只有兩個階段。 第一個階段會產生組建成品。 第二個階段會將 Space Game Web 應用程式部署到 App Service。 在這裡,您會跟著 Andy 和 Mara 修改管線。 他們將部署到對應至 開發 階段的 App Service 環境。
開發階段類似於您在Azure Pipelines模組中建立的發行管線的部署階段。 在那裡,您使用 CI 觸發程式來啟動建構過程。 在此執行同樣的作業。
從 GitHub 擷取分支
在這裡,您會從 GitHub 擷取 release
分支。 您也會簽出或切換至分支。
此分支會作為您的「發行」分支。 它包含先前課程模組中使用的 Space Game 專案。 其也包含可供開始使用的 Azure Pipelines 設定。
若要擷取並切換至分支:
在 Visual Studio Code 中,開啟整合式終端。
若要從Microsoft存放庫擷取名為
release
的分支,並切換至該分支,請執行下列git
命令。git fetch upstream release git checkout -B release upstream/release
這些命令的格式可讓您從 Microsoft GitHub 存放庫取得入門程式代碼,稱為
upstream
。 不久之後,您會將此分支推送至 GitHub 存放庫,稱為origin
。在選擇性步驟中,從 Visual Studio Code 開啟 azure-pipelines.yml。 熟悉初始組態。
此組態類似於您在使用 Azure Pipelines 模組建立發行管線 中建立的基本設定。 它只會建置應用程式的發行組態。 基於學習目的,此設定不會執行您在先前課程模組中設定的品質或安全性檢查。
備註
更健全的設定可能會指定參與組建流程的分支。 例如,為協助驗證程式碼品質,您可以在每次在任何分支上推送變更時執行單元測試。 您也可以將應用程式部署到執行更詳盡測試的環境。 但是,只有當您有提取要求、有候選版,或將程式碼合併到 main 時,才會進行此部署。
如需詳細資訊,請參閱使用 Git 和 GitHub 在組建管線實作程式碼流程和組建管線觸發程序。
將變更升階至開發階段
在這裡,您可以修改管線組態,將組建升級至 開發 階段。
在 Visual Studio Code 中,修改 azure-pipelines.yml。
trigger: - '*' variables: buildConfiguration: 'Release' releaseBranchName: 'release' stages: - stage: 'Build' displayName: 'Build the web application' jobs: - job: 'Build' displayName: 'Build job' pool: vmImage: 'ubuntu-20.04' demands: - npm variables: wwwrootDir: 'Tailspin.SpaceGame.Web/wwwroot' dotnetSdkVersion: '6.x' steps: - task: UseDotNet@2 displayName: 'Use .NET SDK $(dotnetSdkVersion)' inputs: version: '$(dotnetSdkVersion)' - task: Npm@1 displayName: 'Run npm install' inputs: verbose: false - script: './node_modules/.bin/node-sass $(wwwrootDir) --output $(wwwrootDir)' displayName: 'Compile Sass assets' - task: gulp@1 displayName: 'Run gulp tasks' - script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt' displayName: 'Write build info' workingDirectory: $(wwwrootDir) - task: DotNetCoreCLI@2 displayName: 'Restore project dependencies' inputs: command: 'restore' projects: '**/*.csproj' - task: DotNetCoreCLI@2 displayName: 'Build the project - $(buildConfiguration)' inputs: command: 'build' arguments: '--no-restore --configuration $(buildConfiguration)' projects: '**/*.csproj' - task: DotNetCoreCLI@2 displayName: 'Publish the project - $(buildConfiguration)' inputs: command: 'publish' projects: '**/*.csproj' publishWebProjects: false arguments: '--no-build --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(buildConfiguration)' zipAfterPublish: true - publish: '$(Build.ArtifactStagingDirectory)' artifact: drop - stage: 'Dev' displayName: 'Deploy to the dev environment' dependsOn: Build condition: | and ( succeeded(), eq(variables['Build.SourceBranchName'], variables['releaseBranchName']) ) jobs: - deployment: Deploy pool: vmImage: 'ubuntu-20.04' environment: dev variables: - group: Release strategy: runOnce: deploy: steps: - download: current artifact: drop - task: AzureWebApp@1 displayName: 'Azure App Service Deploy: website' inputs: azureSubscription: 'Resource Manager - Tailspin - Space Game' appName: '$(WebAppNameDev)' package: '$(Pipeline.Workspace)/drop/$(buildConfiguration)/*.zip'
此組態類似於您在上一個課程模組中建置的組態。 在那裡,您和小組建置了持續部署的概念證明。 但請注意上述程式代碼範例中醒目提示的這些差異:
- 此組態會在檔案開頭定義變數。 這些變數在整個管線中都被使用。 他們會定義要建置的組態(
Release
)。 變數也會定義發行分支的名稱 (release
)。 - 在概念驗證的部署階段現在被命名為Dev。
-
Dev 階段會使用條件,指示系統只在上一個階段成功且最新分支
release
時,才執行階段。 此設定可確保發行功能只會部署到 開發人員 環境。 - 部署步驟會使用
WebAppNameDev
變數來部署到與 Dev 環境相關聯的 App Service 實例。
備註
在實務上,您可能會從其他分支進行部署,例如
main
。 您可以包含邏輯,允許從多個分支將變更升級至 Dev 階段,例如release
和main
。- 此組態會在檔案開頭定義變數。 這些變數在整個管線中都被使用。 他們會定義要建置的組態(
從整合式終端機,將 azure-pipelines.yml 新增至索引。 認可變更,並將其推送至 GitHub。
小提示
執行這些 Git 命令之前,請先儲存 azure-pipelines.yml。
git add azure-pipelines.yml git commit -m "Deploy to the Dev stage" git push origin release
在 Azure Pipelines 中,移至該組建。 在組建執行時加以追蹤。
建置完成後,若要返回摘要頁面,請選取 [上一頁] 按鈕。
您會看到部署已順利完成。
從網頁瀏覽器,移至與您 Dev 環境之 App Service 實例相關聯的 URL。
如果您的瀏覽器索引標籤仍保持開啟,請重新整理頁面。 如果您不記得 URL,請在 Azure 入口網站的 App Service 詳細數據 頁面上找到該 URL。
您會看到 Space Game 網站已部署至 App Service 並正在執行。
在 Azure Pipelines 中,選取 [環境]作為選擇性步驟。 然後,選取 開發 環境。
Azure Pipelines 會記錄您的部署歷程記錄。 在歷程記錄中,您可以透過環境的變更逆向追蹤到程式碼認可和工作項目。