Cvičení – zvýšení úrovně do fáze vývoje
Tým má plán a je připravený začít s implementací kanálu verze. Váš projekt Azure DevOps je nastavený a vaše instance služby Aplikace Azure Service jsou připravené k příjmu artefaktů sestavení.
V tomto okamžiku si pamatujte, že kanál týmu má pouze dvě fáze. První fáze vytvoří artefakt sestavení. Druhá fáze nasadí webovou aplikaci Space Game do služby App Service. Tady budete postupovat spolu s Andym a Mara, když upravují kanál. Nasadí se do prostředí App Service, které odpovídá fázi vývoje .
Fáze vývoje se podobá fázi nasazení, kterou jste vytvořili v modulu Vytvoření kanálu verze v Azure Pipelines . Tam jste použili trigger CI ke spuštění procesu sestavení. Tady to samé uděláte.
Načtení větve z GitHubu
Tady načtete větev z GitHubu release
. Větev si také můžete rezervovat nebo přepnout na tuto větev.
Tato větev slouží jako vaše větev vydané verze . Obsahuje projekt Space Game používaný v předchozích modulech. Obsahuje také konfiguraci Azure Pipelines, se kterými můžete začít.
Načtení a přepnutí do větve:
V editoru Visual Studio Code otevřete integrovaný terminál.
Pokud chcete načíst větev pojmenovanou
release
z úložiště Microsoftu a přepnout na ni, spusťte následujícígit
příkazy.git fetch upstream release git checkout -B release upstream/release
Formát těchto příkazů umožňuje získat počáteční kód z úložiště Microsoft GitHub, označovaného jako
upstream
. Za chvíli tuto větev nasdílíte do svého úložiště GitHub, označované jakoorigin
.Jako volitelný krok otevřete v editoru Visual Studio Code azure-pipelines.yml. Seznamte se s počáteční konfigurací.
Konfigurace se podobá základní konfiguraci, kterou jste vytvořili v kanálu pro vytvoření verze pomocí modulu Azure Pipelines . Sestaví pouze konfiguraci verze aplikace. Pro účely výuky tato konfigurace nespouští kontroly kvality ani zabezpečení, které jste nastavili v předchozích modulech.
Poznámka:
Robustnější konfigurace může určovat větve, které se účastní procesu sestavení. Pokud chcete například ověřit kvalitu kódu, můžete testy jednotek spouštět při každém nasdílení změn v libovolné větvi. Aplikaci můžete také nasadit do prostředí, které provádí podrobnější testování. Toto nasazení ale provedete jenom v případě, že máte žádost o přijetí změn, pokud máte kandidáta na vydání verze nebo při sloučení kódu do hlavního.
Další informace najdete v tématu Implementace pracovního postupu kódu v kanálu buildu pomocí triggerů kanálů Git a GitHub a Build.
Zvýšení úrovně změn ve fázi vývoje
Tady upravíte konfiguraci kanálu tak, aby podporovala sestavení do fáze vývoje .
V editoru Visual Studio Code upravte 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'
Tato konfigurace se podobá té, kterou jste vytvořili v předchozím modulu. Vy a tým vytvořili testování konceptu pro průběžné nasazování. Všimněte si ale těchto rozdílů, které jsou zvýrazněné v předchozím příkladu kódu:
- Tato konfigurace definuje proměnné na začátku souboru. Proměnné se používají v celém kanálu. Definují, která konfigurace se má sestavit (
Release
). Definují také název vaší větve vydané verze (release
). - Fáze Nasazení z testování konceptu se teď jmenuje Dev.
- Fáze vývoje používá podmínku, která nasměruje systém ke spuštění fáze pouze tehdy, když předchozí fáze proběhne úspěšně a aktuální větev je
release
. Toto nastavení zajistí, že se funkce vydané verze nasadí jenom do vývojového prostředí. - Krok nasazení používá proměnnou
WebAppNameDev
k nasazení do instance služby App Service přidružené k vývojovému prostředí.
Poznámka:
V praxi můžete nasadit z jiné větve, například
main
. Můžete zahrnout logiku, která umožňuje povýšení změn do vývojové fáze z více větví, napříkladrelease
amain
.- Tato konfigurace definuje proměnné na začátku souboru. Proměnné se používají v celém kanálu. Definují, která konfigurace se má sestavit (
Z integrovaného terminálu přidejte do indexu azure-pipelines.yml . Potvrďte změnu a nasdílíte ji do GitHubu.
Tip
Před spuštěním těchto příkazů Git uložte azure-pipelines.yml.
git add azure-pipelines.yml git commit -m "Deploy to the Dev stage" git push origin release
V Azure Pipelines přejděte na build. Při jeho spuštění sledujte sestavení.
Až se sestavení dokončí, vraťte se na stránku souhrnu a vyberte tlačítko Zpět.
Uvidíte, že nasazení bylo úspěšně dokončeno.
Ve webovém prohlížeči přejděte na adresu URL přidruženou k instanci služby App Service pro vaše vývojové prostředí.
Pokud máte pořád otevřenou kartu prohlížeče, aktualizujte stránku. Pokud si adresu URL nepamatujete, najděte ji na webu Azure Portal na stránce podrobností služby App Service.
Uvidíte, že web Space Game je nasazený do služby App Service a běží.
Jako volitelný krok vyberte v Azure Pipelines prostředí. Pak vyberte vývojové prostředí.
Azure Pipelines zaznamenává historii nasazení. V historii můžete sledovat změny prostředí zpět na potvrzení kódu a pracovní položky.