Variabili di artefatti e della versione classica
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Le variabili di rilascio e artefatti classici sono un modo pratico per scambiare e trasportare i dati in tutta la pipeline. Ogni variabile viene archiviata come stringa e il relativo valore può cambiare tra le esecuzioni della pipeline.
Le variabili sono diverse dai parametri di runtime disponibili solo in fase di analisi dei modelli.
Durante la composizione delle attività per la distribuzione dell'applicazione in ogni fase dei processi CI/CD devOps, le variabili consentono di:
Definire una pipeline di distribuzione più generica una sola volta e quindi personalizzarla facilmente per ogni fase. Ad esempio, una variabile può essere usata per rappresentare il stringa di connessione per la distribuzione Web e il valore di questa variabile può essere modificato da una fase a un'altra. Si tratta di variabili personalizzate.
Usare informazioni sul contesto della versione, della fase, degli artefatti o dell'agente specifico in cui viene eseguita la pipeline di distribuzione. Ad esempio, lo script potrebbe dover accedere al percorso della compilazione per scaricarlo o alla directory di lavoro dell'agente per creare file temporanei. Si tratta di variabili predefinite.
Nota
Per le pipeline YAML, vedere Variabili definite dall'utente e variabili predefinite per altri dettagli.
Variabili predefinite
Le informazioni sul contesto di esecuzione vengono rese disponibili per l'esecuzione delle attività tramite variabili predefinite. Le attività e gli script possono usare queste variabili per trovare informazioni sul sistema, il rilascio, la fase o l'agente in cui sono in esecuzione. Ad eccezione di System.Debug, queste variabili sono di sola lettura e i relativi valori vengono impostati automaticamente dal sistema. Alcune delle variabili più significative sono descritte nelle tabelle seguenti. Per visualizzare l'elenco completo, vedere Visualizzare i valori correnti di tutte le variabili.
Suggerimento
È possibile visualizzare i valori correnti di tutte le variabili per una versione e usare una variabile predefinita per eseguire una versione in modalità di debug.
Sistema
Nome variabile | Descrizione |
---|---|
System.TeamFoundationServerUri | URL della connessione al servizio in Azure Pipelines. Usare questo comando dagli script o dalle attività per chiamare le API REST di Azure Pipelines. Esempio: https://fabrikam.vsrm.visualstudio.com/ |
System.TeamFoundationCollectionUri | URL della raccolta Team Foundation o di Azure Pipelines. Usarlo dagli script o dalle attività per chiamare le API REST in altri servizi, ad esempio build e controllo della versione. Esempio: https://dev.azure.com/fabrikam/ |
System.CollectionId | ID della raccolta a cui appartiene la build o la versione. Esempio: 6c6f3423-1c84-4625-995a-f7f143a1e43d |
System.DefinitionId | ID della pipeline di versione a cui appartiene la versione corrente. Esempio: 1 |
System.TeamProject | Nome del progetto a cui appartiene la compilazione o la versione. Esempio: Fabrikam |
System.TeamProjectId | ID del progetto a cui appartiene la compilazione o la versione. Esempio: 79f5c12e-3337-4151-be41-a268d2c73344 |
System.ArtifactsDirectory | Directory in cui vengono scaricati gli artefatti durante la distribuzione di una versione. La directory viene cancellata prima di ogni distribuzione se è necessario scaricare elementi nell'agente. Uguale a Agent.ReleaseDirectory e System.DefaultWorkingDirectory. Esempio: C:\agent\_work\r1\a |
System.DefaultWorkingDirectory | Directory in cui vengono scaricati gli artefatti durante la distribuzione di una versione. La directory viene cancellata prima di ogni distribuzione se è necessario scaricare elementi nell'agente. Uguale a Agent.ReleaseDirectory e System.ArtifactsDirectory. Esempio: C:\agent\_work\r1\a |
System.WorkFolder | Directory di lavoro per questo agente, in cui vengono create sottocartelle per ogni build o versione. Uguale a Agent.RootDirectory e Agent.WorkFolder. Esempio: C:\agent\_work |
System.Debug | Si tratta dell'unica variabile di sistema che può essere impostata dagli utenti. Impostare su true per eseguire la versione in modalità di debug per facilitare la ricerca degli errori. Esempio: true |
Versione
Nome variabile | Descrizione |
---|---|
Release.AttemptNumber | Numero di volte in cui questa versione viene distribuita in questa fase. Esempio: 1 |
Release.DefinitionEnvironmentId | ID della fase nella pipeline di versione corrispondente. Esempio: 1 |
Release.DefinitionId | ID della pipeline di versione a cui appartiene la versione corrente. Esempio: 1 |
Release.DefinitionName | Nome della pipeline di versione a cui appartiene la versione corrente. Esempio: fabrikam-cd |
Release.Deployment.RequestedFor | Nome visualizzato dell'identità che ha attivato (avviato) la distribuzione attualmente in corso. Esempio: Mateo Escobedo |
Release.Deployment.RequestedForEmail | Indirizzo di posta elettronica dell'identità che ha attivato (avviato) la distribuzione attualmente in corso. Esempio: mateo@fabrikam.com |
Release.Deployment.RequestedForId | ID dell'identità che ha attivato (avviato) la distribuzione attualmente in corso. Esempio: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.DeploymentID | ID della distribuzione. Univoco per processo. Esempio: 254 |
Release.DeployPhaseID | ID della fase in cui è in esecuzione la distribuzione. Esempio: 127 |
Release.EnvironmentId | ID dell'istanza di fase in una versione in cui è in corso la distribuzione. Esempio: 276 |
Release.EnvironmentName | Nome della fase in cui è in corso la distribuzione. Esempio: Dev |
Release.EnvironmentUri | URI dell'istanza di fase in una versione in cui è in corso la distribuzione. Esempio: vstfs://ReleaseManagement/Environment/276 |
Release.Environments. {stage-name}.status | Stato della distribuzione della fase. Esempio: InProgress |
Release.PrimaryArtifactSourceAlias | Alias dell'origine dell'artefatto primario Esempio: fabrikam\_web |
Release.Reason | Motivo della distribuzione. I valori supportati sono:ContinuousIntegration - la versione avviata nella distribuzione continua dopo il completamento di una compilazione.Manual : la versione è stata avviata manualmente.None - Il motivo della distribuzione non è stato specificato.Schedule - la versione avviata da una pianificazione. |
Release.ReleaseDescription | Descrizione del testo fornita al momento del rilascio. Esempio: Critical security patch |
Release.ReleaseId | Identificatore del record di versione corrente. Esempio: 118 |
Release.ReleaseName | Nome della versione corrente. Esempio: Release-47 |
Release.ReleaseUri | URI della versione corrente. Esempio: vstfs://ReleaseManagement/Release/118 |
Release.ReleaseWebURL | URL per questa versione. Esempio: https://dev.azure.com/fabrikam/f3325c6c/_release?releaseId=392&_a=release-summary |
Release.RequestedFor | Nome visualizzato dell'identità che ha attivato la versione. Esempio: Mateo Escobedo |
Release.RequestedForEmail | Indirizzo di posta elettronica dell'identità che ha attivato il rilascio. Esempio: mateo@fabrikam.com |
Release.RequestedForId | ID dell'identità che ha attivato il rilascio. Esempio: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.SkipArtifactsDownload | Valore booleano che specifica se ignorare o meno il download degli artefatti nell'agente. Esempio: FALSE |
Release.TriggeringArtifact.Alias | Alias dell'artefatto che ha attivato la versione. Questa operazione è vuota quando la versione è stata pianificata o attivata manualmente. Esempio: fabrikam\_app |
Fase di rilascio
Nome variabile | Descrizione |
---|---|
Release.Environments. {nome fase}. Stato | Stato della distribuzione di questa versione all'interno di una fase specificata. Esempio: NotStarted |
Agente
Nome variabile | Descrizione |
---|---|
Agent.Name | Nome dell'agente registrato con il pool di agenti. È probabile che sia diverso dal nome del computer. Esempio: fabrikam-agent |
Agent.MachineName | Nome del computer in cui è configurato l'agente. Esempio: fabrikam-agent |
Agent.Version | Versione del software dell'agente. Esempio: 2.109.1 |
Agent.JobName | Nome del processo in esecuzione, ad esempio Release o Build. Esempio: Release |
Agent.HomeDirectory | Cartella in cui è installato l'agente. Questa cartella contiene il codice e le risorse per l'agente. Esempio: C:\agent |
Agent.ReleaseDirectory | Directory in cui vengono scaricati gli artefatti durante la distribuzione di una versione. La directory viene cancellata prima di ogni distribuzione se è necessario scaricare elementi nell'agente. Uguale a System.ArtifactsDirectory e System.DefaultWorkingDirectory. Esempio: C:\agent\_work\r1\a |
Agent.RootDirectory | Directory di lavoro per questo agente, in cui vengono create sottocartelle per ogni build o versione. Uguale a Agent.WorkFolder e System.WorkFolder. Esempio: C:\agent\_work |
Agent.WorkFolder | Directory di lavoro per questo agente, in cui vengono create sottocartelle per ogni build o versione. Uguale a Agent.RootDirectory e System.WorkFolder. Esempio: C:\agent\_work |
Agent.DeploymentGroupId | ID del gruppo di distribuzione in cui è registrato l'agente. Questa opzione è disponibile solo nei processi del gruppo di distribuzione. Esempio: 1 |
Artefatto generale
Per ogni artefatto a cui viene fatto riferimento in una versione, è possibile usare le variabili di artefatto seguenti. Non tutte le variabili sono significative per ogni tipo di artefatto. La tabella seguente elenca le variabili di artefatto predefinite e fornisce esempi dei valori che hanno a seconda del tipo di artefatto. Se un esempio è vuoto, implica che la variabile non viene popolata per tale tipo di artefatto.
Sostituire il {alias}
segnaposto con il valore specificato per l'alias dell'artefatto o con il valore predefinito generato per la pipeline di versione.
Nome variabile | Descrizione |
---|---|
Release.Artifacts. {alias}. DefinitionId | Identificatore della pipeline di compilazione o del repository. Esempio di Azure Pipelines: 1 Esempio di GitHub: fabrikam/asp |
Release.Artifacts. {alias}. DefinitionName | Nome della pipeline di compilazione o del repository. Esempio di Azure Pipelines: fabrikam-ci Esempio di controllo della versione di Team Foundation: $/fabrikam Esempio Git: fabrikam Esempio di GitHub: fabrikam/asp (main) |
Release.Artifacts. {alias}. Buildnumber | Numero di build o identificatore del commit. Esempio di Azure Pipelines: 20170112.1 Esempio di Jenkins/TeamCity: 20170112.1 Esempio di controllo della versione di Team Foundation: Changeset 3 Esempio Git: 38629c964 Esempio di GitHub: 38629c964 |
Release.Artifacts. {alias}. BuildId | Identificatore di compilazione. Esempio di Azure Pipelines: 130 Esempio di Jenkins/TeamCity: 130 Esempio di GitHub: 38629c964d21fe405ef830b7d0220966b82c9e11 |
Release.Artifacts. {alias}. Builduri | URL della compilazione. Esempio di Azure Pipelines: vstfs://build-release/Build/130 Esempio di GitHub: https://github.com/fabrikam/asp |
Release.Artifacts. {alias}. SourceBranch | Percorso completo e nome del ramo da cui è stata compilata l'origine. Esempio di Azure Pipelines: refs/heads/main |
Release.Artifacts. {alias}. SourceBranchName | Nome solo del ramo da cui è stata compilata l'origine. Esempio di Azure Pipelines: main |
Release.Artifacts. {alias}. Sourceversion | Commit compilato. Esempio di Azure Pipelines: bc0044458ba1d9298cdc649cb5dcf013180706f7 |
Release.Artifacts. {alias}. Repository.Provider | Tipo di repository da cui è stata compilata l'origine. Esempio di Azure Pipelines: Git |
Release.Artifacts. {alias}. RequestedForID | Identificatore dell'account che ha attivato la compilazione. Esempio di Azure Pipelines: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.Artifacts. {alias}. RequestedFor | Nome dell'account che ha richiesto la compilazione. Esempio di Azure Pipelines: Mateo Escobedo |
Release.Artifacts. {alias}. Digitare | Tipo di origine dell'artefatto, ad esempio Build. Esempio di Azure Pipelines: Build Esempio di Jenkins: Jenkins Esempio di TeamCity: TeamCity Esempio di controllo della versione di Team Foundation: TFVC Esempio Git: Git Esempio di GitHub: GitHub |
Release.Artifacts. {alias}. PullRequest.TargetBranch | Percorso completo e nome del ramo che rappresenta la destinazione di una richiesta pull. Questa variabile viene inizializzata solo se la versione viene attivata da un flusso di richiesta pull. Esempio di Azure Pipelines: refs/heads/main |
Release.Artifacts. {alias}. PullRequest.TargetBranchName | Nome solo del ramo che è la destinazione di una richiesta pull. Questa variabile viene inizializzata solo se la versione viene attivata da un flusso di richiesta pull. Esempio di Azure Pipelines: main |
Vedere anche Alias origine artefatto
Artefatto primario
Si designa uno degli artefatti come artefatto primario in una pipeline di versione. Per l'artefatto primario designato, Azure Pipelines popola le variabili seguenti.
Nome variabile | Uguale a |
---|---|
Build.DefinitionId | Release.Artifacts. {Alias artefatto primario}. DefinitionId |
Build.DefinitionName | Release.Artifacts. {Alias artefatto primario}. DefinitionName |
Build.BuildNumber | Release.Artifacts. {Alias artefatto primario}. Buildnumber |
Build.BuildId | Release.Artifacts. {Alias artefatto primario}. BuildId |
Build.BuildURI | Release.Artifacts. {Alias artefatto primario}. Builduri |
Build.SourceBranch | Release.Artifacts. {Alias artefatto primario}. SourceBranch |
Build.SourceBranchName | Release.Artifacts. {Alias artefatto primario}. SourceBranchName |
Build.SourceVersion | Release.Artifacts. {Alias artefatto primario}. Sourceversion |
Build.Repository.Provider | Release.Artifacts. {Alias artefatto primario}. Repository.Provider |
Build.RequestedForID | Release.Artifacts. {Alias artefatto primario}. RequestedForID |
Build.RequestedFor | Release.Artifacts. {Alias artefatto primario}. RequestedFor |
Build.Type | Release.Artifacts. {Alias artefatto primario}. Digitare |
Build.PullRequest.TargetBranch | Release.Artifacts. {Alias artefatto primario}. PullRequest.TargetBranch |
Build.PullRequest.TargetBranchName | Release.Artifacts. {Alias artefatto primario}. PullRequest.TargetBranchName |
Usare le variabili predefinite
È possibile usare le variabili predefinite in due modi: come parametri per le attività in una pipeline di versione o negli script.
È possibile usare direttamente una variabile predefinita come input per un'attività.
Ad esempio, per passare Release.Artifacts.{Artifact alias}.DefinitionName
per l'origine dell'artefatto il cui alias è ASPNET4.CI a un'attività, usare $(Release.Artifacts.ASPNET4.CI.DefinitionName)
.
Per usare una variabile predefinita nello script, è necessario innanzitutto sostituire nei .
nomi delle variabili predefinite con _
.
Ad esempio, per stampare il valore della variabile Release.Artifacts.{Artifact alias}.DefinitionName
di artefatto per l'origine dell'artefatto il cui alias è ASPNET4.CI in uno script di PowerShell, usare $env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME
.
Si noti che il nome originale dell'alias di origine dell'artefatto, ASPNET4.CI
, viene sostituito da ASPNET4_CI
.
Visualizzare i valori correnti di tutte le variabili
Aprire la visualizzazione pipeline del riepilogo per la versione e scegliere la fase a cui si è interessati. Nell'elenco dei passaggi scegliere Inizializza processo.
Verrà aperto il log per questo passaggio. Scorrere verso il basso per visualizzare i valori usati dall'agente per questo processo.
Eseguire una versione in modalità di debug
Mostra informazioni aggiuntive durante l'esecuzione di una versione e nei file di log eseguendo l'intera versione o solo le attività in una singola fase di rilascio, in modalità di debug. Ciò consente di risolvere i problemi e gli errori.
Per avviare la modalità di debug per un'intera versione, aggiungere una variabile denominata
System.Debug
con il valoretrue
alla scheda Variabili di una pipeline di versione.Per avviare la modalità di debug per una singola fase, aprire la finestra di dialogo Configura fase dal menu di scelta rapida della fase e aggiungere una variabile denominata
System.Debug
con il valoretrue
alla scheda Variabili .In alternativa, creare un gruppo di variabili contenente una variabile denominata
System.Debug
con il valoretrue
e collegare questo gruppo di variabili a una pipeline di versione.
Suggerimento
Se viene visualizzato un errore correlato a una connessione al servizio Azure RM, vedere Procedura: Risolvere i problemi relativi alle connessioni al servizio Azure Resource Manager.
Variabili personalizzate
Le variabili personalizzate possono essere definite in vari ambiti.
Condividere i valori tra tutte le definizioni in un progetto usando gruppi di variabili. Scegliere un gruppo di variabili quando è necessario usare gli stessi valori in tutte le definizioni, le fasi e le attività in un progetto e si vuole essere in grado di modificare i valori in un'unica posizione. I gruppi di variabili vengono definiti e gestiti nella scheda Libreria .
Condividere i valori in tutte le fasi usando le variabili della pipeline di versione. Scegliere una variabile della pipeline di versione quando è necessario usare lo stesso valore in tutte le fasi e le attività nella pipeline di versione e si vuole essere in grado di modificare il valore in un'unica posizione. Queste variabili vengono definite e gestite nella scheda Variabili di una pipeline di versione. Nella pagina Variabili pipeline aprire l'elenco a discesa Ambito e selezionare "Release". Per impostazione predefinita, quando si aggiunge una variabile, viene impostata su Ambito versione.
Condividere i valori in tutte le attività all'interno di una fase specifica usando le variabili di fase. Usare una variabile a livello di fase per i valori che variano da fase a fase (e sono uguali per tutte le attività in una fase). Queste variabili vengono definite e gestite nella scheda Variabili di una pipeline di versione. Nella pagina Variabili pipeline aprire l'elenco a discesa Ambito e selezionare la fase richiesta. Quando si aggiunge una variabile, impostare Ambito sull'ambiente appropriato.
L'uso di variabili personalizzate nel progetto, nella pipeline di versione e nell'ambito della fase consente di:
Evitare la duplicazione dei valori, semplificando l'aggiornamento di tutte le occorrenze come un'unica operazione.
Archiviare i valori sensibili in modo che non possano essere visualizzati o modificati dagli utenti delle pipeline di versione. Designare una proprietà di configurazione come variabile sicura (segreta) selezionando l'icona (lucchetto) accanto alla variabile.
Importante
I valori delle variabili nascoste (segrete) vengono archiviati in modo sicuro nel server e non possono essere visualizzati dagli utenti dopo il salvataggio. Durante una distribuzione, il servizio di versione di Azure Pipelines decrittografa questi valori quando si fa riferimento alle attività e li passa all'agente tramite un canale HTTPS sicuro.
Nota
La creazione di variabili personalizzate può sovrascrivere le variabili standard. Ad esempio, la variabile di ambiente Percorso di PowerShell. Se si crea una variabile personalizzata Path
in un agente Windows, la $env:Path
variabile verrà sovrascritta e PowerShell non sarà in grado di eseguire.
Usare variabili personalizzate
Per usare variabili personalizzate nelle attività di compilazione e rilascio, racchiudere semplicemente il nome della variabile tra parentesi e precederlo con un $ carattere. Ad esempio, se si dispone di una variabile denominata adminUserName, è possibile inserire il valore corrente di tale variabile in un parametro di un'attività come $(adminUserName)
.
Nota
Le variabili in gruppi diversi collegati a una pipeline nello stesso ambito (ad esempio, processo o fase) si scontrano e il risultato può essere imprevedibile. Assicurarsi di usare nomi diversi per le variabili in tutti i gruppi di variabili.
Definire e modificare le variabili in uno script
Per definire o modificare una variabile da uno script, usare il task.setvariable
comando di registrazione.
Si noti che il valore della variabile aggiornato ha come ambito il processo in esecuzione e non scorre tra processi o fasi.
I nomi delle variabili vengono trasformati in maiuscolo e i caratteri "." e " " vengono sostituiti da "_".
Ad esempio, Agent.WorkFolder
diventa AGENT_WORKFOLDER
.
In Windows, è possibile accedervi come %AGENT_WORKFOLDER%
o $env:AGENT_WORKFOLDER
.
In Linux e macOS si usa $AGENT_WORKFOLDER
.
Suggerimento
È possibile eseguire uno script in un:
- Agente di Windows che usa un'attività script Batch o un'attività script di PowerShell.
- Agente macOS o Linux usando un'attività script shell.
Script batch
Impostare le sauce
variabili e secret.Sauce
@echo ##vso[task.setvariable variable=sauce]crushed tomatoes
@echo ##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with garlic
Leggere le variabili
Argomenti
"$(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)
Output della console dalla lettura delle variabili:
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)
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per