Kontinuální integrace a průběžné nasazování s Azure DevOps
Poznámka
Tato část podrobně popisuje průběžnou integraci a nasazování pomocí Azure DevOps. Toho můžete dosáhnout také GitHub Akce. GitHub Akce jsou modul pracovních postupů integrovaný GitHub který lze použít také pro kontinuální integraci a nasazování. Pokud chcete postupovat podle průvodce sestavením a nasazením do Azure pomocí GitHub, dokončete oddíl Publikování kódu aplikace pro GitHub a Odpojení místního nasazení Gitu níže a pak pokračujte částí GitHub Actions.
V předchozí kapitole jste vytvořili místní úložiště Git pro aplikaci Simple Feed Reader. V této kapitole tento kód publikujete do úložiště GitHub a pomocí Azure DevOps Services sestavíte Azure Pipelines. Kanál umožňuje průběžná sestavení a nasazování aplikace. Jakékoli potvrzení do GitHub aktivuje sestavení a nasazení do pracovního slotu webové aplikace Azure.
V této části dokončíte následující úlohy:
- Publikování kódu aplikace pro GitHub
- Odpojení místního nasazení Gitu
- Vytvoření organizace Azure DevOps
- Vytvoření týmového projektu v Azure DevOps organizaci
- V případě potřeby nakonfigurujte agenta v vlastním hostování.
- Vytvoření definice sestavení
- Vytvoření kanálu verze
- Potvrzení změn na GitHubu a automatické nasazení do Azure
- Prozkoumání Azure Pipelines kanálu
Publikování kódu aplikace pro GitHub
Otevřete okno prohlížeče a přejděte na
https://github.com.Klikněte na + rozevírací seznam v záhlaví a vyberte Nové úložiště:

V rozevíracím seznamu Vlastník vyberte svůj účet a do textového pole Název úložiště zadejte simple-feed-reader.
Klikněte na tlačítko Create repository (Vytvořit úložiště).
Otevřete příkazové prostředí místního počítače. Přejděte do adresáře, ve kterém je uložené úložiště Git simple-feed-reader.
Přejmenujte existující vzdálené zdroje na upstream. Spusťte následující příkaz:
git remote rename origin upstreamPřidejte nový vzdálený zdroj odkazující na kopii úložiště na GitHub. Spusťte následující příkaz:
git remote add origin https://github.com/<GitHub_username>/simple-feed-reader/Publikujte místní úložiště Git do nově vytvořeného GitHub úložiště. Spusťte následující příkaz:
git push -u origin mainOtevřete okno prohlížeče a přejděte na
https://github.com/<GitHub_username>/simple-feed-reader/. Ověřte, že se váš kód zobrazí v GitHub úložišti.
Odpojení místního nasazení Gitu
Pomocí následujících kroků odeberte místní nasazení Gitu. Azure Pipelines (Azure DevOps) nahrazuje a rozšířené funkce.
Otevřete Azure Portala přejděte do pracovní webové aplikace (mywebapp <unique_number> /staging). Webovou aplikaci můžete rychle najít tak, že do vyhledávacího pole portálu zadáte staging:

Klikněte na Deployment Center. Zobrazí se nový panel. Kliknutím na Odpojit odeberte místní konfiguraci správy zdrojového kódu Git, která byla přidána v předchozí kapitole. Potvrďte operaci odebrání kliknutím na tlačítko Ano.
Přejděte na stránku mywebapp<unique_number> App Service. Připomínáme, že vyhledávací pole portálu můžete použít k rychlému vyhledání App Service.
Klikněte na Deployment Center. Zobrazí se nový panel. Kliknutím na Odpojit odeberte místní konfiguraci správy zdrojového kódu Git, která byla přidána v předchozí kapitole. Potvrďte operaci odebrání kliknutím na tlačítko Ano.
Vytvoření organizace Azure DevOps
- Otevřete prohlížeč a přejděte na stránku Azure DevOps organizace.
- Vyberte Nová organizace.
- Potvrďte informace a pak vyberte Pokračovat.
- Kdykoli se přihlaste ke své organizaci.
https://dev.azure.com/{yourorganization}
Vytvoření týmového projektu v Azure DevOps organizaci
- Zvolte organizaci a pak vyberte Nový projekt.
- Jako Název projektu zadejte MyFirstProject a vyberte Viditelnost jako Privátní.
- Vyberte Vytvořit projekt.
Další informace najdete v tématu Vytvoření projektu.
V případě potřeby nakonfigurujte agenta v vlastním hostování.
K vytvoření kódu nebo nasazení softwaru pomocí Azure Pipelines potřebujete alespoň jednoho agenta. V Azure Pipelines můžete spouštět paralelní úlohy na agentech hostovaných Microsoftem nebo v jejich vlastním hostování. Ale vzhledem k nedávné změně Azure Pipelines udělení paralelních úloh je pro veřejné projekty dočasně zakažte. Další podrobnosti najdete v tématu Konfigurace a platba za paralelní úlohy.
Přejděte na Organization Nastavení a potom Pipelines > Parallel. Pokud se v části Hostovaný Microsoftem zobrazí hodnota 0, znamená to, že ke spuštění kanálu potřebujete agenta v vlastním hostování.

Můžete ho vytvořit podle podrobností uvedených v tématu Agenti v vlastním prostředí. Po úspěšné konfiguraci se v části Organization Nastavení > Agent pools > {youragentname} zobrazí dostupný agent.

Konfigurace Azure Pipelines kanálu
Existují tři různé kroky, které je dobré provést. Dokončením kroků v následujících třech částech se zprovozní DevOps kanálu.
Udělení Azure DevOps přístupu k úložišti GitHub úložiště
V projektu přejděte na Pipelines stránky. Pak zvolte akci pro vytvoření nového kanálu:

K
Use the classic editorvytvoření kanálu použijte .
V GitHub zdroj vyberte možnost Volby zdroje::

Autorizace se vyžaduje, aby Azure DevOps mohli přistupovat k vašemu GitHub úložiště. Do <GitHub_username> GitHub Connection name (Název připojení) zadejte connection connection (Název připojení). Například:

Pokud je ve vašem účtu GitHub povolené dvoufaktorové ověřování, vyžaduje se osobní přístupový token. V takovém případě klikněte na odkaz Authorize with a GitHub osobní přístupový token. Nápovědu najdete v GitHub pokyny k vytvoření tokenu PERSONAL. Je potřeba jenom obor oprávnění k repo. Jinak klikněte na tlačítko Authorize using OAuth (Autorizovat pomocí OAuth).
Po zobrazení výzvy se přihlaste ke svému GitHub účtu. Pak vyberte Autorizovat a udělte přístup Azure DevOps organizaci. V případě úspěchu se vytvoří nový koncový bod služby.
Klikněte na tlačítko se třemi tečkami vedle tlačítka Úložiště. V <GitHub_username>vyberte úložiště /simple-feed-reader. Klikněte na tlačítko Vybrat.
Vyberte výchozí větev (hlavní) z rozevíracího seznamu Výchozí větev pro ruční a plánovaná sestavení. Klikněte na tlačítko Pokračovat. Zobrazí se stránka pro výběr šablony.
Vytvoření definice sestavení
Na stránce pro výběr šablony zadejte ASP.NET Core do vyhledávacího pole:

Zobrazí se výsledky hledání šablony. Najeďte myší ASP.NET Core šablony a klikněte na tlačítko Použít.
Zobrazí se karta Úlohy definice sestavení. Vyberte fond agentů v vlastním hostování, pokud jste ho vytvořili v předchozím kroku.

Poznámka
Pokud používáte agenta hostovaného microsoftem, vyberte z rozevíracího > Azure Pipelines hostovaného agenta.
Klikněte na kartu Triggery.
Zaškrtněte políčko Povolit kontinuální integraci. V části Filtry větví zkontrolujte, že je rozevírací seznam Typ nastavený na Zahrnout. V rozevíracím seznamu Specifikace větve nastavte hlavní .

Tato nastavení způsobí, že se sestavení aktivuje, když se jakákoli změna nasoudí do výchozí větve (hlavní) GitHub úložiště. Průběžná integrace se testuje v části Potvrzení změn GitHub a automatické nasazení do Azure.
Klikněte na tlačítko & fronty a vyberte možnost Uložit:

Zobrazí se následující modální dialogové okno:

Použijte výchozí složku a \ klikněte na tlačítko Uložit.
Vytvoření kanálu verze
Klikněte na kartu Releases (Verze) vašeho týmového projektu. Klikněte na tlačítko Nový kanál.

Zobrazí se podokno výběru šablony.
Na stránce pro výběr šablony zadejte App Service do vyhledávacího pole Nasazení:

Zobrazí se výsledky hledání šablony. Najeďte myší Azure App Service nasazení se šablonou slotu a klikněte na tlačítko Použít. Zobrazí se karta Kanál kanálu verze.

Klikněte na tlačítko Přidat v Artifacts pole. Zobrazí se panel Přidat artefakt:

V části Typ zdroje vyberte dlaždici Sestavení. Tento typ umožňuje propojení kanálu verze s definicí sestavení.
V rozevíracím seznamu Project MyFirstProject.
V rozevíracím seznamu Zdroj (definice sestavení) vyberte název definice sestavení MyFirstProject-ASP.NET Core-CI.
V rozevíracím seznamu Výchozí verze vyberte Nejnovější. Tato možnost sestaví artefakty vytvořené nejnovějším spuštěním definice sestavení.
Nahraďte text v textovém poli Alias zdroje za Drop.
Klikněte na tlačítko Přidat. Oddíl Artifacts se aktualizuje a zobrazí změny.
Kliknutím na ikonu blesku povolíte průběžné nasazování:

Když je tato možnost povolená, nasazení nastane pokaždé, když je k dispozici nové sestavení.
Napravo se zobrazí panel Trigger průběžného nasazování. Kliknutím na přepínací tlačítko funkci povolte. Není nutné povolovat trigger žádosti o změnu.
V části Filtry větví sestavení klikněte na rozevírací seznam Přidat. Zvolte výchozí větev definice sestavení. Tento filtr způsobí, že se verze aktivuje jenom pro sestavení GitHub výchozí větvi úložiště (hlavní).
Klikněte na tlačítko Uložit. Ve výsledném modálním dialogovém okně Uložit klikněte na tlačítko OK.
Klikněte na pole Fáze 1. Napravo se zobrazí panel Fáze. Změňte text Fáze 1 v textovém poli Název fáze na Production.

Klikněte na odkaz 1 fáze, 2 úkoly v poli Production (Produkční):

Zobrazí se karta Úlohy prostředí.
Klikněte na úlohu Azure App Service do slotu. Jeho nastavení se zobrazí na panelu napravo.
V rozevíracím seznamu předplatného Azure App Service předplatného Azure přidružené k příslušnému předplatnému. Po výběru klikněte na tlačítko Autorizovat.
V rozevíracím seznamu Typ aplikace vyberte Webová aplikace.
V rozevíracím seznamu <unique_number app service >mywebapp/>/.
V rozevíracím seznamu Skupina prostředků vyberte AzureTutorial.
V rozevíracím seznamu Slot vyberte pracovní.
V části _Úlohy* vyberte Spustit v agentovi. V pravém podokně se zobrazí Agent Job (Úloha agenta).
Vyberte fond agentů v vlastním hostování, pokud jste ho vytvořili v předchozím kroku.

Poznámka
Pokud používáte agenta hostovaného microsoftem, vyberte z rozevíracího > Azure Pipelines hostovaného agenta.
Klikněte na tlačítko Uložit.
Najeďte myší na výchozí název kanálu verze. Klikněte na ikonu tužky a upravte ji. Jako název použijte MyFirstProject-ASP.NET Core-CD.

Klikněte na tlačítko Uložit.
Potvrzení změn na GitHubu a automatické nasazení do Azure
Otevřete soubor SimpleFeedReader.sln v Visual Studio.
V Průzkumník řešení otevřete Pages\Index.cshtml. Změňte
<h2>Simple Feed Reader - V3</h2>na<h2>Simple Feed Reader - V4</h2>.Stisknutím kláves Ctrl + Shift + B sestavte aplikaci.
Potvrďte soubor do GitHub úložiště. Použijte buď stránku Změny Visual Studio kartě Team Explorer, nebo spusťte následující příkaz v příkazovém prostředí místního počítače:
git commit -a -m "upgraded to V4"Napište změnu ve výchozí větvi (hlavní) do původního vzdáleného úložiště GitHub úložiště. V následujícím příkazu nahraďte zástupný symbol
{BRANCH}výchozí větví (použijtemain):git push origin {BRANCH}Potvrzení se zobrazí ve GitHub větvi úložiště (main). Historii potvrzení uvidíte v
https://github.com/<GitHub_username>/simple-feed-reader/commits/main.Sestavení se aktivuje, protože kontinuální integrace je povolená na kartě Triggery definice sestavení:

Přejděte na Pipelines. Uvidíte podrobnosti o kanálu CI a budete monitorovat jednotlivé kroky, když budete procházet podrobnosti o úlohách.

Podobně přejděte na kartu Releases (Verze) a zobrazte podrobnosti o kanálu CD. Vždy můžete přejít k podrobnostem a zobrazit další podrobnosti o jednotlivých stupních.

Po úspěšném sestavení dojde k nasazení do Azure. V prohlížeči přejděte k aplikaci. Všimněte si, že se v záhlaví zobrazí text "V4":

Prozkoumání Azure Pipelines kanálu
Definice sestavení
Byla vytvořena definice sestavení s názvem MyFirstProject-ASP.NET Core-CI. Po dokončení sestavení vytvoří soubor .zip včetně prostředků, které se mají publikovat. Kanál verze nasadí tyto prostředky do Azure.
Karta Úlohy definice sestavení obsahuje seznam jednotlivých použitých kroků. Existuje pět úloh sestavení.

Obnovení — Spustí příkaz
dotnet restorek obnovení balíčků NuGet aplikace. Výchozí informační kanál balíčků je nuget.org.Sestavení — Spustí příkaz
dotnet build --configuration releaseke kompilaci kódu aplikace. Tato možnost se používá k vytvoření optimalizované verze kódu, která je vhodná pro--configurationnasazení do produkčního prostředí. Pokud je například potřeba konfigurace ladění, upravte proměnnou BuildConfiguration na kartě Variables (Proměnné) definice sestavení.Test — Spustí příkaz ke spuštění testů jednotek
dotnet test --configuration release --logger trx --results-directory <local_path_on_build_agent>aplikace. Testy jednotek se provádějí v rámci libovolného projektu C# odpovídající vzoru globu **_/_Tests/.csproj. Výsledky testu se ukládají do souboru .trx v umístění určeném--results-directoryparametrem . Pokud nějaké testy selžou, sestavení selže a nebude nasazeno.Poznámka
Pokud chcete ověřit, že testy jednotek fungují, upravte SimpleFeedReader.Tests\Services\NewsServiceTests.cs tak, aby záměrně přerušily jeden z testů. Například v
Assert.True(result.Count > 0);metoděAssert.False(result.Count > 0);změňte naReturns_News_Stories_Given_Valid_Uri. Potvrďte změnu a nasa GitHub. Sestavení se aktivuje a selže. Stav kanálu buildu se změní na neúspěšný. Vrátte změnu, potvrďte ji a znovu nasuřte. Sestavení bude úspěšné.Publikování — Spustí příkaz
dotnet publish --configuration release --output <local_path_on_build_agent>pro vytvoření souboru .zip s artefakty, které se mají nasadit. Možnost--outputurčuje umístění publikování souboru .zip souboru. Toto umístění je určeno předáním předdefinované proměnné s názvem$(build.artifactstagingdirectory). Tato proměnná se v agentovi sestavení rozbalí do místní cesty, například c:\agent _ work\1\a.Publikování artefaktu — Publikuje soubor .zip vytvořený úlohou Publikovat. Úloha přijímá umístění .zip jako parametr, což je předdefinovaná proměnná
$(build.artifactstagingdirectory). Soubor .zip publikovaný jako složka s názvem drop.
Kliknutím na odkaz Souhrn definice sestavení zobrazíte historii sestavení s definicí:

Na výsledné stránce kliknutím na jednotlivé sestavení zobrazíte další podrobnosti.

Zobrazí se souhrn tohoto konkrétního sestavení. Klikněte na publikovaný odkaz a všimněte si, že je uvedená složka drop vytvořená sestavením:


Použijte tři tečky a kliknutím na odkazy Stažené artefakty zkontrolujte publikované artefakty.
Kanál verze
Vytvořil se kanál verze s názvem MyFirstProject-ASP.NET Core-CD:

Dvěma hlavními komponentami kanálu verze jsou Artifacts a Fáze. Kliknutím na pole v Artifacts se zobrazí následující panel:

Hodnota Zdroj (definice sestavení) představuje definici sestavení, se kterou je tento kanál verze propojený. Soubor .zip vytvořený úspěšným spuštěním definice sestavení je poskytován produkčnímu prostředí pro nasazení do Azure. Kliknutím na odkaz 1 fáze, 2 úkoly v poli Produkční prostředí zobrazíte úlohy kanálu verze:

Kanál verze se skládá ze dvou úloh: nasazení Azure App Service slotu a správy Azure App Service – prohození slotů. Kliknutím na první úlohu zobrazíte následující konfiguraci úlohy:

V úkolu nasazení se definuje předplatné Azure, typ služby, název webové aplikace, skupina prostředků a slot nasazení. Textové pole Balíček nebo složka obsahuje cestu .zip, která se má extrahovat a nasadit do pracovního slotu webové aplikace <unique_number> mywebapp.
Kliknutím na úlohu prohození slotů zobrazíte následující konfiguraci úlohy:

K dispozici jsou podrobnosti o předplatném, skupině prostředků, typu služby, názvu webové aplikace a slotu nasazení. Je zaškrtnuté políčko Prohodit s produkčním prostředím. V důsledku toho se bity nasazené do pracovního slotu prohodí do produkčního prostředí.