Verze Classic a proměnné artefaktů
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Proměnné klasických verzí a artefaktů představují pohodlný způsob výměny a přenosu dat v rámci kanálu. Každá proměnná je uložená jako řetězec a její hodnota se může mezi spuštěními kanálu měnit.
Proměnné se liší od parametrů modulu runtime, které jsou k dispozici pouze v době analýzy šablony.
Při vytváření úloh nasazení aplikace do každé fáze procesů CI/CD DevOps vám proměnné pomůžou:
Definujte obecnější kanál nasazení jednou a pak ho snadno přizpůsobte pro každou fázi. Proměnnou lze například použít k reprezentaci připojovací řetězec pro nasazení webu a hodnotu této proměnné lze změnit z jedné fáze na jinou. Jedná se o vlastní proměnné.
Použijte informace o kontextu konkrétní verze, fáze, artefaktů nebo agenta , ve kterém se kanál nasazení spouští. Váš skript může například potřebovat přístup k umístění sestavení, aby ho mohl stáhnout, nebo do pracovního adresáře agenta k vytvoření dočasných souborů. Jedná se o výchozí proměnné.
Poznámka:
Další podrobnosti najdete v kanálech YAML v uživatelsky definovaných proměnných a předdefinovaných proměnných .
Výchozí proměnné
Informace o kontextu provádění jsou dostupné pro spouštění úloh prostřednictvím výchozích proměnných. Vaše úlohy a skripty můžou tyto proměnné použít k vyhledání informací o systému, vydání, fázi nebo agentu, ve kterém jsou spuštěné. S výjimkou System.Debug jsou tyto proměnné jen pro čtení a jejich hodnoty jsou automaticky nastaveny systémem. Některé z nejvýznamnějších proměnných jsou popsány v následujících tabulkách. Pokud chcete zobrazit úplný seznam, podívejte se na zobrazení aktuálních hodnot všech proměnných.
Tip
Můžete zobrazit aktuální hodnoty všech proměnných pro vydání a použít výchozí proměnnou ke spuštění vydané verze v režimu ladění.
Systémový
Název proměnné | Popis |
---|---|
System.TeamFoundationServerUri | Adresa URL připojení služby v Azure Pipelines. Použijte ho ze skriptů nebo úloh k volání rozhraní REST API služby Azure Pipelines. Příklad: https://fabrikam.vsrm.visualstudio.com/ |
System.TeamFoundationCollectionUri | Adresa URL kolekce Team Foundation nebo Azure Pipelines Použijte to ze skriptů nebo úloh k volání rozhraní REST API v jiných službách, jako je sestavení a správa verzí. Příklad: https://dev.azure.com/fabrikam/ |
System.CollectionId | ID kolekce, do které patří toto sestavení nebo verze. Příklad: 6c6f3423-1c84-4625-995a-f7f143a1e43d |
System.DefinitionId | ID kanálu verze, do kterého aktuální verze patří. Příklad: 1 |
System.TeamProject | Název projektu, do kterého patří toto sestavení nebo vydání. Příklad: Fabrikam |
System.TeamProjectId | ID projektu, do kterého patří toto sestavení nebo vydání. Příklad: 79f5c12e-3337-4151-be41-a268d2c73344 |
System.ArtifactsDirectory | Adresář, do kterého se artefakty stáhnou během nasazování vydané verze. Adresář se vymaže před každým nasazením, pokud vyžaduje stažení artefaktů do agenta. Stejné jako Agent.ReleaseDirectory a System.DefaultWorkingDirectory. Příklad: C:\agent\_work\r1\a |
System.DefaultWorkingDirectory | Adresář, do kterého se artefakty stáhnou během nasazování vydané verze. Adresář se vymaže před každým nasazením, pokud vyžaduje stažení artefaktů do agenta. Stejné jako Agent.ReleaseDirectory a System.ArtifactsDirectory. Příklad: C:\agent\_work\r1\a |
System.WorkFolder | Pracovní adresář pro tohoto agenta, kde se vytvoří podsložky pro každé sestavení nebo vydání. Stejné jako Agent.RootDirectory a Agent.WorkFolder. Příklad: C:\agent\_work |
System.Debug | Toto je jediná systémová proměnná, kterou můžou uživatelé nastavit . Nastavte tuto hodnotu na true, aby se verze spustila v režimu ladění, aby pomohla při hledání chyb. Příklad: true |
Verze
Název proměnné | Popis |
---|---|
Release.AttemptNumber | Kolikrát je tato verze v této fázi nasazená. Příklad: 1 |
Release.DefinitionEnvironmentId | ID fáze v odpovídajícím kanálu verze. Příklad: 1 |
Release.DefinitionId | ID kanálu verze, do kterého aktuální verze patří. Příklad: 1 |
Release.DefinitionName | Název kanálu verze, do kterého aktuální verze patří. Příklad: fabrikam-cd |
Release.Deployment.RequestedFor | Zobrazovaný název identity, která aktivovala (spustila) probíhající nasazení. Příklad: Mateo Escobedo |
Release.Deployment.RequestedForEmail | E-mailová adresa identity, která aktivovala (spustila) probíhající nasazení. Příklad: mateo@fabrikam.com |
Release.Deployment.RequestedForId | ID identity, která aktivovala (spustila) probíhající nasazení. Příklad: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.DeploymentID | ID nasazení. Jedinečné pro každou úlohu. Příklad: 254 |
Release.DeployPhaseID | ID fáze, ve které je spuštěné nasazení. Příklad: 127 |
Release.EnvironmentId | ID instance fáze ve vydané verzi, do které aktuálně probíhá nasazení. Příklad: 276 |
Release.EnvironmentName | Název fáze, do které právě probíhá nasazení. Příklad: Dev |
Release.EnvironmentUri | Identifikátor URI instance fáze ve vydané verzi, ve které právě probíhá nasazení. Příklad: vstfs://ReleaseManagement/Environment/276 |
Release.Environment. {stage-name}.status | Stav nasazení fáze. Příklad: InProgress |
Release.PrimaryArtifactSourceAlias | Alias primárního zdroje artefaktů Příklad: fabrikam\_web |
Release.Reason | Důvod nasazení. Podporované hodnoty jsou:ContinuousIntegration – verze byla spuštěna v průběžném nasazování po dokončení sestavení.Manual – vydání se spustilo ručně.None – důvod nasazení nebyl zadán.Schedule – vydání začalo podle plánu. |
Release.ReleaseDescription | Textový popis uvedený v době vydání. Příklad: Critical security patch |
Release.ReleaseId | Identifikátor aktuálního záznamu verze. Příklad: 118 |
Release.ReleaseName | Název aktuální verze Příklad: Release-47 |
Release.ReleaseUri | Identifikátor URI aktuální verze. Příklad: vstfs://ReleaseManagement/Release/118 |
Release.ReleaseWebURL | Adresa URL pro tuto verzi. Příklad: https://dev.azure.com/fabrikam/f3325c6c/_release?releaseId=392&_a=release-summary |
Release.RequestedFor | Zobrazovaný název identity, která aktivovala vydání. Příklad: Mateo Escobedo |
Release.RequestedForEmail | E-mailová adresa identity, která aktivovala vydání. Příklad: mateo@fabrikam.com |
Release.RequestedForId | ID identity, která aktivovala vydání. Příklad: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.SkipArtifactsDownload | Logická hodnota, která určuje, jestli se má přeskočit stahování artefaktů do agenta. Příklad: FALSE |
Release.TriggeringArtifact.Alias | Alias artefaktu, který aktivoval vydání. Tato hodnota je prázdná, pokud byla vydaná verze naplánována nebo aktivována ručně. Příklad: fabrikam\_app |
Fáze vydání
Název proměnné | Popis |
---|---|
Release.Environment. {stage name}. Stav | Stav nasazení této verze v zadané fázi. Příklad: NotStarted |
Agent
Název proměnné | Popis |
---|---|
Agent.Name | Název agenta zaregistrovaný ve fondu agentů. Pravděpodobně se bude lišit od názvu počítače. Příklad: fabrikam-agent |
Agent.MachineName | Název počítače, na kterém je agent nakonfigurován. Příklad: fabrikam-agent |
Agent.Version | Verze softwaru agenta. Příklad: 2.109.1 |
Agent.JobName | Název spuštěné úlohy, například Release nebo Build. Příklad: Release |
Agent.HomeDirectory | Složka, ve které je agent nainstalovaný. Tato složka obsahuje kód a prostředky agenta. Příklad: C:\agent |
Agent.ReleaseDirectory | Adresář, do kterého se artefakty stáhnou během nasazování vydané verze. Adresář se vymaže před každým nasazením, pokud vyžaduje stažení artefaktů do agenta. Stejné jako System.ArtifactsDirectory a System.DefaultWorkingDirectory. Příklad: C:\agent\_work\r1\a |
Agent.RootDirectory | Pracovní adresář pro tohoto agenta, kde se vytvoří podsložky pro každé sestavení nebo vydání. Stejné jako Agent.WorkFolder a System.WorkFolder. Příklad: C:\agent\_work |
Agent.WorkFolder | Pracovní adresář pro tohoto agenta, kde se vytvoří podsložky pro každé sestavení nebo vydání. Stejné jako Agent.RootDirectory a System.WorkFolder. Příklad: C:\agent\_work |
Agent.DeploymentGroupId | ID skupiny nasazení, ke které je agent zaregistrovaný. Tato možnost je k dispozici pouze v úlohách skupiny nasazení. Příklad: 1 |
Obecný artefakt
Pro každý artefakt, na který odkazuje verze, můžete použít následující proměnné artefaktů. Ne všechny proměnné jsou smysluplné pro každý typ artefaktu. Následující tabulka uvádí výchozí proměnné artefaktů a uvádí příklady hodnot, které mají v závislosti na typu artefaktu. Pokud je příklad prázdný, znamená to, že proměnná není naplněna pro tento typ artefaktu.
{alias}
Zástupný symbol nahraďte hodnotou, kterou jste zadali pro alias artefaktu, nebo výchozí hodnotou vygenerovanou pro kanál verze.
Název proměnné | Popis |
---|---|
Release.Artifacts. {alias}. DefinitionId | Identifikátor kanálu buildu nebo úložiště. Příklad služby Azure Pipelines: 1 Příklad GitHubu: fabrikam/asp |
Release.Artifacts. {alias}. DefinitionName | Název kanálu buildu nebo úložiště. Příklad služby Azure Pipelines: fabrikam-ci Příklad TFVC: $/fabrikam Příklad Gitu: fabrikam Příklad GitHubu: fabrikam/asp (main) |
Release.Artifacts. {alias}. BuildNumber | Číslo sestavení nebo identifikátor potvrzení. Příklad služby Azure Pipelines: 20170112.1 Příklad Jenkins/TeamCity: 20170112.1 Příklad TFVC: Changeset 3 Příklad Gitu: 38629c964 Příklad GitHubu: 38629c964 |
Release.Artifacts. {alias}. Id sestavení | Identifikátor sestavení. Příklad služby Azure Pipelines: 130 Příklad Jenkins/TeamCity: 130 Příklad GitHubu: 38629c964d21fe405ef830b7d0220966b82c9e11 |
Release.Artifacts. {alias}. BuildURI | Adresa URL sestavení. Příklad služby Azure Pipelines: vstfs://build-release/Build/130 Příklad GitHubu: https://github.com/fabrikam/asp |
Release.Artifacts. {alias}. Zdrojovábranch | Úplná cesta a název větve, ze které byl zdroj vytvořen. Příklad služby Azure Pipelines: refs/heads/main |
Release.Artifacts. {alias}. SourceBranchName | Název pouze větve, ze které byl zdroj sestaven. Příklad služby Azure Pipelines: main |
Release.Artifacts. {alias}. SourceVersion | Potvrzení, které bylo vytvořeno. Příklad služby Azure Pipelines: bc0044458ba1d9298cdc649cb5dcf013180706f7 |
Release.Artifacts. {alias}. Repository.Provider | Typ úložiště, ze kterého byl zdroj sestaven. Příklad služby Azure Pipelines: Git |
Release.Artifacts. {alias}. RequestedForID | Identifikátor účtu, který aktivoval sestavení. Příklad služby Azure Pipelines: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.Artifacts. {alias}. RequestedFor | Název účtu, který požadoval sestavení. Příklad služby Azure Pipelines: Mateo Escobedo |
Release.Artifacts. {alias}. Typ | Typ zdroje artefaktů, například Sestavení. Příklad služby Azure Pipelines: Build Příklad Jenkinse: Jenkins Příklad TeamCity: TeamCity Příklad TFVC: TFVC Příklad Gitu: Git Příklad GitHubu: GitHub |
Release.Artifacts. {alias}. PullRequest.TargetBranch | Úplná cesta a název větve, která je cílem žádosti o přijetí změn. Tato proměnná se inicializuje pouze v případě, že se vydání aktivuje tokem žádosti o přijetí změn. Příklad služby Azure Pipelines: refs/heads/main |
Release.Artifacts. {alias}. PullRequest.TargetBranchName | Název pouze větve, která je cílem žádosti o přijetí změn. Tato proměnná se inicializuje pouze v případě, že se vydání aktivuje tokem žádosti o přijetí změn. Příklad služby Azure Pipelines: main |
Viz také alias zdroje artefaktů
Primární artefakt
Jeden z artefaktů označíte jako primární artefakt v kanálu verze. Pro určený primární artefakt azure Pipelines naplní následující proměnné.
Název proměnné | Stejné jako |
---|---|
Build.DefinitionId | Release.Artifacts. {Alias primárního artefaktu}. DefinitionId |
Build.DefinitionName | Release.Artifacts. {Alias primárního artefaktu}. DefinitionName |
Build.BuildNumber | Release.Artifacts. {Alias primárního artefaktu}. BuildNumber |
Build.BuildId | Release.Artifacts. {Alias primárního artefaktu}. Id sestavení |
Build.BuildURI | Release.Artifacts. {Alias primárního artefaktu}. BuildURI |
Build.SourceBranch | Release.Artifacts. {Alias primárního artefaktu}. Zdrojovábranch |
Build.SourceBranchName | Release.Artifacts. {Alias primárního artefaktu}. SourceBranchName |
Build.SourceVersion | Release.Artifacts. {Alias primárního artefaktu}. SourceVersion |
Build.Repository.Provider | Release.Artifacts. {Alias primárního artefaktu}. Repository.Provider |
Build.RequestedForID | Release.Artifacts. {Alias primárního artefaktu}. RequestedForID |
Build.RequestedFor | Release.Artifacts. {Alias primárního artefaktu}. RequestedFor |
Build.Type | Release.Artifacts. {Alias primárního artefaktu}. Typ |
Build.PullRequest.TargetBranch | Release.Artifacts. {Alias primárního artefaktu}. PullRequest.TargetBranch |
Build.PullRequest.TargetBranchName | Release.Artifacts. {Alias primárního artefaktu}. PullRequest.TargetBranchName |
Použití výchozích proměnných
Výchozí proměnné můžete použít dvěma způsoby – jako parametry pro úlohy v kanálu verze nebo ve skriptech.
Jako vstup úkolu můžete přímo použít výchozí proměnnou.
Pokud chcete například předat Release.Artifacts.{Artifact alias}.DefinitionName
zdroj artefaktů, jehož alias je ASPNET4.CI úkolu, použijete $(Release.Artifacts.ASPNET4.CI.DefinitionName)
.
Chcete-li použít výchozí proměnnou ve skriptu, musíte nejprve nahradit .
výchozí názvy proměnných _
.
Pokud chcete například vytisknout hodnotu proměnné Release.Artifacts.{Artifact alias}.DefinitionName
artefaktu pro zdroj artefaktů, jehož alias je ASPNET4.CI ve skriptu PowerShellu, použijte $env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME
.
Všimněte si, že původní název aliasu zdroje artefaktů , ASPNET4.CI
je nahrazen .ASPNET4_CI
Zobrazení aktuálních hodnot všech proměnných
Otevřete zobrazení kanálů souhrnu vydané verze a zvolte fázi, kterou vás zajímá. V seznamu kroků zvolte Inicializovat úlohu.
Tím se otevře protokol pro tento krok. Posuňte se dolů a zobrazte hodnoty používané agentem pro tuto úlohu.
Spuštění verze v režimu ladění
Zobrazení dalších informací jako spuštění verze a v souborech protokolu spuštěním celé verze nebo pouze úloh v jednotlivých fázích vydání v režimu ladění. To vám může pomoct při řešení problémů a selhání.
Pokud chcete zahájit režim ladění pro celou verzi, přidejte proměnnou s názvem
System.Debug
s hodnotoutrue
na kartu Proměnné kanálu verze.Pokud chcete zahájit režim ladění pro jednu fázi, otevřete dialogové okno Konfigurovat fázi z místní nabídky fáze a přidejte proměnnou s názvem
System.Debug
s hodnotoutrue
na kartu Proměnné .Případně vytvořte skupinu proměnných obsahující proměnnou s názvem
System.Debug
s hodnotoutrue
a propojte tuto skupinu proměnných s kanálem verze.
Tip
Pokud se zobrazí chyba související s připojením ke službě Azure RM, přečtěte si téma Postupy: Řešení potíží s připojením ke službě Azure Resource Manager.
Vlastní proměnné
Vlastní proměnné lze definovat v různých oborech.
Sdílejte hodnoty napříč všemi definicemi v projektu pomocí skupin proměnných. Vyberte skupinu proměnných, pokud potřebujete použít stejné hodnoty ve všech definicích, fázích a úkolech v projektu a chcete mít možnost změnit hodnoty na jednom místě. Na kartě Knihovna můžete definovat a spravovat skupiny proměnných.
Sdílejte hodnoty napříč všemi fázemi pomocí proměnných kanálu verze. Vyberte proměnnou kanálu verze, pokud potřebujete použít stejnou hodnotu ve všech fázích a úlohách v kanálu verze a chcete mít možnost změnit hodnotu na jednom místě. Tyto proměnné definujete a spravujete na kartě Proměnné v kanálu verze. Na stránce Proměnné kanálu otevřete rozevírací seznam Obor a vyberte Release (Uvolnit). Když přidáte proměnnou, nastaví se ve výchozím nastavení na rozsah verze.
Sdílejte hodnoty napříč všemi úkoly v rámci jedné konkrétní fáze pomocí proměnných fáze. Použijte proměnnou na úrovni fáze pro hodnoty, které se liší od fáze do fáze (a jsou stejné pro všechny úkoly ve fázi). Tyto proměnné definujete a spravujete na kartě Proměnné kanálu verze. Na stránce Proměnné kanálu otevřete rozevírací seznam Obor a vyberte požadovanou fázi. Když přidáte proměnnou, nastavte obor na příslušné prostředí.
Použití vlastních proměnných v projektu, kanálu verze a oboru fáze vám pomůže:
Vyhněte se duplikaci hodnot, což usnadňuje aktualizaci všech výskytů jako jedné operace.
Uložte citlivé hodnoty tak, aby je uživatelé kanálů verze neviděli ani nezměnili. Určete vlastnost konfigurace, která má být zabezpečenou (tajnou) proměnnou výběrem ikony (visací zámek) vedle proměnné.
Důležité
Hodnoty skrytých (tajných) proměnných jsou bezpečně uložené na serveru a uživatelé je po uložení nedají zobrazit. Během nasazení služba verze Azure Pipelines tyto hodnoty dešifruje při odkazování na úlohy a předá je agentu přes zabezpečený kanál HTTPS.
Poznámka:
Vytváření vlastních proměnných může přepsat standardní proměnné. Například proměnná prostředí Cesta Prostředí PowerShell. Pokud vytvoříte vlastní Path
proměnnou v agentovi Windows, přepíše $env:Path
se proměnná a PowerShell nebude moct spustit.
Použití vlastních proměnných
Pokud chcete použít vlastní proměnné v úlohách sestavení a vydání, jednoduše uzavřete název proměnné do závorek a před ním znakem $ . Pokud máte například proměnnou s názvem adminUserName, můžete aktuální hodnotu této proměnné vložit do parametru úkolu jako $(adminUserName)
.
Poznámka:
Proměnné v různých skupinách, které jsou propojené s kanálem ve stejném oboru (například úloha nebo fáze), se sloučí a výsledek může být nepředvídatelný. Ujistěte se, že pro proměnné ve všech skupinách proměnných používáte různé názvy.
Definování a úprava proměnných ve skriptu
Pokud chcete definovat nebo upravit proměnnou ze skriptu, použijte task.setvariable
příkaz protokolování.
Všimněte si, že aktualizovaná hodnota proměnné je vymezena na spuštěnou úlohu a neprovádí tok mezi úlohami nebo fázemi.
Názvy proměnných se transformují na velká písmena a znaky "." a " se nahradí slovem "_".
Například z Agent.WorkFolder
se stane AGENT_WORKFOLDER
.
Ve Windows se k tomuto přístupu dostanete jako %AGENT_WORKFOLDER%
nebo $env:AGENT_WORKFOLDER
.
V Linuxu a macOS používáte $AGENT_WORKFOLDER
.
Tip
Skript můžete spustit na:
- Agent Windows používající buď úlohu skriptu Batch, nebo úlohu skriptu PowerShellu.
- agent macOS nebo Linux pomocí úlohy skriptu prostředí.
Skript služby Batch
sauce
Nastavení proměnných secret.Sauce
@echo ##vso[task.setvariable variable=sauce]crushed tomatoes
@echo ##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with garlic
Čtení proměnných
Argumenty
"$(sauce)" "$(secret.Sauce)"
Skript
@echo off
set sauceArgument=%~1
set secretSauceArgument=%~2
@echo No problem reading %sauceArgument% or %SAUCE%
@echo But I cannot read %SECRET_SAUCE%
@echo But I can read %secretSauceArgument% (but the log is redacted so I do not spoil
the secret)
Výstup konzoly ze čtení proměnných:
No problem reading crushed tomatoes or crushed tomatoes
But I cannot read
But I can read ******** (but the log is redacted so I do not spoil the secret)
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro