Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
O uso de variáveis nos pipelines clássicos de lançamento é uma maneira conveniente de trocar e transportar dados em todo o pipeline. Cada variável é armazenada como uma cadeia de caracteres e seu valor pode ser alterado entre execuções de pipeline.
Ao contrário dos parâmetros de Runtime, que só estão disponíveis no tempo de análise de modelo, as variáveis nos pipelines de versão clássica são acessíveis durante todo o processo de implantação.
Quando você configura tarefas para implantar seu aplicativo em cada estágio do pipeline de lançamento clássico, as variáveis podem ajudá-lo:
Simplificar a personalização: defina um pipeline de implantação genérico uma vez e adapte-o facilmente para diferentes estágios. Por exemplo, use uma variável para representar a cadeia de conexão de uma implantação da Web e ajuste o seu valor conforme for necessário para cada estágio. Essas variáveis são conhecidas como variáveis personalizadas.
Aproveite as informações contextuais: acesse detalhes sobre o contexto da versão, como um estágio, um artefato, ou o agente executando a implantação. Por exemplo, seus scripts podem exigir o local de compilação para o download ou o diretório de trabalho do agente para criar arquivos temporários. Essas variáveis são conhecidas como variáveis padrão.
Observação
Para pipelines YAML, confira variáveis definidas pelo usuário e variáveis predefinidas para obter mais detalhes.
Variáveis padrão
As variáveis padrão disponibilizam informações essenciais sobre o contexto de execução para as suas tarefas e scripts em execução. Essas variáveis fornecem acesso a detalhes sobre o sistema, a versão, o estágio ou o agente no qual estão em execução.
Com exceção de System.Debug, as variáveis padrão são somente leitura e o sistema define automaticamente seus valores.
Algumas das variáveis mais significativas são descritas nas tabelas a seguir. Para exibir a lista completa, confira Exibir os valores atuais de todas as variáveis.
Variáveis do sistema
| Nome da variável | Descrição |
|---|---|
| System.TeamFoundationServerUri | A URL da conexão de serviço no Azure Pipelines. Use essa variável em seus scripts ou tarefas para chamar APIs REST do Azure Pipelines. Exemplo: https://fabrikam.vsrm.visualstudio.com/ |
| System.TeamFoundationCollectionUri | A URL da coleção do Team Foundation ou do Azure Pipelines. Use essa variável em seus scripts ou tarefas para chamar APIs REST em outros serviços, como build e controle de versão. Exemplo: https://dev.azure.com/fabrikam/ |
| System.CollectionId | A ID da coleção à qual esse build ou versão pertence. Exemplo: 6c6f3423-1c84-4625-995a-f7f143a1e43d |
| System.DefinitionId | A ID do pipeline de lançamento à qual a versão atual pertence. Exemplo: 1 |
| System.TeamProject | O nome do projeto ao qual este build ou versão pertence. Exemplo: Fabrikam |
| System.TeamProjectId | A ID do projeto à qual este build ou versão pertence. Exemplo: 79f5c12e-3337-4151-be41-a268d2c73344 |
| System.ArtifactsDirectory | O diretório onde o pipeline baixa artefatos durante a implantação de um release. O pipeline limpa o diretório antes de cada implantação, caso exija que os artefatos sejam baixados para o agente. O mesmo que Agent.ReleaseDirectory e System.DefaultWorkingDirectory.Exemplo: C:\agent\_work\r1\a |
| System.DefaultWorkingDirectory | O diretório onde o pipeline baixa artefatos durante a implantação de uma versão. O pipeline limpa o diretório antes de cada implantação, caso exija que os artefatos sejam baixados para o agente. O mesmo que Agent.ReleaseDirectory e System.ArtifactsDirectory.Exemplo: C:\agent\_work\r1\a |
| System.WorkFolder | O diretório de trabalho para esse agente, onde o pipeline cria subpastas para cada build ou release. O mesmo que Agent.RootDirectory e Agent.WorkFolder.Exemplo: C:\agent\_work |
| System.Debug | Essa é a única variável do sistema que os usuários podem definir. Defina essa variável para trueexecutar a versão no modo de depuração para ajudar na localização de falhas.Exemplo: true |
Variáveis de lançamento
| Nome da variável | Descrição |
|---|---|
| Release.AttemptNumber | O número de vezes que esta versão é implantada nesta fase. Exemplo: 1 |
| Release.DefinitionEnvironmentId | A ID da fase no pipeline de lançamento correspondente. Exemplo: 1 |
| Release.DefinitionId | A ID do pipeline de lançamento à qual a versão atual pertence. Exemplo: 1 |
| Release.DefinitionName | O nome do pipeline de lançamento ao qual a versão atual pertence. Exemplo: fabrikam-cd |
| Release.Deployment.RequestedFor | O nome de exibição da identidade que disparou (iniciou) a implantação em andamento no momento. Exemplo: Mateo Escobedo |
| Release.Deployment.RequestedForEmail | O endereço de email da identidade que disparou (iniciou) a implantação em andamento no momento. Exemplo: mateo@fabrikam.com |
| Release.Deployment.RequestedForId | A ID da identidade que disparou (iniciou) a implantação em andamento no momento. Exemplo: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
| Release.DeploymentID | A ID da implantação. Exclusivo por trabalho. Exemplo: 254 |
| Release.DeployPhaseID | A ID da fase em que a implantação está em execução. Exemplo: 127 |
| Release.EnvironmentId | A ID da instância de fase em uma versão para a qual a implantação está em andamento no momento. Exemplo: 276 |
| Release.EnvironmentName | O nome da fase para o qual a implantação está em andamento no momento. Exemplo: Dev |
| Release.EnvironmentUri | O URI da instância de fase em uma versão para a qual a implantação está em andamento no momento. Exemplo: vstfs://ReleaseManagement/Environment/276 |
| Release.Environments.{stage-name}.status | O status de implantação da fase. Exemplo: InProgress |
| Release.PrimaryArtifactSourceAlias | O alias da fonte primária do artefato. Exemplo: fabrikam\_web |
| Release.Reason | O motivo da implantação. Os valores com suporte são:ContinuousIntegration – a versão iniciada na Implantação Contínua após a conclusão de um build.Manual – a versão iniciada manualmente.None - o motivo da implantação não é especificado.Schedule – a versão foi iniciada em um agendamento. |
| Release.ReleaseDescription | A descrição do texto fornecida no momento da versão. Exemplo: Critical security patch |
| Release.ReleaseId | O identificador do registro de versão atual. Exemplo: 118 |
| Release.ReleaseName | O nome da versão atual. Exemplo: Release-47 |
| Release.ReleaseUri | O URI do lançamento atual. Exemplo: vstfs://ReleaseManagement/Release/118 |
| Release.ReleaseWebURL | A URL desta versão. Exemplo: https://dev.azure.com/fabrikam/f3325c6c/_release?releaseId=392&_a=release-summary |
| Release.RequestedFor | O nome de exibição da identidade que acionou o lançamento. Exemplo: Mateo Escobedo |
| Release.RequestedForEmail | O endereço de email da identidade que acionou o lançamento. Exemplo: mateo@fabrikam.com |
| Release.RequestedForId | O ID da identidade que disparou o lançamento. Exemplo: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
| Release.SkipArtifactsDownload | Valor booliano que especifica se é necessário ignorar o download de artefatos para o agente. Exemplo: FALSE |
| Release.TriggeringArtifact.Alias | O alias do artefato que disparou a versão. Esse valor fica vazio quando o lançamento é agendado ou acionado manualmente. Exemplo: fabrikam\_app |
Variáveis do estágio de lançamento
| Nome da variável | Descrição |
|---|---|
| Release.Environments. {nome do estágio}. Estado | O status da implantação desta versão em uma fase especificada. Exemplo: NotStarted |
Variáveis do agente
| Nome da variável | Descrição |
|---|---|
| Agent.Name | O nome do agente conforme registrado no pool de agentes. Esse nome provavelmente é diferente do nome do computador. Exemplo: fabrikam-agent |
| Agent.MachineName | O nome do computador em que o agente foi configurado. Exemplo: fabrikam-agent |
| Agent.Version | A versão do software do agente. Exemplo: 2.109.1 |
| Agent.JobName | O nome do trabalho que é executado, como Release ou Build. Exemplo: Release |
| Agent.HomeDirectory | A pasta em que o agente foi instalado. Essa pasta contém o código e os recursos do agente. Exemplo: C:\agent |
| Agent.ReleaseDirectory | O diretório no qual a implantação de uma release faz o download de artefatos. O diretório será limpo antes de cada implantação, se exigir que os artefatos sejam baixados no agente. É o mesmo que System.ArtifactsDirectory e System.DefaultWorkingDirectory.Exemplo: C:\agent\_work\r1\a |
| Agent.RootDirectory | O diretório de trabalho para esse agente, em que as subpastas são criadas para cada build ou versão. É o mesmo que Agent.WorkFolder e System.WorkFolder.Exemplo: C:\agent\_work |
| Agent.WorkFolder | O diretório de trabalho para esse agente, em que as subpastas são criadas para cada build ou versão. É o mesmo que Agent.RootDirectory e System.WorkFolder.Exemplo: C:\agent\_work |
| Agent.DeploymentGroupId | O identificador (ID) do grupo de implantação pelo qual o agente se registra. Este ID está disponível apenas em tarefas de grupo de implantação. Exemplo: 1 |
Variáveis de artefatos de lançamento
Para cada artefato referenciado em uma versão, use as variáveis de artefato a seguir. Observe que nem todas as variáveis se aplicam a todos os tipos de artefatos. A tabela a seguir lista variáveis de artefato padrão e fornece exemplos de seus valores com base no tipo de artefato. Se um exemplo estiver vazio, ele indicará que a variável não é aplicável a esse tipo de artefato.
Substitua o {alias} marcador pelo valor especificado para o alias de origem do artefato ou pelo valor padrão gerado para o release pipeline.
| Nome da variável | Descrição |
|---|---|
| Release.Artifacts.{alias}.DefinitionId | O identificador do pipeline de compilação ou repository.Examples: Azure Pipelines: 1Github: fabrikam/asp |
| Release.Artifacts.{alias}.DefinitionName | O nome do pipeline de compilação ou do repository.Examples: Azure Pipelines: fabrikam-ciTFVC: $/fabrikamGit: fabrikamGithub: fabrikam/asp (main) |
| Release.Artifacts.{alias}.BuildNumber | O número de compilação ou o commit de identifier.Examples: Azure Pipelines: 20170112.1Jenkins: 20170112.1TFVC: Changeset 3Git: 38629c964Github: 38629c964 |
| Release.Artifacts.{alias}.BuildId | O compilador de identifier.Examples: Azure Pipelines: 130Jenkins: 130Github: 38629c964d21fe405ef830b7d0220966b82c9e11 |
| Release.Artifacts.{alias}.BuildURI | A URL para build.Examples: Azure Pipelines: vstfs://build-release/Build/130Github: https://github.com/fabrikam/asp |
| Release.Artifacts.{alias}.SourceBranch | O caminho completo e o nome do branch no qual a origem foi build.Examples: Azure Pipelines: refs/heads/main |
| Release.Artifacts.{alias}.SourceBranchName | O nome apenas do branch no qual a origem foi build.Examples: Azure Pipelines: main |
| Release.Artifacts.{alias}.SourceVersion | O commit que foi build.Examples: Azure Pipelines: bc0044458ba1d9298cdc649cb5dcf013180706f7 |
| Release.Artifacts.{alias}.Repository.Provider | O tipo de repositório no qual a origem foi build.Examples: Azure Pipelines: Git |
| Release.Artifacts.{alias}.RequestedForID | O identificador da conta que acionou build.Examples: Azure Pipelines: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
| Release.Artifacts.{alias}.RequestedFor | O nome da conta que solicitou build.Examples: Azure Pipelines: Mateo Escobedo |
| Release.Artifacts.{alias}.Type | O tipo de origem do artefato, como Build. Exemplos: Azure Pipelines: BuildJenkins: JenkinsAzure DevOps Services: TFVCGit: GitGithub: GitHub |
| Release.Artifacts.{alias}.PullRequest.TargetBranch | O caminho completo e o nome do branch que é o destino de uma solicitação de pull. Essa variável será inicializada somente se a versão for acionada por uma solicitação pull flow.Examples: Azure Pipelines: refs/heads/main |
| Release.Artifacts.{alias}.PullRequest.TargetBranchName | O nome somente do branch que é o destino de uma solicitação de pull. Essa variável será inicializada somente se a versão for acionada por uma solicitação pull flow.Examples: Azure Pipelines: main |
Variáveis de artefato primário
Em pipelines clássicos de versão, se você usar vários artefatos, poderá designar um deles como primário. Em seguida, o Azure Pipelines preenche as variáveis a seguir para o artefato primário designado.
| Nome da variável | Mesmo que |
|---|---|
| Build.DefinitionId | Release.Artifacts. {Alias de artefato primário}. DefinitionId |
| Build.DefinitionName | Release.Artifacts. {Alias de artefato primário}. DefinitionName |
| Build.BuildNumber | Release.Artifacts. {Alias de artefato primário}. BuildNumber |
| Build.BuildId | Release.Artifacts. {Alias de artefato primário}. BuildId |
| Build.BuildURI | Release.Artifacts. {Alias de artefato primário}. BuildURI |
| Build.SourceBranch | Release.Artifacts. {Alias de artefato primário}. SourceBranch |
| Build.SourceBranchName | Release.Artifacts. {Alias de artefato primário}. SourceBranchName |
| Build.SourceVersion | Release.Artifacts. {Alias de artefato primário}. SourceVersion |
| Build.Repository.Provider | Release.Artifacts. {Alias de artefato primário}. Repository.Provider |
| Build.RequestedForID | Release.Artifacts. {Alias de artefato primário}. RequestedForID |
| Build.RequestedFor | Release.Artifacts. {Alias de artefato primário}. RequestedFor |
| Build.Type | Release.Artifacts. {Alias de artefato primário}. Tipo |
| Build.PullRequest.TargetBranch | Release.Artifacts. {Alias de artefato primário}. PullRequest.TargetBranch |
| Build.PullRequest.TargetBranchName | Release.Artifacts. {Alias de artefato primário}. PullRequest.TargetBranchName |
Usar variáveis padrão
Você pode usar as variáveis padrão de duas maneiras: como parâmetros para tarefas em um pipeline de lançamento ou em seus scripts.
Use uma variável padrão diretamente como uma entrada para uma tarefa. Por exemplo, para passar Release.Artifacts.{Artifact alias}.DefinitionName como um argumento para uma tarefa do PowerShell para um artefato com ASPNET4.CI como seu alias, use $(Release.Artifacts.ASPNET4.CI.DefinitionName).
Para usar uma variável padrão em seu script, substitua os . nomes de variáveis padrão por _. Por exemplo, para imprimir o valor de Release.Artifacts.{Artifact alias}.DefinitionName para um artefato com ASPNET4.CI como seu alias em um script do PowerShell, use $env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME. O alias original, ASPNET4.CI, é substituído por ASPNET4_CI.
Variáveis personalizadas
Você pode definir variáveis personalizadas em escopos diferentes.
Grupos de variáveis: use grupos de variáveis para compartilhar valores em todas as definições de um projeto. Essa abordagem é útil quando você deseja usar os mesmos valores em definições, estágios e tarefas dentro de um projeto e gerenciá-los de um único local. Defina e gerencie grupos de variáveis na Biblioteca de >pipelines.
Variáveis de pipeline de lançamento: use variáveis de pipeline de lançamento para compartilhar valores em todos os estágios de um pipeline de lançamento. Essa abordagem é ideal para cenários em que você precisa de um valor consistente entre estágios e tarefas, com a capacidade de atualizá-la de um único local. Defina e gerencia essas variáveis na guia Variáveis de um pipeline de lançamento. Na página Variáveis do pipeline, defina a lista suspensa de escopo para Lançamento ao adicionar uma variável.
Variáveis de estágio: use variáveis de estágio para compartilhar valores em um estágio específico de um pipeline de lançamento. Essa abordagem é útil para valores que diferem de estágio para estágio, mas são consistentes em todas as tarefas dentro de um estágio. Defina e gerencia essas variáveis na guia Variáveis de um pipeline de lançamento. Na página Variáveis de pipeline, defina a lista suspensa do escopo como o ambiente apropriado ao adicionar uma variável.
Usando variáveis personalizadas nos níveis de projeto, pipeline de lançamento e estágio, você pode:
Evite a duplicação de valores, facilitando a atualização de todas as ocorrências com uma única alteração.
Proteja os valores confidenciais impedindo que sejam visualizados ou modificados pelos usuários. Para marcar uma variável como segura (segredo), selecione o
ícone ao lado da variável.Importante
Os valores das variáveis ocultas (segredo) são armazenados com segurança no servidor e os usuários não podem exibi-los depois de salvos. Durante a implantação, o Azure Pipelines descriptografa esses valores quando as tarefas fazem referência a eles e os passa para o agente por meio de um canal HTTPS seguro.
Observação
A criação de variáveis personalizadas pode substituir variáveis padrão. Por exemplo, se você definir uma variável path personalizada em um agente do Windows, ela substituirá a variável $env:Path e poderá impedir que o PowerShell seja executado corretamente.
Usar variáveis personalizadas
Para usar variáveis personalizadas em suas tarefas, coloque o nome da variável entre parênteses e preceda-o com um caractere $. Por exemplo, se você tiver uma variável chamada adminUserName, insira seu valor atual em uma tarefa como $(adminUserName).
Observação
Variáveis de diferentes grupos vinculados a um pipeline no mesmo escopo (por exemplo, trabalho ou estágio) podem entrar em conflito e levar a resultados imprevisíveis. Para evitar esse problema, verifique se as variáveis em todos os grupos de variáveis têm nomes exclusivos.
Definir e modificar suas variáveis em um script
Para definir ou modificar uma variável de um script, use o comando de log task.setvariable. O valor da variável atualizada tem como escopo o trabalho que está sendo executado e não persiste entre trabalhos ou estágios. Observe que os nomes das variáveis são transformados em maiúsculas, com "." e " " substituídos por "_".
Por exemplo, Agent.WorkFolder se tornará AGENT_WORKFOLDER.
- No Windows, você acessa a variável como
%AGENT_WORKFOLDER%ou$env:AGENT_WORKFOLDER. - No Linux e no macOS, use
$AGENT_WORKFOLDER.
Dica
Você pode executar um script em:
- Um Agente do Windows usando uma tarefa de script em lote ou uma tarefa do PowerShell.
- O macOS ou Linux usando uma tarefa de script de shell.
Script de lote
Definir as variáveis sauce e secret.Sauce
@echo ##vso[task.setvariable variable=sauce]crushed tomatoes
@echo ##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with garlic
Ler as variáveis
Argumentos
"$(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)
Saída do console da leitura das variáveis:
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)
Exibir os valores atuais de todas as variáveis
Selecione Pipelines>Versões e, em seguida, selecione o pipeline de lançamento.
Abra a visualização de resumo do seu lançamento e selecione o estágio em que está interessado. Na lista de etapas, escolha Inicializar trabalho.
Esta etapa abre os registros. Role para baixo para ver os valores que o agente usa para este trabalho.
Executar um lançamento no modo de depuração
Executar uma versão no modo de depuração pode ajudá-lo a diagnosticar e resolver problemas exibindo informações extras durante a execução da versão. Você pode ativar o modo de depuração para toda a versão ou apenas para as tarefas em um estágio de lançamento específico.
Para ativar o modo de depuração para toda a versão, adicione uma variável nomeada
System.Debugcom o valortrueà guia Variáveis do pipeline de lançamento.Para ativar o modo de depuração para um estágio específico, abra a caixa de diálogo Configurar estágio no menu de atalho do estágio e adicione uma variável nomeada
System.Debugcom o valortrueà guia Variáveis .Como alternativa, crie um grupo de variáveis que contenha uma variável chamada
System.Debugcom o valortruee vincule esse grupo de variáveis a o pipeline de lançamento.
Dica
Se você encontrar um erro relacionado às conexões de serviço do Azure Resource Manager, confira Como solucionar problemas de conexões de serviço do Azure Resource Manager para obter mais detalhes.
Definir as variáveis
Definir as variáveis