Variabelen voor klassieke release en artefacten
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Klassieke variabelen voor release en artefacten zijn een handige manier om gegevens in uw pijplijn uit te wisselen en te transporteren. Elke variabele wordt opgeslagen als een tekenreeks en de waarde ervan kan veranderen tussen uitvoeringen van uw pijplijnen.
Variabelen verschillen van Runtime-parameters die alleen beschikbaar zijn tijdens het parseren van sjablonen.
Wanneer u de taken voor het implementeren van uw toepassing in elke fase in uw DevOps CI/CD-processen opstelt, helpen variabelen u bij het volgende:
Definieer eenmaal een algemenere implementatiepijplijn en pas deze vervolgens eenvoudig aan voor elke fase. Een variabele kan bijvoorbeeld worden gebruikt om de verbindingsreeks voor webimplementatie weer te geven en de waarde van deze variabele kan worden gewijzigd van de ene fase naar de andere. Dit zijn aangepaste variabelen.
Gebruik informatie over de context van de specifieke release, fase, artefacten of agent waarin de implementatiepijplijn wordt uitgevoerd. Uw script heeft bijvoorbeeld toegang nodig tot de locatie van de build om deze te downloaden of naar de werkmap op de agent om tijdelijke bestanden te maken. Dit zijn standaardvariabelen.
Notitie
Zie voor YAML-pijplijnen door de gebruiker gedefinieerde variabelen en vooraf gedefinieerde variabelen voor meer informatie.
Standaardvariabelen
Informatie over de uitvoeringscontext wordt beschikbaar gesteld voor het uitvoeren van taken via standaardvariabelen. Uw taken en scripts kunnen deze variabelen gebruiken om informatie te vinden over het systeem, de release, de fase of de agent waarin ze worden uitgevoerd. Met uitzondering van System.Debug zijn deze variabelen alleen-lezen en worden hun waarden automatisch ingesteld door het systeem. 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.
Tip
U kunt de huidige waarden van alle variabelen voor een release bekijken en een standaardvariabele gebruiken om een release uit te voeren in de foutopsporingsmodus.
Systeem
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 |
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 dat 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 |
Releasefase
Variabelenaam | Beschrijving |
---|---|
Release.Environments. {naam van fase}. Status | De status van de implementatie van deze release binnen een opgegeven fase. Voorbeeld: NotStarted |
Agent
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 |
Algemeen artefact
Voor elk artefact waarnaar wordt verwezen in een release, kunt u de volgende artefactvariabelen gebruiken. Niet alle variabelen zijn zinvol voor elk artefacttype. De onderstaande tabel bevat de standaardartefactvariabelen en bevat voorbeelden van de waarden die ze hebben, afhankelijk van het artefacttype. Als een voorbeeld leeg is, betekent dit dat de variabele niet is ingevuld voor dat artefacttype.
Vervang de {alias}
tijdelijke aanduiding door de waarde die u hebt opgegeven voor de artefactalias 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. Azure Pipelines-voorbeeld: 1 GitHub-voorbeeld: fabrikam/asp |
Release.Artifacts. {alias}. DefinitionName | De naam van de build-pijplijn of opslagplaats. Azure Pipelines-voorbeeld: fabrikam-ci TFVC-voorbeeld: $/fabrikam Git-voorbeeld: fabrikam GitHub-voorbeeld: fabrikam/asp (main) |
Release.Artifacts. {alias}. BuildNumber | Het buildnummer of de doorvoerings-id. Azure Pipelines-voorbeeld: 20170112.1 Voorbeeld van Jenkins/TeamCity: 20170112.1 TFVC-voorbeeld: Changeset 3 Git-voorbeeld: 38629c964 GitHub-voorbeeld: 38629c964 |
Release.Artifacts. {alias}. BuildId | De build-id. Azure Pipelines-voorbeeld: 130 Voorbeeld van Jenkins/TeamCity: 130 GitHub-voorbeeld: 38629c964d21fe405ef830b7d0220966b82c9e11 |
Release.Artifacts. {alias}. BuildURI | De URL voor de build. Azure Pipelines-voorbeeld: vstfs://build-release/Build/130 GitHub-voorbeeld: https://github.com/fabrikam/asp |
Release.Artifacts. {alias}. SourceBranch | Het volledige pad en de naam van de vertakking waaruit de bron is gebouwd. Azure Pipelines-voorbeeld: refs/heads/main |
Release.Artifacts. {alias}. SourceBranchName | De naam alleen van de vertakking waaruit de bron is gebouwd. Azure Pipelines-voorbeeld: main |
Release.Artifacts. {alias}. SourceVersion | De doorvoering die is gebouwd. Azure Pipelines-voorbeeld: bc0044458ba1d9298cdc649cb5dcf013180706f7 |
Release.Artifacts. {alias}. Repository.Provider | Het type opslagplaats waaruit de bron is gebouwd. Azure Pipelines-voorbeeld: Git |
Release.Artifacts. {alias}. RequestedForID | De id van het account dat de build heeft geactiveerd. Azure Pipelines-voorbeeld: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.Artifacts. {alias}. RequestedFor | De naam van het account dat de build heeft aangevraagd. Azure Pipelines-voorbeeld: Mateo Escobedo |
Release.Artifacts. {alias}. Type | Het type artefactbron, zoals Build. Azure Pipelines-voorbeeld: Build Jenkins-voorbeeld: Jenkins Voorbeeld van TeamCity: TeamCity TFVC-voorbeeld: TFVC Git-voorbeeld: Git GitHub-voorbeeld: 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. Azure Pipelines-voorbeeld: 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. Azure Pipelines-voorbeeld: main |
Zie ook artefactbronalias
Primair artefact
U wijst een van de artefacten aan als een primair artefact in een release-pijplijn. Voor het aangewezen primaire artefact vult Azure Pipelines de volgende variabelen in.
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 gebruiken als invoer voor een taak.
Als u bijvoorbeeld wilt doorgeven Release.Artifacts.{Artifact alias}.DefinitionName
voor de artefactbron waarvan de alias is ASPNET4.CI aan een taak, 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 de artefactvariabele Release.Artifacts.{Artifact alias}.DefinitionName
wilt afdrukken voor de artefactbron waarvan de alias is ASPNET4.CI in een PowerShell-script, gebruikt $env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME
u .
Houd er rekening mee dat de oorspronkelijke naam van de alias van de artefactbron ASPNET4.CI
wordt vervangen door ASPNET4_CI
.
De huidige waarden van alle variabelen weergeven
Open de pijplijnenweergave van de samenvatting voor de release en kies de fase waarin u geïnteresseerd bent. Kies in de lijst met stappen de taak Initialiseren.
Hiermee opent u het logboek voor deze stap. Schuif omlaag om de waarden te zien die door de agent voor deze taak worden gebruikt.
Een release uitvoeren in de foutopsporingsmodus
Aanvullende informatie weergeven als een release wordt uitgevoerd en in de logboekbestanden door de hele release uit te voeren, of alleen de taken in een afzonderlijke releasefase, in de foutopsporingsmodus. Dit kan u helpen bij het oplossen van problemen en fouten.
Als u de foutopsporingsmodus voor een volledige release wilt initiëren, voegt u een variabele met de naam
System.Debug
true
toe aan het tabblad Variabelen van een release-pijplijn.Als u de foutopsporingsmodus voor één fase wilt initiëren, opent u het dialoogvenster Fase configureren vanuit 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 een release-pijplijn.
Tip
Als u een fout krijgt met betrekking tot een Azure RM-serviceverbinding, raadpleegt u Procedure: Problemen met Azure Resource Manager-serviceverbindingen oplossen.
Aangepaste variabelen
Aangepaste variabelen kunnen worden gedefinieerd in verschillende bereiken.
Waarden delen in alle definities in een project met behulp van variabele groepen. Kies een variabelegroep wanneer u dezelfde waarden wilt gebruiken voor alle definities, fasen en taken in een project en u de waarden op één plaats wilt kunnen wijzigen. U definieert en beheert variabelegroepen op het tabblad Bibliotheek .
Deel waarden in alle fasen met behulp van releasepijplijnvariabelen. Kies een release-pijplijnvariabele wanneer u dezelfde waarde moet gebruiken voor alle fasen en taken in de release-pijplijn en u de waarde op één plaats wilt kunnen wijzigen. U definieert en beheert deze variabelen op het tabblad Variabelen in een release-pijplijn. Open op de pagina Pijplijnvariabelen de vervolgkeuzelijst Bereik en selecteer 'Release'. Wanneer u een variabele toevoegt, wordt deze standaard ingesteld op Release-bereik.
Deel waarden voor alle taken binnen één specifieke fase met behulp van fasevariabelen. Gebruik een variabele op faseniveau voor waarden die variëren van fase tot fase (en zijn hetzelfde voor alle taken in een fase). U definieert en beheert deze variabelen op het tabblad Variabelen van een release-pijplijn. Open op de pagina Pijplijnvariabelen de vervolgkeuzelijst Bereik en selecteer de vereiste fase. Wanneer u een variabele toevoegt, stelt u het bereik in op de juiste omgeving.
Het gebruik van aangepaste variabelen in project-, release-pijplijn- en fasebereik helpt u bij het volgende:
Vermijd duplicatie van waarden, waardoor het eenvoudiger is om alle exemplaren bij te werken als één bewerking.
Sla gevoelige waarden op een manier op die ze niet kunnen zien of wijzigen door gebruikers van de release-pijplijnen. Wijs een configuratie-eigenschap aan als een veilige (geheime) variabele door het pictogram (hangslot) naast de variabele te selecteren.
Belangrijk
De waarden van de verborgen (geheime) variabelen worden veilig opgeslagen op de server en kunnen niet worden weergegeven door gebruikers nadat ze zijn opgeslagen. Tijdens een implementatie ontsleutelt de Azure Pipelines-releaseservice deze waarden wanneer naar de taken wordt verwezen en doorgegeven aan de agent via een beveiligd HTTPS-kanaal.
Notitie
Het maken van aangepaste variabelen kan standaardvariabelen overschrijven. Bijvoorbeeld de omgevingsvariabele powerShell-pad. Als u een aangepaste Path
variabele maakt op een Windows-agent, wordt de $env:Path
variabele overschreven en kan PowerShell niet worden uitgevoerd.
Aangepaste variabelen gebruiken
Als u aangepaste variabelen in uw build- en releasetaken wilt gebruiken, plaatst u de naam van de variabele tussen haakjes en plaatst u deze vooraf aan een $ teken. Als u bijvoorbeeld een variabele met de naam adminUserName hebt, kunt u de huidige waarde van die variabele invoegen in een parameter van een taak als $(adminUserName)
.
Notitie
Variabelen in verschillende groepen die zijn gekoppeld aan een pijplijn in hetzelfde bereik (bijvoorbeeld taak of fase) botsen en het resultaat kan onvoorspelbaar zijn. Zorg ervoor dat u verschillende namen gebruikt voor variabelen in al uw variabelegroepen.
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.
Houd er rekening mee dat de bijgewerkte variabelewaarde is gericht op de taak die wordt uitgevoerd en niet doorloopt tussen taken of fasen.
Variabelenamen worden omgezet in hoofdletters en de tekens '.' en '' worden vervangen door '_'.
Zo wordt Agent.WorkFolder
gewijzigd in AGENT_WORKFOLDER
.
In Windows opent u dit als %AGENT_WORKFOLDER%
of $env:AGENT_WORKFOLDER
.
In Linux en macOS gebruikt $AGENT_WORKFOLDER
u .
Tip
U kunt een script uitvoeren op een:
- Windows-agent met behulp van een Batch-scripttaak of PowerShell-scripttaak.
- 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)
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor