Variabler för klassisk version och artefakter
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Klassiska versions- och artefaktervariabler är ett bekvämt sätt att utbyta och transportera data i hela pipelinen. Varje variabel lagras som en sträng och dess värde kan ändras mellan olika pipelinekörningar.
Variabler skiljer sig från Körningsparametrar som endast är tillgängliga vid mallparsningstid.
När du skapar uppgifter för att distribuera ditt program i varje fas i dina DevOps CI/CD-processer hjälper variabler dig att:
Definiera en mer allmän distributionspipeline en gång och anpassa den sedan enkelt för varje steg. En variabel kan till exempel användas för att representera anslutningssträng för webbdistribution och värdet för den här variabeln kan ändras från en fas till en annan. Det här är anpassade variabler.
Använd information om kontexten för den specifika versionen, fasen, artefakter eller agenten där distributionspipelinen körs. Skriptet kan till exempel behöva åtkomst till platsen för bygget för att ladda ned det eller till arbetskatalogen på agenten för att skapa temporära filer. Det här är standardvariabler.
Kommentar
Mer information finns i användardefinierade variabler och fördefinierade variabler för YAML-pipelines.
Standardvariabler
Information om körningskontexten görs tillgänglig för aktiviteter som körs via standardvariabler. Dina uppgifter och skript kan använda dessa variabler för att hitta information om systemet, versionen, fasen eller agenten som de kör i. Med undantag för System.Debug är dessa variabler skrivskyddade och deras värden anges automatiskt av systemet. Några av de viktigaste variablerna beskrivs i följande tabeller. Om du vill visa den fullständiga listan kan du läsa Visa aktuella värden för alla variabler.
Dricks
Du kan visa aktuella värden för alla variabler för en version och använda en standardvariabel för att köra en version i felsökningsläge.
System
Variabelnamn | beskrivning |
---|---|
System.TeamFoundationServerUri | URL:en för tjänstanslutningen i Azure Pipelines. Använd detta från dina skript eller aktiviteter för att anropa REST-API:er för Azure Pipelines. Exempel: https://fabrikam.vsrm.visualstudio.com/ |
System.TeamFoundationCollectionUri | URL:en för Team Foundation-samlingen eller Azure Pipelines. Använd detta från dina skript eller uppgifter för att anropa REST-API:er på andra tjänster, till exempel versionskontroll och versionskontroll. Exempel: https://dev.azure.com/fabrikam/ |
System.CollectionId | ID:t för samlingen som den här versionen eller versionen tillhör. Exempel: 6c6f3423-1c84-4625-995a-f7f143a1e43d |
System.DefinitionId | ID:t för versionspipelinen som den aktuella versionen tillhör. Exempel: 1 |
System.TeamProject | Namnet på det projekt som den här versionen eller versionen tillhör. Exempel: Fabrikam |
System.TeamProjectId | ID:t för projektet som den här versionen eller versionen tillhör. Exempel: 79f5c12e-3337-4151-be41-a268d2c73344 |
System.ArtifactsDirectory | Katalogen som artefakter laddas ned till under distributionen av en version. Katalogen rensas före varje distribution om det krävs att artefakter laddas ned till agenten. Samma som Agent.ReleaseDirectory och System.DefaultWorkingDirectory. Exempel: C:\agent\_work\r1\a |
System.DefaultWorkingDirectory | Katalogen som artefakter laddas ned till under distributionen av en version. Katalogen rensas före varje distribution om det krävs att artefakter laddas ned till agenten. Samma som Agent.ReleaseDirectory och System.ArtifactsDirectory. Exempel: C:\agent\_work\r1\a |
System.WorkFolder | Arbetskatalogen för den här agenten, där undermappar skapas för varje version eller version. Samma som Agent.RootDirectory och Agent.WorkFolder. Exempel: C:\agent\_work |
System.Debug | Det här är den enda systemvariabeln som kan anges av användarna. Ställ in på true för att köra versionen i felsökningsläge för att hjälpa till med felsökning. Exempel: true |
Frisläpp
Variabelnamn | beskrivning |
---|---|
Release.AttemptNumber | Antalet gånger den här versionen distribueras i det här steget. Exempel: 1 |
Release.DefinitionEnvironmentId | ID:t för fasen i motsvarande versionspipeline. Exempel: 1 |
Release.DefinitionId | ID:t för versionspipelinen som den aktuella versionen tillhör. Exempel: 1 |
Release.DefinitionName | Namnet på den versionspipeline som den aktuella versionen tillhör. Exempel: fabrikam-cd |
Release.Deployment.RequestedFor | Visningsnamnet för den identitet som utlöste (startade) distributionen som pågår. Exempel: Mateo Escobedo |
Release.Deployment.RequestedForEmail | E-postadressen till den identitet som utlöste (startade) distributionen som pågår. Exempel: mateo@fabrikam.com |
Release.Deployment.RequestedForId | ID för den identitet som utlöste (startade) distributionen som pågår. Exempel: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.DeploymentID | ID:t för distributionen. Unikt per jobb. Exempel: 254 |
Release.DeployPhaseID | ID för fasen där distributionen körs. Exempel: 127 |
Release.EnvironmentId | ID:t för fasinstansen i en version som distributionen pågår till. Exempel: 276 |
Release.EnvironmentName | Namnet på den fas som distributionen pågår till. Exempel: Dev |
Release.EnvironmentUri | URI:n för fasinstansen i en version som distributionen pågår till. Exempel: vstfs://ReleaseManagement/Environment/276 |
Release.Environments. {stage-name}.status | Distributionsstatus för fasen. Exempel: InProgress |
Release.PrimaryArtifactSourceAlias | Aliaset för den primära artefaktkällan Exempel: fabrikam\_web |
Release.Reason | Orsaken till distributionen. Värden som stöds är:ContinuousIntegration – versionen startades i Kontinuerlig distribution efter att en version har slutförts.Manual – versionen startade manuellt.None – distributionsorsaken har inte angetts.Schedule – versionen startade från ett schema. |
Release.ReleaseDescription | Textbeskrivningen som angavs vid tidpunkten för versionen. Exempel: Critical security patch |
Release.ReleaseId | Identifieraren för den aktuella versionsposten. Exempel: 118 |
Release.ReleaseName | Namnet på den aktuella versionen. Exempel: Release-47 |
Release.ReleaseUri | URI:n för den aktuella versionen. Exempel: vstfs://ReleaseManagement/Release/118 |
Release.ReleaseWebURL | URL:en för den här versionen. Exempel: https://dev.azure.com/fabrikam/f3325c6c/_release?releaseId=392&_a=release-summary |
Release.RequestedFor | Visningsnamnet för identiteten som utlöste versionen. Exempel: Mateo Escobedo |
Release.RequestedForEmail | E-postadressen för den identitet som utlöste versionen. Exempel: mateo@fabrikam.com |
Release.RequestedForId | Identitets-ID:t som utlöste versionen. Exempel: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.SkipArtifactsDownload | Booleskt värde som anger om du vill hoppa över nedladdning av artefakter till agenten eller inte. Exempel: FALSE |
Release.TriggeringArtifact.Alias | Aliaset för artefakten som utlöste versionen. Detta är tomt när versionen schemalades eller utlöstes manuellt. Exempel: fabrikam\_app |
Versionssteg
Variabelnamn | beskrivning |
---|---|
Release.Environments. {stage name}. Status | Status för distributionen av den här versionen inom en angiven fas. Exempel: NotStarted |
Handläggare
Allmän artefakt
För varje artefakt som refereras till i en version kan du använda följande artefaktvariabler. Alla variabler är inte meningsfulla för varje artefakttyp. Tabellen nedan visar standardartefaktvariabler och innehåller exempel på de värden som de har beroende på artefakttyp. Om ett exempel är tomt innebär det att variabeln inte är ifylld för den artefakttypen.
{alias}
Ersätt platshållaren med det värde som du angav för artefaktaliaset eller med standardvärdet som genererats för versionspipelinen.
Variabelnamn | beskrivning |
---|---|
Release.Artifacts. {alias}. DefinitionId | Identifieraren för bygg-pipelinen eller lagringsplatsen. Exempel på Azure Pipelines: 1 GitHub-exempel: fabrikam/asp |
Release.Artifacts. {alias}. DefinitionName | Namnet på bygg-pipelinen eller lagringsplatsen. Exempel på Azure Pipelines: fabrikam-ci TFVC-exempel: $/fabrikam Git-exempel: fabrikam GitHub-exempel: fabrikam/asp (main) |
Release.Artifacts. {alias}. BuildNumber | Versionsnumret eller incheckningsidentifieraren. Exempel på Azure Pipelines: 20170112.1 Jenkins/TeamCity-exempel: 20170112.1 TFVC-exempel: Changeset 3 Git-exempel: 38629c964 GitHub-exempel: 38629c964 |
Release.Artifacts. {alias}. BuildId | Byggidentifieraren. Exempel på Azure Pipelines: 130 Jenkins/TeamCity-exempel: 130 GitHub-exempel: 38629c964d21fe405ef830b7d0220966b82c9e11 |
Release.Artifacts. {alias}. BuildURI | URL:en för bygget. Exempel på Azure Pipelines: vstfs://build-release/Build/130 GitHub-exempel: https://github.com/fabrikam/asp |
Release.Artifacts. {alias}. SourceBranch | Den fullständiga sökvägen och namnet på grenen som källan skapades från. Exempel på Azure Pipelines: refs/heads/main |
Release.Artifacts. {alias}. SourceBranchName | Endast namnet på grenen som källan skapades från. Exempel på Azure Pipelines: main |
Release.Artifacts. {alias}. SourceVersion | Incheckningen som skapades. Exempel på Azure Pipelines: bc0044458ba1d9298cdc649cb5dcf013180706f7 |
Release.Artifacts. {alias}. Repository.Provider | Den typ av lagringsplats som källan skapades från. Exempel på Azure Pipelines: Git |
Release.Artifacts. {alias}. RequestedForID | Identifieraren för det konto som utlöste bygget. Exempel på Azure Pipelines: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.Artifacts. {alias}. RequestedFor | Namnet på det konto som begärde bygget. Exempel på Azure Pipelines: Mateo Escobedo |
Release.Artifacts. {alias}. Typ | Typ av artefaktkälla, till exempel Build. Exempel på Azure Pipelines: Build Jenkins-exempel: Jenkins TeamCity-exempel: TeamCity TFVC-exempel: TFVC Git-exempel: Git GitHub-exempel: GitHub |
Release.Artifacts. {alias}. PullRequest.TargetBranch | Den fullständiga sökvägen och namnet på den gren som är målet för en pull-begäran. Den här variabeln initieras endast om versionen utlöses av ett pull-begärandeflöde. Exempel på Azure Pipelines: refs/heads/main |
Release.Artifacts. {alias}. PullRequest.TargetBranchName | Endast namnet på den gren som är målet för en pull-begäran. Den här variabeln initieras endast om versionen utlöses av ett pull-begärandeflöde. Exempel på Azure Pipelines: main |
Se även Artefaktkällaalias
Primär artefakt
Du anger en av artefakterna som en primär artefakt i en versionspipeline. För den avsedda primära artefakten fyller Azure Pipelines i följande variabler.
Variabelnamn | Samma som |
---|---|
Build.DefinitionId | Release.Artifacts. {Primärt artefaktalias}. DefinitionId |
Build.DefinitionName | Release.Artifacts. {Primärt artefaktalias}. DefinitionName |
Build.BuildNumber | Release.Artifacts. {Primärt artefaktalias}. BuildNumber |
Build.BuildId | Release.Artifacts. {Primärt artefaktalias}. BuildId |
Build.BuildURI | Release.Artifacts. {Primärt artefaktalias}. BuildURI |
Build.SourceBranch | Release.Artifacts. {Primärt artefaktalias}. SourceBranch |
Build.SourceBranchName | Release.Artifacts. {Primärt artefaktalias}. SourceBranchName |
Build.SourceVersion | Release.Artifacts. {Primärt artefaktalias}. SourceVersion |
Build.Repository.Provider | Release.Artifacts. {Primärt artefaktalias}. Repository.Provider |
Build.RequestedForID | Release.Artifacts. {Primärt artefaktalias}. RequestedForID |
Build.RequestedFor | Release.Artifacts. {Primärt artefaktalias}. RequestedFor |
Build.Type | Release.Artifacts. {Primärt artefaktalias}. Typ |
Build.PullRequest.TargetBranch | Release.Artifacts. {Primärt artefaktalias}. PullRequest.TargetBranch |
Build.PullRequest.TargetBranchName | Release.Artifacts. {Primärt artefaktalias}. PullRequest.TargetBranchName |
Använda standardvariabler
Du kan använda standardvariablerna på två sätt – som parametrar för uppgifter i en versionspipeline eller i skripten.
Du kan använda en standardvariabel direkt som indata till en aktivitet.
Om du till exempel vill skicka Release.Artifacts.{Artifact alias}.DefinitionName
för artefaktkällan vars alias är ASPNET4.CI till en uppgift använder $(Release.Artifacts.ASPNET4.CI.DefinitionName)
du .
Om du vill använda en standardvariabel i skriptet måste du först ersätta .
i standardvariabelnamnen med _
.
Om du till exempel vill skriva ut värdet för artefaktvariabeln Release.Artifacts.{Artifact alias}.DefinitionName
för artefaktkällan vars alias är ASPNET4.CI i ett PowerShell-skript använder $env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME
du .
Observera att det ursprungliga namnet på artefaktkällans alias, ASPNET4.CI
, ersätts med ASPNET4_CI
.
Visa aktuella värden för alla variabler
Öppna pipelinevyn för sammanfattningen för versionen och välj den fas som du är intresserad av. I listan med steg väljer du Initiera jobb.
Då öppnas loggen för det här steget. Rulla nedåt för att se de värden som används av agenten för det här jobbet.
Kör en version i felsökningsläge
Visa ytterligare information när en version körs och i loggfilerna genom att köra hela versionen, eller bara uppgifterna i en enskild versionsfas, i felsökningsläge. Detta kan hjälpa dig att lösa problem och fel.
Om du vill initiera felsökningsläget för en hel version lägger du till en variabel med namnet
System.Debug
med värdettrue
på fliken Variabler i en versionspipeline.Om du vill initiera felsökningsläget för en enskild fas öppnar du dialogrutan Konfigurera fas från snabbmenyn i fasen och lägger till en variabel med namnet
System.Debug
med värdettrue
på fliken Variabler .Du kan också skapa en variabelgrupp som innehåller en variabel med namnet
System.Debug
med värdettrue
och länka den här variabelgruppen till en versionspipeline.
Dricks
Om du får ett fel som rör en Azure RM-tjänstanslutning läser du Så här felsöker du Azure Resource Manager-tjänstanslutningar.
Anpassade variabler
Anpassade variabler kan definieras i olika omfång.
Dela värden i alla definitioner i ett projekt med hjälp av variabelgrupper. Välj en variabelgrupp när du behöver använda samma värden i alla definitioner, faser och aktiviteter i ett projekt, och du vill kunna ändra värdena på en enda plats. Du definierar och hanterar variabelgrupper på fliken Bibliotek .
Dela värden i alla steg med hjälp av versionspipelinevariabler. Välj en versionspipelinevariabel när du behöver använda samma värde i alla faser och aktiviteter i versionspipelinen, och du vill kunna ändra värdet på en enda plats. Du definierar och hanterar dessa variabler på fliken Variabler i en versionspipeline. På sidan Pipelinevariabler öppnar du listrutan Omfång och väljer "Release". När du lägger till en variabel är den som standard inställd på Versionsomfång.
Dela värden mellan alla aktiviteter inom en specifik fas med hjälp av scenvariabler. Använd en variabel på stegnivå för värden som varierar från steg till steg (och som är desamma för alla aktiviteter i en fas). Du definierar och hanterar dessa variabler på fliken Variabler i en versionspipeline. På sidan Pipelinevariabler öppnar du listrutan Omfång och väljer den fas som krävs. När du lägger till en variabel anger du omfånget till lämplig miljö.
Med anpassade variabler i projekt, versionspipeline och fasomfång kan du:
Undvik duplicering av värden, vilket gör det enklare att uppdatera alla förekomster som en åtgärd.
Lagra känsliga värden på ett sätt som inte kan visas eller ändras av användare av versionspipelines. Ange en konfigurationsegenskap som en säker (hemlig) variabel genom att välja ikonen (hänglås) bredvid variabeln.
Viktigt!
Värdena för de dolda variablerna (hemliga) lagras på ett säkert sätt på servern och kan inte visas av användarna när de har sparats. Under en distribution dekrypterar Azure Pipelines-versionstjänsten dessa värden när de refereras av uppgifterna och skickar dem till agenten via en säker HTTPS-kanal.
Kommentar
Om du skapar anpassade variabler kan du skriva över standardvariabler. Till exempel miljövariabeln PowerShell Path . Om du skapar en anpassad Path
variabel på en Windows-agent skrivs variabeln $env:Path
över och PowerShell kan inte köras.
Använda anpassade variabler
Om du vill använda anpassade variabler i dina bygg- och versionsaktiviteter omger du bara variabelnamnet inom parenteser och föregår det med ett $ tecken. Om du till exempel har en variabel med namnet adminUserName kan du infoga det aktuella värdet för variabeln i en parameter för en aktivitet som $(adminUserName)
.
Kommentar
Variabler i olika grupper som är länkade till en pipeline i samma omfång (till exempel jobb eller fas) kolliderar och resultatet kan vara oförutsägbart. Se till att du använder olika namn för variabler i alla dina variabelgrupper.
Definiera och ändra variabler i ett skript
Om du vill definiera eller ändra en variabel från ett skript använder du loggningskommandot task.setvariable
.
Observera att det uppdaterade variabelvärdet är begränsat till det jobb som körs och inte flödar över jobb eller faser.
Variabelnamn omvandlas till versaler och tecknen "." och " " ersätts av "_".
Till exempel kommer Agent.WorkFolder
att bli AGENT_WORKFOLDER
.
I Windows får du åtkomst till detta som %AGENT_WORKFOLDER%
eller $env:AGENT_WORKFOLDER
.
I Linux och macOS använder $AGENT_WORKFOLDER
du .
Dricks
Du kan köra ett skript på en:
- Windows-agenten använder antingen en Batch-skriptaktivitet eller PowerShell-skriptaktivitet.
- macOS - eller Linux-agent med hjälp av en Shell-skriptuppgift.
Batch-skript
Ange variablerna sauce
och secret.Sauce
@echo ##vso[task.setvariable variable=sauce]crushed tomatoes
@echo ##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with garlic
Läs variablerna
Argument
"$(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)
Konsolutdata från att läsa variablerna:
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.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för