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:1
GitHub příklad:fabrikam/asp
Předběžné. Artifacts. {alias}. Definice Název kanálu sestavení nebo úložiště.

Azure Pipelines příklad:fabrikam-ci
Příklad TFVC: $/fabrikam
Příklad Gitu: fabrikam
GitHub příklad:fabrikam/asp (main)
Předběžné. Artifacts. {alias}. BuildNumber Číslo sestavení nebo identifikátor potvrzení.

Azure Pipelines příklad:20170112.1
Příklad Jenkinse/TeamCity: 20170112.1
Příklad TFVC: Changeset 3
Příklad Gitu: 38629c964
GitHub příklad:38629c964
Předběžné. Artifacts. {alias}. BuildId Identifikátor sestavení

Azure Pipelines příklad:130
Příklad Jenkinse/TeamCity: 130
GitHub příklad:38629c964d21fe405ef830b7d0220966b82c9e11
Předběžné. Artifacts. {alias}. Její BuildUri Adresa URL pro sestavení.

Azure Pipelines příklad:vstfs://build-release/Build/130
GitHub 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:Build
Příklad Jenkinse: Jenkins
Příklad TeamCity: TeamCity
Příklad TFVC: TFVC
Příklad Gitu: Git
GitHub 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) .

Použití proměnných artefaktů v argumentech na úlohu skriptu PowerShellu

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 .

Použití proměnných artefaktů ve vloženém skriptu PowerShellu

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

  1. 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.

    Otevření protokolu pro vydání

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

    Zobrazení hodnot proměnných v vydané verzi

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.Debug s hodnotou true na kartu System.Debug kaná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 true na kartu true .

  • Případně vytvořte skupinu proměnných obsahující proměnnou s názvem s hodnotou true a 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 (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:

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)