Proměnné verze a artefakty Classic
Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 – TFS 2015
Poznámka
v Microsoft Team Foundation Server (TFS) 2018 a předchozích verzích se kanály sestavení a vydání nazývají definice, spuštění se nazývají sestavení, připojení služby se nazývají koncové body služby, fáze se nazývají prostředía úlohy se nazývají fáze.
Klasické verze a proměnné artefaktů představují pohodlný způsob, jak vyměňovat a přenášet data v rámci vašeho kanálu. Každá proměnná je uložená jako řetězec a její hodnota se může měnit mezi spuštěním vašeho kanálu.
Proměnné se liší od parametrů modulu runtime , které jsou k dispozici pouze v době analýzy šablony.
Poznámka
Toto je referenční článek, který pokrývá klasické proměnné verze a artefakty. Chcete-li pochopit proměnné v kanálech YAML, přečtěte si téma uživatelsky definované proměnné. Při migraci z kanálu verze do kanálu YAML Release.* nebudou proměnné naplněny.
při vytváření úloh pro nasazení aplikace do každé fáze v DevOps procesy CI/CD vám proměnné pomůžou:
Definujte obecnější kanál nasazení jednou a pak ho pro každou fázi snadno přizpůsobte. Proměnnou lze například použít k reprezentaci připojovacího řetězce 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 spouští kanál nasazení. Skript může například potřebovat přístup k umístění sestavení, aby ho stáhl nebo do pracovního adresáře v agentovi a vytvořil dočasné soubory. Jedná se o výchozí proměnné.
Tip
Můžete zobrazit aktuální hodnoty všech proměnných pro vydání a použít výchozí proměnnou pro spuštění vydání v režimu ladění.
Výchozí proměnné
Informace o kontextu spuštění jsou zpřístupněny pro spuštěné úlohy prostřednictvím výchozích proměnných. Pomocí těchto proměnných můžou vaše úkoly a skripty najít informace o systému, vydané verzi, fázi nebo agentovi, na kterých běží. S výjimkou System. Debugjsou 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. Úplný seznam naleznete v tématu zobrazení aktuálních hodnot všech proměnných.
Systém
| Název proměnné | Description |
|---|---|
| System. TeamFoundationServerUri | Adresa URL připojení služby v TFS nebo Azure Pipelines. tento postup použijte z vašich skriptů nebo úloh k volání rozhraní REST api Azure Pipelines. Příklad: https://fabrikam.vsrm.visualstudio.com/ |
| System. TeamFoundationCollectionUri | Adresa URL kolekce nebo Azure Pipelines Team Foundation Tento postup použijte z vašich skriptů nebo úloh k volání rozhraní REST API v jiných službách, jako je například sestavení a správa verzí. Příklad: https://dev.azure.com/fabrikam/ |
| System. CollectionId | ID kolekce, do které patří sestavení nebo verze Není k dispozici v TFS 2015. Příklad: 6c6f3423-1c84-4625-995a-f7f143a1e43d |
| System. identifikátorem | ID kanálu vydaných verzí, ke kterému patří aktuální verze Není k dispozici v TFS 2015. Příklad: 1 |
| System. TeamProject | Název projektu, ke kterému patří sestavení nebo vydání. Příklad: Fabrikam |
| System. TeamProjectId | ID projektu, do kterého patří sestavení nebo verze Není k dispozici v TFS 2015. Příklad: 79f5c12e-3337-4151-be41-a268d2c73344 |
| System. ArtifactsDirectory | Adresář, do kterého se stáhnou artefakty během nasazování verze Adresář je vymazán 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 stáhnou artefakty během nasazování verze Adresář je vymazán 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 jsou vytvořeny 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 nastavit uživatelé. Nastavte na hodnotu true, pokud chcete Spustit vydání v režimu ladění , abyste mohli pomoct při hledání chyb. Příklad: true |
Vydat
| Název proměnné | Description |
|---|---|
| Release. AttemptNumber | Kolikrát je tato verze v této fázi nasazena. Není k dispozici v TFS 2015. Příklad: 1 |
| Release. DefinitionEnvironmentId | ID fáze v odpovídajícím kanálu vydání. Není k dispozici v TFS 2015. Příklad: 1 |
| Release. identifikátorem | ID kanálu vydaných verzí, ke kterému patří aktuální verze Není k dispozici v TFS 2015. Příklad: 1 |
| Release. definition | Název kanálu vydaných verzí, ke kterému patří aktuální verze Příklad: fabrikam-cd |
| Release. Deployment. RequestedFor | Zobrazovaný název aktivované identity (spuštěno) aktuálně probíhajícího nasazení. Není k dispozici v TFS 2015. Příklad: Mateo Escobedo |
| Release. Deployment. RequestedForEmail | E-mailová adresa aktivované identity (spuštěno) aktuálně probíhajícího nasazení. Není k dispozici v TFS 2015. Příklad: mateo@fabrikam.com |
| Release. Deployment. RequestedForId | ID identity, která aktivoval (spustila) aktuálně probíhající nasazení. Není k dispozici v TFS 2015. Příklad: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
| Release.DeploymentID | ID nasazení. Jedinečná na úlohu. Příklad: 254 |
| Release.DeployPhaseID | ID fáze, ve které je nasazení spuštěné. Příklad: 127 |
| Release.EnvironmentId | ID instance fáze ve verzi, ve které aktuálně probíhá nasazení. Příklad: 276 |
| Release.EnvironmentName | Název fáze, ve které právě probíhá nasazení. Příklad: Dev |
| Release.EnvironmentUri | Identifikátor URI instance fáze ve verzi, ve které právě probíhá nasazování. Příklad: vstfs://ReleaseManagement/Environment/276 |
| Release.Environments. {stage-name}.status | Stav nasazení fáze Příklad: InProgress |
| Release.PrimaryArtifactSourceAlias | Alias primárního zdroje artefaktů Příklad: fabrikam\_web |
| Důvod vydání | Důvod nasazení. Podporované hodnoty jsou:ContinuousIntegration – verze se spouštěla v průběžném nasazování po dokončení sestavení.Manual – verze se spouštěla ručně.None – Nebyl zadán důvod nasazení.Scheduled – verze se spouštěla podle plánu. |
| Release.ReleaseDescription | Textový popis poskytnutý v době vydání verze. 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á vyvolala vydání. Příklad: Mateo Escobedo |
| Release.RequestedForEmail | E-mailová adresa identity, která vyvolala vydání. Příklad: mateo@fabrikam.com |
| Release.RequestedForId | ID identity, která vyvolala 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ý vyvolal vydání. Tato informace je prázdná, pokud byla verze naplánována nebo aktivována ručně. Příklad: fabrikam\_app |
Fáze vydání
| Název proměnné | Description |
|---|---|
| Release.Environments. {stage name}. Stav | Stav nasazení této verze v zadané fázi. Není k dispozici v TFS 2015. Příklad: NotStarted |
Agent
| Název proměnné | Description |
|---|---|
| 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 Verze nebo Sestavení. Příklad: Release |
| Agent.HomeDirectory | Složka, ve které je agent nainstalovaný. Tato složka obsahuje kód a prostředky pro agenta. Příklad: C:\agent |
| Agent.ReleaseDirectory | Adresář, do kterého se artefakty stahují během nasazování verze. Pokud tento adresář vyžaduje stažení artefaktů do agenta, před každým nasazením se tento adresář vyčistí. Stejné jako System.ArtifactsDirectory a System.DefaultWorkingDirectory. Příklad: C:\agent\_work\r1\a |
| Agent.RootDirectory | Pracovní adresář pro tohoto agenta, ve kterém se vytvářejí 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 jsou vytvořeny 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í, se kterou je agent zaregistrován Tato operace je k dispozici pouze v úlohách skupiny nasazení. Není k dispozici na serveru TFS 2018 Update 1. Příklad: 1 |
Obecný artefakt
Pro každý artefakt, na který je odkazováno v vydané verzi, 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 obsahuje příklady hodnot, které mají v závislosti na typu artefaktu. Pokud je příklad prázdný, znamená to, že pro tento typ artefaktu není naplněna proměnná.
{alias}Zástupný text nahraďte hodnotou, kterou jste zadali pro {alias} , nebo s výchozí hodnotou generovanou pro kanál verze.
| Název proměnné | Description |
|---|---|
| Předběžné. Artifacts. {alias}. Identifikátorem | Identifikátor kanálu sestavení nebo úložiště. Azure Pipelines příklad: 1GitHub příklad: fabrikam/asp |
| Předběžné. Artifacts. {alias}. Definice | Název kanálu sestavení nebo úložiště. Azure Pipelines příklad: fabrikam-ciPříklad TFVC: $/fabrikamPříklad Gitu: fabrikamGitHub příklad: fabrikam/asp (main) |
| Předběžné. Artifacts. {alias}. BuildNumber | Číslo sestavení nebo identifikátor potvrzení. Azure Pipelines příklad: 20170112.1Příklad Jenkinse/TeamCity: 20170112.1Příklad TFVC: Changeset 3Příklad Gitu: 38629c964GitHub příklad: 38629c964 |
| Předběžné. Artifacts. {alias}. BuildId | Identifikátor sestavení Azure Pipelines příklad: 130Příklad Jenkinse/TeamCity: 130GitHub příklad: 38629c964d21fe405ef830b7d0220966b82c9e11 |
| Předběžné. Artifacts. {alias}. Její BuildUri | Adresa URL pro sestavení. Azure Pipelines příklad: vstfs://build-release/Build/130GitHub příklad: https://github.com/fabrikam/asp |
| Předběžné. Artifacts. {alias}. SourceBranch | Úplná cesta a název větve, ze které byl vytvořen zdroj. Azure Pipelines příklad: refs/heads/main |
| Předběžné. Artifacts. {alias}. SourceBranchName | Název pouze ze větve, ze které byl vytvořen zdroj. Azure Pipelines příklad: main |
| Předběžné. Artifacts. {alias}. SourceVersion | Potvrzení, které bylo vytvořeno. Azure Pipelines příklad: bc0044458ba1d9298cdc649cb5dcf013180706f7 |
| Předběžné. Artifacts. {alias}. Úložiště. Provider | Typ úložiště, ze kterého byl vytvořen zdroj. Azure Pipelines příklad: Git |
| Předběžné. Artifacts. {alias}. RequestedForID | Identifikátor účtu, který spustil sestavení. Azure Pipelines příklad: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
| Předběžné. Artifacts. {alias}. RequestedFor | Název účtu, který požadoval sestavení Azure Pipelines příklad: Mateo Escobedo |
| Předběžné. Artifacts. {alias}. Textový | Typ zdroje artefaktu, jako je například sestavení. Azure Pipelines příklad: BuildPříklad Jenkinse: JenkinsPříklad TeamCity: TeamCityPříklad TFVC: TFVCPříklad Gitu: GitGitHub příklad: GitHub |
| Předběžné. 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 jenom v případě, že se vydaná verze aktivuje pomocí toku žádosti o přijetí změn. Azure Pipelines příklad: refs/heads/main |
| Předběžné. Artifacts. {alias}. PullRequest.TargetBranchName | Název pouze pro větev, která je cílem žádosti o přijetí změn. Tato proměnná se inicializuje jenom v případě, že se vydaná verze aktivuje pomocí toku žádosti o přijetí změn. Azure Pipelines příklad: main |
Viz také alias zdroje artefaktů .
Primární artefakt
Jeden z artefaktů určíte jako primární artefakt v kanálu vydání. pro určený primární artefakt Azure Pipelines naplní následující proměnné.
| Název proměnné | Stejné jako |
|---|---|
| Build. identifikátorem | Předběžné. Artifacts. {Primární alias artefaktu}. Identifikátorem |
| Build. definition | Předběžné. Artifacts. {Primární alias artefaktu}. Definice |
| Build. BuildNumber | Předběžné. Artifacts. {Primární alias artefaktu}. BuildNumber |
| Build. BuildId | Předběžné. Artifacts. {Primární alias artefaktu}. BuildId |
| Build. její BuildUri | Předběžné. Artifacts. {Primární alias artefaktu}. Její BuildUri |
| Build. SourceBranch | Předběžné. Artifacts. {Primární alias artefaktu}. SourceBranch |
| Build. SourceBranchName | Předběžné. Artifacts. {Primární alias artefaktu}. SourceBranchName |
| Build. SourceVersion | Předběžné. Artifacts. {Primární alias artefaktu}. SourceVersion |
| Build. úložiště. Provider | Předběžné. Artifacts. {Primární alias artefaktu}. Úložiště. Provider |
| Build. RequestedForID | Předběžné. Artifacts. {Primární alias artefaktu}. RequestedForID |
| Build. RequestedFor | Předběžné. Artifacts. {Primární alias artefaktu}. RequestedFor |
| Build. Type | Předběžné. Artifacts. {Primární alias artefaktu}. Textový |
| Build. PullRequest. TargetBranch | Předběžné. Artifacts. {Primární alias artefaktu}. PullRequest.TargetBranch |
| Build. PullRequest. TargetBranchName | Předběžné. Artifacts. {Primární alias artefaktu}. PullRequest.TargetBranchName |
Použít výchozí proměnné
Výchozí proměnné můžete použít dvěma způsoby – jako parametry úloh v kanálu vydání nebo ve vašich skriptech.
Můžete přímo použít výchozí proměnnou jako vstup pro úlohu.
Například pro předání Release.Artifacts.{Artifact alias}.DefinitionName zdroji artefaktu, jehož alias je Release.Artifacts.{Artifact alias}.DefinitionName do úlohy byste mohli použít $(Release.Artifacts.ASPNET4.CI.DefinitionName) .

Chcete-li použít výchozí proměnnou ve skriptu, je nutné nejprve nahradit . výchozí názvy proměnných pomocí _ .
Například pro tisk hodnoty proměnné artefaktu Release.Artifacts.{Artifact alias}.DefinitionName pro zdroj artefaktu, jehož alias je Release.Artifacts.{Artifact alias}.DefinitionName ve skriptu PowerShellu použijete $env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME .

Všimněte si, že původní název aliasu zdroje artefaktu ASPNET4.CI je nahrazen ASPNET4_CI .
Zobrazit aktuální hodnoty všech proměnných
Otevřete zobrazení kanálů souhrnu pro danou verzi a vyberte fázi, které vás zajímá. V seznamu kroků klikněte na možnost inicializovat úlohu.

Tím se otevře protokol pro tento krok. Posuňte se dolů a zobrazte hodnoty používané agentem pro tuto úlohu.

Spustit vydání v režimu ladění
Zobrazit další informace ve formě vydání a v souborech protokolu spuštěním celé vydané verze nebo pouze úkolů v jednotlivých fázích vydané verze v režimu ladění. To může být užitečné při řešení problémů a selhání.
Chcete-li spustit režim ladění pro celou vydanou verzi, přidejte proměnnou s názvem
System.Debugs hodnotoutruena kartuSystem.Debugkanálu vydání.Chcete-li spustit režim ladění pro jednu fázi, otevřete dialogové okno Konfigurovat fázi v místní nabídce fáze a přidejte proměnnou s názvem s hodnotou
truena kartutrue.Případně vytvořte skupinu proměnných obsahující proměnnou s názvem s hodnotou
truea propojte tuto skupinu proměnných s kanálem verze.
Tip
Pokud se zobrazí chyba související s připojením služby Azure RM, přečtěte si téma Postupy: řešení potíží s připojením Azure Resource Manager služby.
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 napříč všemi definicemi, fázemi a úlohami v projektu a chcete mít možnost změnit hodnoty na jednom místě. Skupiny proměnných definujete a spravujete na kartě Knihovna .
Sdílejte hodnoty napříč všemi fázemi pomocí proměnných kanálu uvolnění. Pokud potřebujete použít stejnou hodnotu napříč všemi fázemi a úlohami v kanálu verze, vyberte proměnnou kanálu vydání 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 vydání. Na stránce proměnné kanálu otevřete rozevírací seznam rozsah a vyberte verze. Ve výchozím nastavení platí, že když přidáte proměnnou, je nastavena 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 úlohy ve fázi). Tyto proměnné definujete a spravujete na kartě proměnné kanálu vydání. Na stránce proměnné kanálu otevřete rozevírací seznam rozsah 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 rámci projektu, kanálu vydání a rozsahu fáze vám pomůže:
Vyhněte se duplicitám hodnot, což usnadňuje aktualizaci všech výskytů jako jedné operace.
Uložte citlivé hodnoty tak, aby je uživatelé kanálu vydané verze neviděli nebo nezměnili. Určete vlastnost konfigurace tak, aby byla zabezpečená (tajná) proměnná, a to tak, že vyberete ikonu
(visacího zámku nezobrazuje) 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 Azure Pipelines release dešifruje tyto hodnoty, když na ně odkazují úkoly a předá je agentovi 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í path PowerShellu. pokud vytvoříte vlastní Path proměnnou v agentovi Windows, přepíše se $env:Path proměnná a PowerShell nebude možné spustit.
Použití vlastních proměnných
Chcete-li použít vlastní proměnné v úlohách sestavení a vydání, jednoduše vložte název proměnné do závorek a před ni uveďte $ znak. Například pokud máte proměnnou s názvem adminUserName, můžete vložit aktuální hodnotu proměnné do parametru úlohy jako .
Poznámka
Proměnné v různých skupinách, které jsou propojeny s kanálem ve stejném oboru (například úloha nebo fáze), budou kolidovat a výsledek může být nepředvídatelné. Ujistěte se, že používáte různé názvy pro proměnné napříč všemi skupinami proměnných.
Definování a úprava proměnných ve skriptu
Chcete-li definovat nebo upravit proměnnou ze skriptu, použijte task.setvariable příkaz Logging.
Všimněte si, že aktualizovaná hodnota proměnné je vymezená na prováděnou úlohu a neprovádí tok mezi úlohami nebo fázemi.
Názvy proměnných jsou transformované na velká písmena a znaky "." a "" jsou nahrazeny znakem "_".
Například Agent.WorkFolder se bude jednat o AGENT_WORKFOLDER .
v Windows k tomuto přístupu přistupujete jako %AGENT_WORKFOLDER% nebo $env:AGENT_WORKFOLDER .
V systémech Linux a macOS můžete použít $AGENT_WORKFOLDER .
Tip
Skript můžete spustit na:
- Windows agenta pomocí úlohy dávkového skriptu nebo skriptu powershellu.
- MacOS nebo Linux agent pomocí úlohy skriptu prostředí.
Dávkový skript
Nastavení
proměnných a 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 na konzole z č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)
Nastavení
Nastavení