Variabelen gebruiken in klassieke release-pijplijnen
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
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 tijdens het parseren van sjablonen, zijn variabelen in klassieke release-pijplijnen toegankelijk gedurende het hele implementatieproces
Bij het instellen van taken 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 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 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. Met deze variabelen hebt 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, waarbij hun waarden automatisch door het systeem worden ingesteld.
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 dit vanuit 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 dit vanuit 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 waarnaar artefacten worden gedownload tijdens de implementatie van een release. De map wordt vóór elke implementatie gewist 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 artefacten worden gedownload tijdens de implementatie van een release. De map wordt vóór elke implementatie gewist als er artefacten naar de agent moeten worden gedownload. Hetzelfde als Agent.ReleaseDirectory en System.ArtifactsDirectory. Voorbeeld: C:\agent\_work\r1\a |
System.WorkFolder | De werkmap voor deze agent, waarin submappen worden gemaakt voor elke build of release. Hetzelfde als Agent.RootDirectory en Agent.WorkFolder. Voorbeeld: C:\agent\_work |
System.Debug | Dit is de enige systeemvariabele die door de gebruikers kan worden ingesteld . Stel dit in op True om de release uit te voeren in de foutopsporingsmodus om te helpen bij foutopsporing. 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 | De id van de identiteit die de implementatie heeft geactiveerd (gestart) die momenteel wordt uitgevoerd. 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.EnvironmentName | 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 primaire artefactbron. Voorbeeld: fabrikam\_web |
Release.Reason | De reden voor de implementatie. Ondersteunde waarden zijn:ContinuousIntegration - de release is gestart in Continue implementatie nadat een build is voltooid.Manual - de release handmatig is gestart.None - de reden van de implementatie is niet opgegeven.Schedule - de release is gestart vanaf een planning. |
Release.ReleaseDescription | De tekstbeschrijving die is opgegeven op het moment van de release. Voorbeeld: Critical security patch |
Release.ReleaseId | De id van de huidige releaserecord. 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 |
Release.RequestedFor | De weergavenaam van de identiteit die de release heeft geactiveerd. Voorbeeld: Mateo Escobedo |
Release.RequestedForEmail | Het e-mailadres van de identiteit die de release heeft geactiveerd. Voorbeeld: mateo@fabrikam.com |
Release.RequestedForId | De id van de identiteit die de release heeft geactiveerd. Voorbeeld: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.SkipArtifactsDownload | Booleaanse waarde die aangeeft of het downloaden van artefacten naar de agent al dan niet moet worden overgeslagen. Voorbeeld: FALSE |
Release.TriggeringArtifact.Alias | De alias van het artefact dat de release heeft geactiveerd. Dit is leeg wanneer de release is gepland of handmatig is geactiveerd. Voorbeeld: fabrikam\_app |
Variabelen in de releasefase
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. Dit is waarschijnlijk anders dan 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 waarnaar artefacten worden gedownload tijdens de implementatie van een release. De map wordt vóór elke implementatie gewist als er artefacten naar de agent moeten worden gedownload. 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. 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. Hetzelfde als Agent.RootDirectory en System.WorkFolder. Voorbeeld: C:\agent\_work |
Agent.DeploymentGroupId | De id van de implementatiegroep waarmee de agent is geregistreerd. Dit is alleen beschikbaar in de taken van de implementatiegroep. Voorbeeld: 1 |
Variabelen voor artefacten vrijgeven
Voor elk artefact waarnaar wordt verwezen in een release, kunt u de volgende artefactvariabelen gebruiken. Houd er rekening mee dat niet alle variabelen van toepassing zijn op elk artefacttype. De onderstaande 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 hebt opgegeven voor de artefactbronalias of door de standaardwaarde die is gegenereerd voor de release-pijplijn.
Variabelenaam | Beschrijving |
---|---|
Release.Artifacts. {alias}. DefinitionId | De id van de build-pijplijn of opslagplaats. Voorbeelden: Azure Pipelines: 1 GitHub: fabrikam/asp |
Release.Artifacts. {alias}. DefinitionName | De naam van de build-pijplijn of opslagplaats. Voorbeelden: Azure Pipelines: fabrikam-ci TFVC: $/fabrikam Git: fabrikam GitHub: fabrikam/asp (main) |
Release.Artifacts. {alias}. BuildNumber | Het buildnummer of de doorvoerings-id. Voorbeelden: Azure Pipelines: 20170112.1 Jenkins: 20170112.1 TFVC: Changeset 3 Git: 38629c964 GitHub: 38629c964 |
Release.Artifacts. {alias}. BuildId | De build-id. Voorbeelden: Azure Pipelines: 130 Jenkins: 130 GitHub: 38629c964d21fe405ef830b7d0220966b82c9e11 |
Release.Artifacts. {alias}. BuildURI | De URL voor de build. Voorbeelden: Azure Pipelines: vstfs://build-release/Build/130 GitHub: https://github.com/fabrikam/asp |
Release.Artifacts. {alias}. SourceBranch | Het volledige pad en de naam van de vertakking waaruit de bron is gebouwd. Voorbeelden: Azure Pipelines: refs/heads/main |
Release.Artifacts. {alias}. SourceBranchName | De naam alleen van de vertakking waaruit de bron is gebouwd. Voorbeelden: Azure Pipelines: main |
Release.Artifacts. {alias}. SourceVersion | De doorvoering die is 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: Build Jenkins: Jenkins TFVC: TFVC Git: Git GitHub: GitHub |
Release.Artifacts. {alias}. PullRequest.TargetBranch | Het volledige pad en de naam van de vertakking die het doel is van een pull-aanvraag. 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 | De naam alleen van de vertakking die het doel is van een pull-aanvraag. 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 in klassieke releasepijplijnen meerdere artefacten gebruikt, kunt u er een aanwijzen als het primaire artefact. Azure Pipelines vult vervolgens de volgende variabelen in 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}. SourceBranch |
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.Artifacts. {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.
U kunt een standaardvariabele rechtstreeks als invoer voor een taak gebruiken. 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 $(Release.Artifacts.ASPNET4.CI.DefinitionName)
u .
Als u een standaardvariabele in uw script wilt gebruiken, moet u eerst de .
standaardvariabelenamen vervangen door _
. Als u bijvoorbeeld de waarde van Release.Artifacts.{Artifact alias}.DefinitionName
een artefact wilt afdrukken met ASPNET4.CI als alias in een PowerShell-script, gebruikt u $env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME
. Houd er rekening mee dat de oorspronkelijke alias, ASPNET4.CI, wordt vervangen door ASPNET4_CI.
Aangepaste variabelen
Aangepaste variabelen kunnen worden gedefinieerd in verschillende bereiken.
Variabelegroepen: gebruik variabelegroepen om waarden te delen in alle definities in een project. Dit 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 pijplijnbibliotheek>.
Release-pijplijnvariabelen: gebruik releasepijplijnvariabelen om waarden te delen in alle fasen binnen een release-pijplijn. Dit 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. Dit 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 kunnen niet worden weergegeven door gebruikers nadat ze zijn opgeslagen. Tijdens de implementatie ontsleutelt Azure Pipelines deze waarden wanneer naar taken wordt verwezen en doorgegeven 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, waardoor PowerShell mogelijk niet goed 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, kunt u de huidige waarde in een taak invoegen als $(adminUserName)
.
Notitie
Variabelen uit verschillende groepen die zijn gekoppeld aan een pijplijn binnen hetzelfde bereik (bijvoorbeeld taak of fase) kunnen conflicteren, wat tot onvoorspelbare resultaten leidt. Om dit 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
.
- Open deze variabele in 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.
Batch-script
sauce
De en secret.Sauce
variabelen instellen
@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 Pijplijnreleases> en selecteer vervolgens uw release-pijplijn.
Open de overzichtsweergave voor uw release en selecteer de fase waarin u geïnteresseerd bent. Kies in de lijst met stappen de taak Initialiseren.
Hiermee worden de logboeken voor deze stap geopend. Schuif omlaag om de waarden te zien die door de agent voor deze taak worden gebruikt.
Een release uitvoeren in de foutopsporingsmodus
Als u een release uitvoert in de foutopsporingsmodus, kunt u problemen of fouten vaststellen en oplossen door aanvullende informatie weer te geven tijdens de uitvoering van de release. U kunt de foutopsporingsmodus inschakelen voor de hele release of alleen voor de taken in een specifieke releasefase.
Als u de foutopsporingsmodus voor een volledige release wilt inschakelen, voegt u een variabele met de naam
System.Debug
met de waardetrue
toe aan het tabblad Variabelen van de release-pijplijn.Als u de foutopsporingsmodus voor een specifieke fase wilt inschakelen, opent u het dialoogvenster Fase configureren in het snelmenu van de fase en voegt u een variabele met de naam
System.Debug
true
toe aan het tabblad Variabelen.U kunt ook een variabelegroep maken met een variabele met de naam
System.Debug
van de waardetrue
en deze variabelegroep koppelen aan de release-pijplijn.
Tip
Als er een fout optreedt met betrekking tot Azure ARM-serviceverbindingen, raadpleegt u Procedure: Problemen met Azure Resource Manager-serviceverbindingen oplossen voor meer informatie.