Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022
O uso de variáveis nos "pipelines" de lançamento Classic é uma maneira conveniente de trocar e transportar dados por todo o pipeline. Cada variável é armazenada como uma cadeia, e o seu valor pode mudar entre execuções de pipeline.
Ao contrário dos parâmetros de tempo de execução, que só estão disponíveis na altura da análise do template, as variáveis nos pipelines de lançamento Classic estão acessíveis durante todo o processo de implementação.
Quando configura tarefas para implementar a sua aplicação em cada fase do seu pipeline de lançamento Classic, variáveis podem ajudá-lo:
Simplifique 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, ajustando seu valor conforme necessário para cada estágio. Estas 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 que executa a implantação. Por exemplo, seus scripts podem exigir o local de compilação para download ou o diretório de trabalho do agente para criar arquivos temporários. Estas variáveis são chamadas de variáveis padrão.
Nota
Para pipelines YAML, consulte variáveis definidas pelo usuário e variáveis predefinidas para obter mais detalhes.
Variáveis predefinidas
As variáveis padrão fornecem informações essenciais sobre o contexto de execução para suas tarefas e scripts em execução. Estas variáveis dão-lhe acesso a detalhes sobre o sistema, lançamento, estágio ou agente onde estão a correr.
Com exceção do System.Debug, as variáveis padrão são apenas leitura, e o sistema define automaticamente os seus valores.
Algumas das variáveis mais significativas são descritas nas tabelas a seguir. Para exibir a lista completa, consulte Exibir os valores atuais de todas as variáveis.
Variáveis do sistema
| Nome da variável | Description |
|---|---|
| System.TeamFoundationServerUri | A URL da conexão de serviço no Azure Pipelines. Use esta variável nos seus scripts ou tarefas para chamar APIs REST do Azure Pipelines. Exemplo: https://fabrikam.vsrm.visualstudio.com/ |
| System.TeamFoundationCollectionUri | A URL da coleção Team Foundation ou Azure Pipelines. Use esta variável nos seus scripts ou tarefas para chamar APIs REST em outros serviços, como Build e Controlo de Versões. Exemplo: https://dev.azure.com/fabrikam/ |
| System.CollectionId | A ID da coleção à qual esta compilação ou versão pertence. Exemplo: 6c6f3423-1c84-4625-995a-f7f143a1e43d |
| System.DefinitionId | A ID do pipeline de liberação ao qual a versão atual pertence. Exemplo: 1 |
| System.TeamProject | O nome do projeto ao qual esta compilação ou versão pertence. Exemplo: Fabrikam |
| System.TeamProjectId | A ID do projeto ao qual esta compilação ou versão pertence. Exemplo: 79f5c12e-3337-4151-be41-a268d2c73344 |
| System.ArtifactsDirectory | O diretório para onde o pipeline descarrega artefatos durante a implementação de uma release. O pipeline limpa o diretório antes de cada implementação se for necessário descarregar artefatos 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 descarrega artefatos durante a implementação de uma versão. O pipeline limpa o diretório antes de cada implementação caso seja necessário descarregar artefatos 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 este 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 | Esta é a única variável do sistema que os utilizadores podem definir. Defina esta variável para trueexecutar a versão em modo de depuração para ajudar na deteção de falhas.Exemplo: true |
Variáveis de liberação
| Nome da variável | Description |
|---|---|
| Release.AttemptNumber | O número de vezes que esta versão é implantada neste estágio. Exemplo: 1 |
| Release.DefinitionEnvironmentId | A ID do estágio no pipeline de liberação correspondente. Exemplo: 1 |
| Release.DefinitionId | A ID do pipeline de liberação ao qual a versão atual pertence. Exemplo: 1 |
| Release.DefinitionName | O nome do pipeline de liberação ao qual a versão atual pertence. Exemplo: fabrikam-cd |
| Libertação.Implementação.SolicitadoPor | O nome de exibição da identidade que desencadeou (iniciou) a implantação atualmente em progresso. Exemplo: Mateo Escobedo |
| Release.Deployment.RequestedForEmail | O endereço de e-mail da identidade que acionou (iniciou) a implantação atualmente em andamento. Exemplo: mateo@fabrikam.com |
| Release.Deployment.RequestedForId | A ID da identidade que disparou (iniciou) a implantação atualmente em andamento. Exemplo: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
| Release.DeploymentID | A ID da implantação. Único para cada tarefa. Exemplo: 254 |
| Release.DeployPhaseID | A ID da fase em que a implantação está sendo executada. Exemplo: 127 |
| Release.EnvironmentId | A ID da instância do estágio em uma versão para a qual a implantação está atualmente em andamento. Exemplo: 276 |
| Release.EnvironmentName | O nome do estágio para o qual a implantação está em progresso. Exemplo: Dev |
| Release.EnvironmentUri | A URI da instância do estágio numa release para a qual a implantação está atualmente a decorrer. Exemplo: vstfs://ReleaseManagement/Environment/276 |
| Release.Environments.{nome do estágio}.status | O estado de implantação da fase. Exemplo: InProgress |
| Release.PrimaryArtifactSourceAlias | O alias da fonte de artefato primária. Exemplo: fabrikam\_web |
| Motivo de Lançamento | O motivo da implantação. Os valores suportados são:ContinuousIntegration - a versão foi lançada em Implantação Contínua depois de uma compilação ser concluída.Manual - A liberação foi iniciada manualmente.None - A razão do lançamento não é especificada.Schedule - O lançamento começou de acordo com um cronograma. |
| Descrição da Lançamento | A descrição do texto fornecida no momento do lançamento. Exemplo: Critical security patch |
| Release.ReleaseId | O identificador do registo de lançamento atual. Exemplo: 118 |
| Release.ReleaseName | O nome da versão atual. Exemplo: Release-47 |
| Release.ReleaseUri | O URI da versão 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 |
| Lançamento.SolicitadoPor | O nome para exibição da identidade que disparou a liberação. Exemplo: Mateo Escobedo |
| Email.SolicitadoParaLiberar | O endereço de e-mail da identidade que acionou a liberação. Exemplo: mateo@fabrikam.com |
| Release.RequestedForId | A ID da identidade que disparou a liberação. Exemplo: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
| Release.SkipArtifactsBaixar | Valor lógico que especifica se deve ignorar o download dos artefactos para o agente. Exemplo: FALSE |
| Release.TriggeringArtifact.Alias | O pseudônimo do artefato que desencadeou a liberação. Este valor fica vazio quando o lançamento é agendado ou acionado manualmente. Exemplo: fabrikam\_app |
Variáveis do estágio de liberação
| Nome da variável | Description |
|---|---|
| Release.Environments.{nome da fase}.Status | O status de implantação desta versão dentro de um estágio especificado. Exemplo: NotStarted |
Variáveis do agente
| Nome da variável | Description |
|---|---|
| Agent.Name | O nome do agente conforme registrado no pool de agentes. Este nome provavelmente é diferente do nome do computador. Exemplo: fabrikam-agent |
| Agent.MachineName | O nome do computador no qual o agente está configurado. Exemplo: fabrikam-agent |
| Agent.Version | A versão do software do agente. Exemplo: 2.109.1 |
| Agent.JobName | O nome do trabalho que corre, como Release ou Build. Exemplo: Release |
| Agent.HomeDirectory | A pasta onde o agente está instalado. Esta pasta contém o código e os recursos para o agente. Exemplo: C:\agent |
| Agent.ReleaseDirectory | O diretório para onde a implementação de uma versão descarrega artefactos. O diretório é limpo antes de cada distribuição, se for necessário que os artefatos sejam baixados para o agente. É o mesmo que System.ArtifactsDirectory e System.DefaultWorkingDirectory.Exemplo: C:\agent\_work\r1\a |
| Agent.RootDirectory | O diretório de trabalho para este agente, onde subpastas são criadas para cada compilação ou versão. É o mesmo que Agent.WorkFolder e System.WorkFolder.Exemplo: C:\agent\_work |
| Agent.WorkFolder | O diretório de trabalho para este agente, onde subpastas são criadas para cada compilação ou versão. É o mesmo que Agent.RootDirectory e System.WorkFolder.Exemplo: C:\agent\_work |
| Agent.DeploymentGroupId | O identificador do grupo de implementação com o qual o agente se regista. Este ID está disponível apenas em trabalhos de implantação em grupo. Exemplo: 1 |
Variáveis de artefactos de libertação
Para cada artefacto que referencias numa release, usa as seguintes variáveis de artefacto. Observe que nem todas as variáveis se aplicam a todos os tipos de artefatos. A tabela seguinte lista as variáveis de artefato padrão e fornece exemplos dos seus valores com base no tipo de artefato. Se um exemplo estiver vazio, indica que a variável não é aplicável a esse tipo de artefacto.
Substitui o {alias} marcador pelo valor que especificas para o alias de origem do artefacto ou pelo valor padrão gerado para o pipeline de lançamento.
| Nome da variável | Description |
|---|---|
| Release.Artifacts. {alias}. DefinitionId | O identificador do pipeline ou repositório de compilação. Exemplos: Azure Pipelines: 1GitHub: fabrikam/asp |
| Release.Artifacts. {alias}. DefinitionName | O nome do pipeline ou repositório de compilação. Exemplos: Azure Pipelines: fabrikam-ciCVF: $/fabrikamGit: fabrikamGitHub: fabrikam/asp (main) |
| Release.Artifacts. {alias}. Número de compilação | O número de compilação ou o identificador de confirmação. Exemplos: Azure Pipelines: 20170112.1Jenkins: 20170112.1CVF: Changeset 3Git: 38629c964GitHub: 38629c964 |
| Release.Artifacts.{alias}.BuildId | O identificador de compilação. Exemplos: Azure Pipelines: 130Jenkins: 130GitHub: 38629c964d21fe405ef830b7d0220966b82c9e11 |
| Release.Artifacts.{alias}.BuildURI | A URL para a compilação. Exemplos: Azure Pipelines: vstfs://build-release/Build/130GitHub: https://github.com/fabrikam/asp |
| Release.Artifacts. {alias}. SourceBranch | O caminho completo e o nome da ramificação a partir da qual a fonte foi construída. Exemplos: Azure Pipelines: refs/heads/main |
| Release.Artifacts. {alias}. SourceBranchName | Apenas o nome da ramificação a partir da qual a fonte foi construída. Exemplos: Azure Pipelines: main |
| Release.Artifacts. {alias}. FonteVersão | O compromisso que foi construído. Exemplos: Azure Pipelines: bc0044458ba1d9298cdc649cb5dcf013180706f7 |
| Release.Artifacts. {alias}. Repositório.Provedor | O tipo de repositório a partir do qual a fonte foi construída. Exemplos: Azure Pipelines: Git |
| Release.Artifacts.{alias}.RequestedForID | O identificador da conta que iniciou a compilação. Exemplos: Azure Pipelines: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
| Release.Artifacts.{alias}.SolicitadoPara | O nome da conta que solicitou a compilação. Exemplos: Azure Pipelines: Mateo Escobedo |
| Release.Artifacts.{alias}.Tipo | O tipo de fonte de artefato, como Build. Examples: Azure Pipelines: BuildJenkins: JenkinsServiços de DevOps do Azure: TFVCGit: GitGitHub: GitHub |
| Release.Artifacts. {alias}. PullRequest.TargetBranch | O caminho completo e o nome da ramificação que é o destino de um pull request. Essa variável é inicializada somente se a liberação for acionada por um fluxo de solicitação pull. Exemplos: Azure Pipelines: refs/heads/main |
| Release.Artifacts. {alias}. PullRequest.TargetBranchName | Somente o nome da ramificação que é o destino de um pedido de pull. Essa variável é inicializada somente se a liberação for acionada por um fluxo de solicitação pull. Exemplos: Azure Pipelines: main |
Variáveis artefacto primárias
Nos pipelines de lançamento Classic, se usares múltiplos artefactos, podes designar um artefacto como o principal artefacto. O Azure Pipelines preenche então as seguintes variáveis para o artefacto primário designado.
| Nome da variável | O mesmo que |
|---|---|
| Build.DefinitionId | Release.Artifacts.{Alias de artifacto primário}.DefinitionId |
| Build.DefinitionName | Release.Artifacts.{Alias de artefato primário}.DefinitionName |
| Build.BuildNumber | Release.Artifacts. {Alias de artefato primário}. Número de compilação |
| Build.BuildId | Release.Artifacts.{Alias de artefacto primário}.BuildId |
| Build.BuildURI | Release.Artifacts.{Alias do artefacto principal}.BuildURI |
| Build.SourceBranch | Release.Artifacts.{Alias de artefato principal}.SourceBranch |
| Build.SourceBranchName | Release.Artifacts.{Alias de artefacto primário}.SourceBranchName |
| Build.SourceVersion | Release.Artifacts.{Alias de artefato primário}.Fonte de Versão |
| Build.Repository.Provider | Release.Artifacts.{Alias de Artefato Primário}.Repositório.Provedor |
| Build.RequestedForID | Release.Artifacts.{Alias de artefato primário}.RequestedForID |
| Build.RequestedFor | Release.Artifacts. {Alias de artefato primário}. SolicitadoPara |
| Build.Type | Release.Artifacts.{Alias de artefacto 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 liberação ou dentro de seus scripts.
Use uma variável padrão diretamente como entrada para uma tarefa. Por exemplo, para passar Release.Artifacts.{Artifact alias}.DefinitionName como argumento a uma tarefa PowerShell para um artefacto com ASPNET4.CI como alias, use $(Release.Artifacts.ASPNET4.CI.DefinitionName).
Para usar uma variável por defeito no seu script, substitua os . nomes das variáveis por defeito por _. Por exemplo, para imprimir o valor de Release.Artifacts.{Artifact alias}.DefinitionName para um artefacto com ASPNET4.CI como alias num script do PowerShell, use $env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME. O pseudónimo original, ASPNET4.CI, é substituído por ASPNET4_CI.
Variáveis personalizadas
Podes definir variáveis personalizadas em diferentes escopos.
Grupos de variáveis: use grupos de variáveis para compartilhar valores em todas as definições em um projeto. Esta abordagem é útil quando se querem usar os mesmos valores ao longo de definições, fases e tarefas dentro de um projeto, e geri-los a partir de um único local. Defina e gerencie grupos de variáveis na Biblioteca de Pipelines>.
Variáveis de pipeline de liberação: use variáveis de pipeline de liberação para compartilhar valores em todos os estágios dentro de um pipeline de liberação. Esta abordagem é ideal para cenários onde precisa de um valor consistente entre fases e tarefas, com a possibilidade de o atualizar a partir de um único local. Defina e gerencie essas variáveis na guia Variáveis do pipeline de liberação. Na secção de Variáveis do Pipeline, defina a lista suspensa Escopo para Release ao adicionar uma variável.
Variáveis de estágio: use variáveis de estágio para compartilhar valores dentro de um estágio específico de um pipeline de liberação. Esta abordagem é útil para valores que diferem de etapa para etapa, mas que são consistentes em todas as tarefas dentro de uma fase. Defina e gerencie essas variáveis na guia Variáveis do pipeline de liberação. Na página Variáveis de Pipeline, defina o menu pendente Escopo para o ambiente apropriado ao adicionar uma variável.
Ao usar variáveis personalizadas ao nível do projeto, pipeline de lançamento e fase, pode:
Evite a duplicação de valores, facilitando a atualização de todas as ocorrências com uma única alteração.
Proteja valores confidenciais impedindo que sejam visualizados ou modificados pelos utilizadores. Para marcar uma variável como segura (secreta), selecione o
ícone ao lado da variável.Importante
Os valores das variáveis ocultas (secretos) são armazenados de forma segura no servidor e os utilizadores não os podem ver depois de serem guardados. Durante a implementação, o Azure Pipelines desencripta estes valores quando as tarefas os referenciam e passa-os para o agente através de um canal HTTPS seguro.
Nota
A criação de variáveis personalizadas pode substituir variáveis padrão. Por exemplo, se definir uma variável Path personalizada num agente Windows, ela sobrescreve a variável $env:Path e pode impedir o PowerShell de correr 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 tiver uma variável chamada adminUserName, insira o seu valor atual numa tarefa como $(adminUserName).
Nota
Variáveis de diferentes grupos ligadas a um pipeline no mesmo âmbito (por exemplo, trabalho ou fase) podem entrar em conflito e levar a resultados imprevisíveis. Para evitar este problema, certifique-se de que as variáveis em todos os seus grupos de variáveis têm nomes únicos.
Definir e modificar suas variáveis em um script
Para definir ou modificar uma variável a partir de um script, use o task.setvariable comando log. 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 passa a AGENT_WORKFOLDER.
- No Windows, acesse essa variável como
%AGENT_WORKFOLDER%ou$env:AGENT_WORKFOLDER. - No Linux e macOS, use
$AGENT_WORKFOLDERo .
Gorjeta
Você pode executar um script em:
- Um agente do Windows usando uma tarefa de script em lote ou uma tarefa do PowerShell.
- Um agente macOS ou Linux usando uma tarefa de script Shell.
Script em lote
Definir as sauce variáveis e secret.Sauce
@echo ##vso[task.setvariable variable=sauce]crushed tomatoes
@echo ##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with garlic
Leia 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 a partir 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>Releases, e, em seguida, selecione o seu pipeline de release.
Abra a visão de resumo do seu lançamento e selecione a fase em que está interessado. Na lista de etapas, escolha Inicializar trabalho.
Este passo abre os registos. Desça para ver os valores que o agente utiliza para este trabalho.
Executar uma release no modo de depuração
Executar uma versão em modo de depuração pode ajudar a diagnosticar e resolver problemas ao mostrar informação extra durante a execução da release. Podes ativar o modo de debug durante toda a versão ou apenas para as tarefas numa fase específica de lançamento.
Para ativar o modo de depuração para toda a release, adicione uma variável com o nome
System.Debuge o valortruena aba Variables do pipeline de release.Para ativar o modo de depuração para uma fase específica, abra o diálogo Configurar estágio no menu de atalho da fase e adicione uma variável com
System.Debugo valortrueno separador Variáveis .Como alternativa, crie um grupo de variáveis contendo uma variável nomeada
System.Debugcom o valortruee vincule esse grupo de variáveis ao pipeline de liberação.
Gorjeta
Se encontrar um erro relacionado com ligações de serviço do Azure Resource Manager, veja Como: Solucionar Problemas com ligações de serviço do Azure Resource Manager para mais detalhes.
Definir as
Definir as