Sdílet prostřednictvím


Klasické kanály verze

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Klasické kanály verzí poskytují vývojářům architekturu pro efektivní a bezpečné nasazování aplikací do více prostředí. Pomocí klasických kanálů verzí můžete automatizovat procesy testování a nasazení, nastavit flexibilní strategie nasazení, začlenit schvalovací pracovní postupy a zajistit hladké přechody aplikací v různých fázích.

Jak fungují kanály verze

V rámci každého nasazení azure Pipelines provádí následující kroky:

  1. Schválení před nasazením:

    Když se aktivuje nová žádost o nasazení, Azure Pipelines před nasazením verze do fáze ověří, jestli je nezbytné schválení předběžného nasazení. Pokud je schválení potřeba, pošle příslušné schvalovatelům e-mailová oznámení.

  2. Úloha nasazení fronty:

    Azure Pipelines naplánuje úlohu nasazení na dostupném agentu.

  3. Výběr agenta:

    Dostupný agent vybere úlohu nasazení. Kanál verze lze nakonfigurovat tak, aby během běhu dynamicky vybral vhodného agenta.

  4. Stažení artefaktů:

    Agent načte a stáhne všechny artefakty zadané ve vydané verzi.

  5. Spusťte úlohy nasazení:

    Agent spustí všechny úlohy v úloze nasazení.

  6. Generování protokolů průběhu:

    Agent generuje komplexní protokoly pro každý krok nasazení a odesílá je zpět do Azure Pipelines.

  7. Schválení po nasazení:

    Po dokončení nasazení do fáze Azure Pipelines ověří, jestli je pro danou fázi nezbytné schválení po nasazení. Pokud není potřeba schválení nebo jakmile je získáno požadované schválení, zahájí nasazení do další fáze.

Snímek obrazovky znázorňující kroky nasazení ve službě Azure Pipelines

Model nasazení

Kanály verze Azure podporují širokou škálu zdrojů artefaktů, včetně Jenkinse, Azure Artifacts a Team City. Následující příklad znázorňuje model nasazení s využitím kanálů verze Azure:

V následujícím příkladu se kanál skládá ze dvou artefaktů sestavení pocházejících z samostatných kanálů sestavení. Aplikace se nejprve nasadí do fáze vývoje a pak do dvou samostatných fází kontroly kvality . Pokud je nasazení úspěšné v obou fázích kontroly kvality, aplikace se nasadí do okruhu Prod 1 a pak do okruhu Prod 2. Každý produkční okruh představuje více instancí stejné webové aplikace nasazené do různých umístění po celém světě.

Snímek obrazovky znázorňující kroky nasazení kanálu verze

Vydané verze vs. nasazení

Verze je konstruktor, který obsahuje sadu artefaktů určených v kanálu CI/CD s verzí. Obsahuje snímek všech informací potřebných k provedení všech úkolů a akcí v kanálu verze, jako jsou fáze, úlohy, zásady, jako jsou triggery a schvalovatelé, a možnosti nasazení. Z jednoho kanálu verze může existovat více verzí a informace o každém z nich se ukládají a zobrazují v Azure Pipelines pro zadanou dobu uchovávání.

Nasazení je akce spuštění úloh pro jednu fázi, která může zahrnovat spouštění automatizovaných testů, nasazování artefaktů sestavení a jakékoli další akce určené pro danou fázi. Spuštění verze spustí každé nasazení na základě nastavení a zásad definovaných v původním kanálu verze. Pro každou verzi může existovat více nasazení i pro jednu fázi. Pokud nasazení verze ve fázi selže, můžete stejnou verzi znovu nasadit do této fáze. Pokud chcete znovu nasadit verzi, jednoduše přejděte k verzi, kterou chcete nasadit, a vyberte nasazení.

Následující diagram znázorňuje vztah mezi verzemi, kanály verzí a nasazeními.

Diagram znázorňující rozdíl mezi verzemi a nasazeními

Často kladené dotazy

Otázka: Proč se moje nasazení neaktivovalo?

A: Vytvoření kanálu verze automaticky nespustí nasazení. Tady je několik důvodů, proč k tomu může dojít:

  • Triggery nasazení: Definované triggery nasazení můžou způsobit pozastavení nasazení. K tomu může dojít u plánovaných triggerů nebo v případě, že dojde ke zpoždění, dokud se nasazení do jiné fáze nedokončí.

  • Zásady řízení front: Tyto zásady určují pořadí spuštění a kdy jsou vydané verze zařazeny do fronty pro nasazení.

  • Schválení před nasazením nebo brány: Konkrétní fáze mohou vyžadovat schválení nebo brány před nasazením, což brání nasazení, dokud nebudou splněny všechny definované podmínky.

Otázka: Jak můžu upravovat proměnné v době vydání?

A: Na kartě Proměnné kanálu verze zaškrtněte políčko Settable at release time (Nastavit v době vydání verze) pro proměnné, které chcete upravit, když je verze zařazena do fronty.

Snímek obrazovky znázorňující, jak povolit funkci settable v době vydání

Následně při generování nové verze máte možnost upravit hodnoty těchto proměnných.

Snímek obrazovky znázorňující, jak upravit proměnné v době vydání

Otázka: Kdy by bylo vhodnější upravit verzi místo kanálu, který ji definuje?

A: Můžete upravit schválení, úkoly a proměnné instance vydané verze. Tyto úpravy se však budou vztahovat pouze na tuto instanci. Pokud chcete, aby se změny použily pro všechny budoucí verze, upravte kanál verze.

Otázka: Jaké jsou scénáře, ve kterých je užitečná funkce "opuštění verze"?

A: Pokud nechcete verzi znovu použít nebo chcete zabránit jejímu použití, můžete verzi opustit následujícím způsobem : Pipelines> (...) >Opustit. Verzi nemůžete opustit, když probíhá nasazení, musíte nejprve zrušit nasazení.

Snímek obrazovky znázorňující, jak opustit verzi

Otázka: Návody spravovat pojmenování nových verzí?

A: Výchozí konvence vytváření názvů pro kanály verze je pořadové číslování, kde verze mají název Release-1, Release-2 atd. Můžete ale přizpůsobit schéma pojmenování úpravou masky formátu názvu verze. Na kartě Možnosti kanálu verze přejděte na stránku Obecné a upravte vlastnost formát názvu verze tak, aby vyhovovala vašim preferencím.

Při zadávání masky formátu můžete použít následující předdefinované proměnné. Příklad: Následující formát názvu verze: Release $(Rev:rrr) pro build $(Build.BuildNumber) $(Build.DefinitionName) vytvoří následující verzi: Verze 002 pro build 20170213.2 MySampleAppBuild.

Proměnná Popis
Rev: rr Automaticky se zvýší číslo s alespoň zadaným počtem číslic.
Datum / datum: MMddyyy Aktuální datum s výchozím formátem MMddyy. Podporují se všechny kombinace M/MM/MMM/MMMM, d/ddd/ddd/d, yy/y,h/hh/H/HH, m/mm, s/ss.
System.TeamProject Název projektu, do kterého tento build patří.
Release.ReleaseId ID vydané verze, která je jedinečná pro všechny verze v projektu.
Release.DefinitionName Název kanálu verze, do kterého aktuální verze patří.
Build.BuildNumber Počet sestavení obsažených ve vydané verzi. Pokud má verze více sestavení, je to číslo primárního sestavení.
Build.DefinitionName Název kanálu sestavení obsaženého ve vydané verzi. Pokud má verze více buildů, jedná se o název kanálu primárního sestavení.
Artifact.ArtifactType Typ zdroje artefaktu propojeného s vydáním. Může to být například Azure Pipelines nebo Jenkins.
Build.SourceBranch Větev primárního zdroje artefaktů. Pro Git je to hlavní formulář, pokud je větev refs/heads/main. U Správa verzí Team Foundation se jedná o větev formuláře, pokud je cesta ke kořenovému serveru pro pracovní prostor $/teamproject/branch. Tato proměnná není nastavená pro Jenkinse ani jiné zdroje artefaktů.
Vlastní proměnná Hodnota vlastnosti globální konfigurace definovaná v kanálu verze. Název vydané verze můžete aktualizovat vlastními proměnnými pomocí příkazů protokolování vydané verze.

Otázka: Jak můžu definovat dobu uchovávání pro své verze?

A: Informace o nastavení zásad uchovávání informací pro kanály verze najdete v zásadách uchovávání informací.