Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Het gebruik van variabelen in klassieke release-pijplijnen is een handige manier om gegevens in uw pijplijn uit te wisselen en te transporteren. Elke variabele wordt opgeslagen als een tekenreeks en de waarde kan veranderen tussen pijplijnuitvoeringen.
In tegenstelling tot runtimeparameters, die alleen beschikbaar zijn bij het parseren van sjablonen, zijn variabelen in klassieke releasepijplijnen toegankelijk gedurende het hele implementatieproces.
Wanneer u taken instelt voor het implementeren van uw toepassing in elke fase van uw klassieke release-pijplijn, kunnen variabelen u helpen:
Aanpassing vereenvoudigen: Definieer eenmaal een algemene implementatiepijplijn en pas deze eenvoudig aan voor verschillende fasen. Gebruik bijvoorbeeld een variabele om de verbindingsreeks van een webimplementatie weer te geven, waarbij u de waarde zo nodig voor elke fase aanpast. Deze variabelen worden aangepaste variabelen genoemd.
Gebruik contextuele informatie: krijg toegang tot details over de releasecontext, zoals een fase, een artefact of de agent waarop de implementatie wordt uitgevoerd. Uw scripts kunnen bijvoorbeeld de buildlocatie vereisen voor downloaden of de werkmap van de agent om tijdelijke bestanden te maken. Deze variabelen worden standaardvariabelen genoemd.
Notitie
Zie voor YAML-pijplijnen door de gebruiker gedefinieerde variabelen en vooraf gedefinieerde variabelen voor meer informatie.
Standaardvariabelen
Standaardvariabelen bieden essentiële informatie over de uitvoeringscontext voor uw actieve taken en scripts. Deze variabelen bieden u toegang tot details over het systeem, de release, de fase of de agent waarin ze worden uitgevoerd.
Met uitzondering van System.Debug zijn standaardvariabelen alleen-lezen en stelt het systeem automatisch hun waarden in.
Sommige van de belangrijkste variabelen worden beschreven in de volgende tabellen. Zie De huidige waarden van alle variabelen weergeven om de volledige lijst weer te geven.
Systeemvariabelen
| Variabelenaam | Beschrijving |
|---|---|
| System.TeamFoundationServerUri | De URL van de serviceverbinding in Azure Pipelines. Gebruik deze variabele in uw scripts of taken om REST API's van Azure Pipelines aan te roepen. Voorbeeld: https://fabrikam.vsrm.visualstudio.com/ |
| System.TeamFoundationCollectionUri | De URL van de Team Foundation-verzameling of Azure Pipelines. Gebruik deze variabele in uw scripts of taken om REST API's aan te roepen voor andere services, zoals build- en versiebeheer. Voorbeeld: https://dev.azure.com/fabrikam/ |
| System.CollectionId | De id van de verzameling waartoe deze build of release behoort. Voorbeeld: 6c6f3423-1c84-4625-995a-f7f143a1e43d |
| System.DefinitionId | De id van de release-pijplijn waartoe de huidige release behoort. Voorbeeld: 1 |
| System.TeamProject | De naam van het project waartoe deze build of release behoort. Voorbeeld: Fabrikam |
| System.TeamProjectId | De id van het project waartoe deze build of release behoort. Voorbeeld: 79f5c12e-3337-4151-be41-a268d2c73344 |
| System.ArtifactsDirectory | De map waar de pijplijn artefacten naar downloadt tijdens de implementatie van een release. De pijplijn wist de map vóór elke implementatie als er artefacten naar de agent moeten worden gedownload. Hetzelfde als Agent.ReleaseDirectory en System.DefaultWorkingDirectory.Voorbeeld: C:\agent\_work\r1\a |
| System.DefaultWorkingDirectory | De map waarnaar de pijplijn artefacten downloadt tijdens de implementatie van een release. De pipeline leegt de directory voor elke implementatie indien het nodig is dat artefacten naar de agent worden gedownload. Hetzelfde als Agent.ReleaseDirectory en System.ArtifactsDirectory.Voorbeeld: C:\agent\_work\r1\a |
| System.WorkFolder | De werkmap voor deze agent, waarbij de pijplijn submappen maakt voor elke build of release. Hetzelfde als Agent.RootDirectory en Agent.WorkFolder.Voorbeeld: C:\agent\_work |
| System.Debug | Dit is de enige systeemvariabele die gebruikers kunnen instellen. Stel deze variabele in om truede release uit te voeren in de foutopsporingsmodus om te helpen bij het vinden van fouten.Voorbeeld: true |
Variabelen vrijgeven
| Variabelenaam | Beschrijving |
|---|---|
| Release.AttemptNumber | Het aantal keren dat deze release in deze fase wordt geïmplementeerd. Voorbeeld: 1 |
| Release.DefinitionEnvironmentId | De ID van de fase in de bijbehorende release-pijplijn. Voorbeeld: 1 |
| Release.DefinitionId | De id van de release-pijplijn waartoe de huidige release behoort. Voorbeeld: 1 |
| Release.DefinitionName | De naam van de release-pijplijn waartoe de huidige release behoort. Voorbeeld: fabrikam-cd |
| Release.Deployment.RequestedFor | De weergavenaam van de identiteit die de implementatie heeft geactiveerd (gestart) die momenteel wordt uitgevoerd. Voorbeeld: Mateo Escobedo |
| Release.Deployment.RequestedForEmail | Het e-mailadres van de identiteit die de implementatie heeft geactiveerd (gestart) die momenteel wordt uitgevoerd. Voorbeeld: mateo@fabrikam.com |
| Release.Deployment.RequestedForId | Het ID van de identiteit die de implementatie in gang heeft gezet en momenteel in uitvoering is. Voorbeeld: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
| Release.DeploymentID | De id van de implementatie. Uniek per taak. Voorbeeld: 254 |
| Release.DeployPhaseID | De id van de fase waarin de implementatie wordt uitgevoerd. Voorbeeld: 127 |
| Release.EnvironmentId | De id van het fase-exemplaar in een release waarop de implementatie momenteel wordt uitgevoerd. Voorbeeld: 276 |
| Release.OmgevingsNaam | De naam van de fase waarin de implementatie momenteel wordt uitgevoerd. Voorbeeld: Dev |
| Release.EnvironmentUri | De URI van het fase-exemplaar in een release waarop de implementatie momenteel wordt uitgevoerd. Voorbeeld: vstfs://ReleaseManagement/Environment/276 |
| Release.Environments.{stage-name}.status | De implementatiestatus van de fase. Voorbeeld: InProgress |
| Release.PrimaryArtifactSourceAlias | De alias van de bron van het primaire artefact. Voorbeeld: fabrikam\_web |
| Reden van vrijgave | De reden voor de implementatie. Ondersteunde waarden zijn:ContinuousIntegration - de release is gestart in Continue implementatie nadat een build is voltooid.Manual - de release is handmatig gestart.None - de reden van de implementatie is niet opgegeven.Schedule - de release is gestart vanaf een schema. |
| Release.ReleaseDescription | De tekstbeschrijving die is opgegeven op het moment van de release. Voorbeeld: Critical security patch |
| Release.ReleaseId | De identificatie van de huidige release-record. Voorbeeld: 118 |
| Release.ReleaseName | De naam van de huidige release. Voorbeeld: Release-47 |
| Release.ReleaseUri | De URI van de huidige release. Voorbeeld: vstfs://ReleaseManagement/Release/118 |
| Release.ReleaseWebURL | De URL voor deze release. Voorbeeld: https://dev.azure.com/fabrikam/f3325c6c/_release?releaseId=392&_a=release-summary |
| Vrijgave.AangevraagdVoor | De weergavenaam van de identiteit die de release heeft geactiveerd. Voorbeeld: Mateo Escobedo |
| Verzoek.OmEmailVrijgave | Het e-mailadres van de identiteit die de release heeft geactiveerd. Voorbeeld: mateo@fabrikam.com |
| Release.RequestedForId | De ID van de identiteit die de vrijgave heeft geactiveerd. Voorbeeld: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
| Release.SkipArtifactsDownload | Booleaanse waarde die aangeeft of het downloaden van artefacten naar de agent moet worden overgeslagen. Voorbeeld: FALSE |
| Release.TriggeringArtifact.Alias | De alias van het artefact dat de release heeft geactiveerd. Deze waarde is leeg wanneer de release is gepland of handmatig wordt geactiveerd. Voorbeeld: fabrikam\_app |
Release-fase variabelen
| Variabelenaam | Beschrijving |
|---|---|
| Release.Environments. {naam van fase}. Status | De status van de implementatie van deze release binnen een opgegeven fase. Voorbeeld: NotStarted |
Agentvariabelen
| Variabelenaam | Beschrijving |
|---|---|
| Agent.Name | De naam van de agent die is geregistreerd bij de agentgroep. Deze naam verschilt waarschijnlijk van de computernaam. Voorbeeld: fabrikam-agent |
| Agent.MachineName | De naam van de computer waarop de agent is geconfigureerd. Voorbeeld: fabrikam-agent |
| Agent.Version | De versie van de agentsoftware. Voorbeeld: 2.109.1 |
| Agent.JobName | De naam van de taak die wordt uitgevoerd, zoals Release of Build. Voorbeeld: Release |
| Agent.HomeDirectory | De map waarin de agent is geïnstalleerd. Deze map bevat de code en resources voor de agent. Voorbeeld: C:\agent |
| Agent.ReleaseDirectory | De map die dient als bestemming voor het downloaden van artefacten bij een release-implementatie. De map wordt vóór elke implementatie gewist als er artefacten naar de agent moeten worden gedownload. Het is hetzelfde als System.ArtifactsDirectory en System.DefaultWorkingDirectory.Voorbeeld: C:\agent\_work\r1\a |
| Agent.RootDirectory | De werkmap voor deze agent, waarin submappen worden gemaakt voor elke build of release. Het is hetzelfde als Agent.WorkFolder en System.WorkFolder.Voorbeeld: C:\agent\_work |
| Agent.WorkFolder | De werkmap voor deze agent, waarin submappen worden gemaakt voor elke build of release. Het is hetzelfde als Agent.RootDirectory en System.WorkFolder.Voorbeeld: C:\agent\_work |
| Agent.DeploymentGroupId | De id van de implementatiegroep waarmee de agent zich registreert. Deze id is alleen beschikbaar in de taken van de implementatiegroep. Voorbeeld: 1 |
Variabelen voor artefacten vrijgeven
Gebruik de volgende artefactvariabelen voor elk artefact waarnaar u in een release verwijst. Houd er rekening mee dat niet alle variabelen van toepassing zijn op elk artefacttype. De volgende tabel bevat standaardvariabelen voor artefacten en bevat voorbeelden van hun waarden op basis van het artefacttype. Als een voorbeeld leeg is, geeft dit aan dat de variabele niet van toepassing is op dat artefacttype.
Vervang de {alias} tijdelijke aanduiding door de waarde die u opgeeft voor de artefactbronalias of door de standaardwaarde die is gegenereerd voor de release-pijplijn.
| Variabelenaam | Beschrijving |
|---|---|
| Release.Artifacts. {alias}. DefinitionId | De identificatie van de build-pijplijn of opslagplaats. Voorbeelden: Azure Pipelines: 1GitHub: fabrikam/asp |
| Release.Artifacts. {alias}. DefinitionName | De naam van de build-pijplijn of opslagplaats. Voorbeelden: Azure Pipelines: fabrikam-ciTFVC: $/fabrikamGit: fabrikamGitHub: fabrikam/asp (main) |
| Release.Artifacts. {alias}. BuildNumber | Het buildnummer of de commit-id. Voorbeelden: Azure Pipelines: 20170112.1Jenkins: 20170112.1TFVC: Changeset 3Git: 38629c964GitHub: 38629c964 |
| Release.Artifacts.{alias}.BuildId | De build-id. Voorbeelden: Azure Pipelines: 130Jenkins: 130GitHub: 38629c964d21fe405ef830b7d0220966b82c9e11 |
| Release.Artifacts.{alias}.BuildURI | De URL voor de build. Voorbeelden: Azure Pipelines: vstfs://build-release/Build/130GitHub: https://github.com/fabrikam/asp |
| Release.Artifacts. {alias}. SourceBranch | Het volledige pad en de naam van de tak waar de bron van is gebouwd. Voorbeelden: Azure Pipelines: refs/heads/main |
| Release.Artifacts. {alias}. SourceBranchName | De naam alleen van de vertakking waarop de bron is gebaseerd. Voorbeelden: Azure Pipelines: main |
| Release.Artifacts.{alias}.SourceVersion | De commit die werd gebouwd. Voorbeelden: Azure Pipelines: bc0044458ba1d9298cdc649cb5dcf013180706f7 |
| Release.Artifacts.{alias}.Repository.Provider | Het type opslagplaats waaruit de bron is gebouwd. Voorbeelden: Azure Pipelines: Git |
| Release.Artifacts.{alias}.RequestedForID | De id van het account dat de build heeft geactiveerd. Voorbeelden: Azure Pipelines: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
| Release.Artifacts.{alias}.RequestedFor | De naam van het account dat de build heeft aangevraagd. Voorbeelden: Azure Pipelines: Mateo Escobedo |
| Release.Artifacts.{alias}.Type | Het type artefactbron, zoals Build. Examples: Azure Pipelines: BuildJenkins: JenkinsAzure DevOps Services: TFVCGit: GitGitHub: GitHub |
| Release.Artifacts. {alias}. PullRequest.TargetBranch | Het volledige pad en de naam van de tak die het doel is van een pull request. Deze variabele wordt alleen geïnitialiseerd als de release wordt geactiveerd door een pull-aanvraagstroom. Voorbeelden: Azure Pipelines: refs/heads/main |
| Release.Artifacts. {alias}. PullRequest.TargetBranchName | Alleen de naam van de vertakking die het doelwit is van een pull request. Deze variabele wordt alleen geïnitialiseerd als de release wordt geactiveerd door een pull-aanvraagstroom. Voorbeelden: Azure Pipelines: main |
Variabelen voor primaire artefacten
Als u meerdere artefacten gebruikt, kunt u in klassieke releasepijplijnen één artefact aanwijzen als het primaire artefact. Azure Pipelines vult vervolgens de volgende variabelen voor het aangewezen primaire artefact.
| Variabelenaam | Hetzelfde als |
|---|---|
| Build.DefinitionId | Release.Artifacts.{alias van primair artefact}.DefinitionId |
| Build.DefinitionName | Release.Artifacts.{Alias van primair artefact}.DefinitionName |
| Build.BuildNumber | Release.Artifacts.{Alias van primair artefact}.BuildNumber |
| Build.BuildId | Release.Artifacts.{Alias van primair artefact}.BuildId |
| Build.BuildURI | Release.Artifacts.{Alias van primair artefact}.BuildURI |
| Build.SourceBranch | Release.Artifacts.{Alias van primair artefact}.Bronvertakking |
| Build.SourceBranchName | Release.Artifacts. {Alias van primair artefact}. SourceBranchName |
| Build.SourceVersion | Release.Artifacts.{Alias van primair artefact}.SourceVersion |
| Build.Repository.Provider | Release.Artifacts.{Alias van primair artefact}.Repository.Provider |
| Build.RequestedForID | Release.Artifacts.{Alias van primair artefact}.RequestedForID |
| Build.RequestedFor | Release.Artifacts.{Alias van primair artefact}.RequestedFor |
| Build.Type | Release.Artefacten.{Alias van primair artefact}.Type |
| Build.PullRequest.TargetBranch | Release.Artifacts. {Alias van primair artefact}. PullRequest.TargetBranch |
| Build.PullRequest.TargetBranchName | Release.Artifacts. {Alias van primair artefact}. PullRequest.TargetBranchName |
Standaardvariabelen gebruiken
U kunt de standaardvariabelen op twee manieren gebruiken: als parameters voor taken in een release-pijplijn of in uw scripts.
Gebruik een standaardvariabele rechtstreeks als invoer voor een taak. Als u bijvoorbeeld als argument wilt doorgeven Release.Artifacts.{Artifact alias}.DefinitionName aan een PowerShell-taak voor een artefact met ASPNET4.CI als alias, gebruikt u $(Release.Artifacts.ASPNET4.CI.DefinitionName).
Als u een standaardvariabele in uw script wilt gebruiken, vervangt u de . standaardvariabelenamen door _. Als u bijvoorbeeld de waarde van Release.Artifacts.{Artifact alias}.DefinitionName van een artefact wilt printen met ASPNET4.CI als alias in een PowerShell-script, gebruikt u $env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME. De oorspronkelijke alias, ASPNET4.CI, wordt vervangen door ASPNET4_CI.
Aangepaste variabelen
U kunt aangepaste variabelen definiëren voor verschillende bereiken.
Variabelegroepen: gebruik variabelegroepen om waarden te delen in alle definities in een project. Deze benadering is handig als u dezelfde waarden wilt gebruiken in definities, fasen en taken binnen een project en deze vanaf één locatie wilt beheren. Variabelengroepen definiëren en beheren in de Pijplijnen>Bibliotheek.
Release-pijplijnvariabelen: gebruik releasepijplijnvariabelen om waarden te delen in alle fasen binnen een release-pijplijn. Deze benadering is ideaal voor scenario's waarbij u een consistente waarde nodig hebt voor fasen en taken, met de mogelijkheid om deze vanaf één locatie bij te werken. Definieer en beheer deze variabelen op het tabblad Variabelen van de release-pijplijn. Stel op de pagina Pijplijnvariabelen de vervolgkeuzelijst Bereik in op Release wanneer u een variabele toevoegt.
Fasevariabelen: gebruik fasevariabelen om waarden te delen binnen een specifieke fase van een release-pijplijn. Deze benadering is handig voor waarden die verschillen van fase tot fase, maar consistent zijn voor alle taken binnen een fase. Definieer en beheer deze variabelen op het tabblad Variabelen van de release-pijplijn. Stel op de pagina Pijplijnvariabelen de vervolgkeuzelijst Bereik in op de juiste omgeving bij het toevoegen van een variabele.
Met behulp van aangepaste variabelen op project-, release-pijplijn- en faseniveaus kunt u het volgende doen:
Vermijd het dupliceren van waarden, waardoor het eenvoudiger is om alle exemplaren bij te werken met één wijziging.
Beveilig gevoelige waarden door te voorkomen dat ze door gebruikers worden bekeken of gewijzigd. Als u een variabele als veilig (geheim) wilt markeren, selecteert u het
pictogram naast de variabele.Belangrijk
De waarden van de verborgen variabelen (geheim) worden veilig opgeslagen op de server en gebruikers kunnen ze niet bekijken nadat ze zijn opgeslagen. Tijdens de implementatie ontsleutelt Azure Pipelines deze waarden wanneer taken ernaar verwijzen en doorgeven aan de agent via een beveiligd HTTPS-kanaal.
Notitie
Het maken van aangepaste variabelen kan standaardvariabelen overschrijven. Als u bijvoorbeeld een aangepaste padvariabele op een Windows-agent definieert, wordt de variabele $env:Path overschreven en wordt mogelijk voorkomen dat PowerShell correct wordt uitgevoerd.
Aangepaste variabelen gebruiken
Als u aangepaste variabelen in uw taken wilt gebruiken, plaatst u de naam van de variabele tussen haakjes en plaatst u deze vóór een $ teken. Als u bijvoorbeeld een variabele met de naam adminUserName hebt, voegt u de huidige waarde in een taak in als $(adminUserName).
Notitie
Variabelen uit verschillende groepen die zijn gekoppeld aan een pijplijn binnen hetzelfde bereik (bijvoorbeeld taak of fase) kunnen conflicteren en leiden tot onvoorspelbare resultaten. Om dit probleem te voorkomen, moet u ervoor zorgen dat variabelen in al uw variabelegroepen unieke namen hebben.
Uw variabelen definiëren en wijzigen in een script
Als u een variabele van een script wilt definiëren of wijzigen, gebruikt u de task.setvariable opdracht voor logboekregistratie. De bijgewerkte variabelewaarde is gericht op de taak die wordt uitgevoerd en blijft niet behouden tussen taken of fasen. Houd er rekening mee dat namen van variabelen worden omgezet in hoofdletters, met '.' en '' vervangen door '_'.
Zo wordt Agent.WorkFolder gewijzigd in AGENT_WORKFOLDER.
- Toegang krijgen tot deze variabele op Windows als
%AGENT_WORKFOLDER%of$env:AGENT_WORKFOLDER. - Gebruik in Linux en macOS
$AGENT_WORKFOLDER.
Tip
U kunt een script uitvoeren op:
- Een Windows-agent die een Batch-scripttaak of PowerShell-taak gebruikt.
- Een macOS - of Linux-agent met behulp van een Shell-scripttaak.
Batchscript
Stel de variabelen sauce en secret.Sauce in
@echo ##vso[task.setvariable variable=sauce]crushed tomatoes
@echo ##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with garlic
De variabelen lezen
Argumenten
"$(sauce)" "$(secret.Sauce)"
Script
@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)
Console-uitvoer van het lezen van de variabelen:
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)
De huidige waarden van alle variabelen weergeven
Selecteer Pijplijnen>Releases, en selecteer vervolgens uw release-pijplijn.
Open de overzichtsweergave voor uw release en selecteer de fase waarin u geïnteresseerd bent. In de lijst met stappen, kies Initialiseer taak.
Met deze stap worden de logboeken geopend. Schuif omlaag om de waarden te zien die de agent gebruikt voor deze taak.
Een release uitvoeren in de foutopsporingsmodus
Als u een release uitvoert in de foutopsporingsmodus, kunt u problemen vaststellen en oplossen door extra informatie weer te geven tijdens de uitvoering van de release. U kunt de foutopsporingsmodus voor de hele release inschakelen of alleen voor de taken in een specifieke releasefase.
Als u de foutopsporingsmodus voor de hele release wilt inschakelen, voegt u een variabele met de naam
System.Debugmet de waardetruetoe aan het tabblad Variabelen van de release-pijplijn.Als u de foutopsporingsmodus voor een specifieke fase wilt inschakelen, opent u het dialoogvenster Fase configureren vanuit het snelmenu van de fase en voegt u een variabele met de naam
System.Debugmet de waardetruetoe aan het tabblad Variabelen .U kunt ook een variabelegroep maken met een variabele met de naam
System.Debugvan de waardetrueen deze variabelegroep koppelen aan de release-pijplijn.
Tip
Als er een fout optreedt met betrekking tot Azure Resource Manager-serviceverbindingen, raadpleegt u Procedure: Problemen met Azure Resource Manager-serviceverbindingen oplossen voor meer informatie.
Stel de variabelen
Stel de variabelen