PublishSymbols@2 – Tarefa Indexar fontes e publicar símbolos v2

Use essa tarefa para indexar o código-fonte e publicar seus símbolos em um compartilhamento de arquivo ou no servidor de símbolos do Azure Artifacts.

A indexação do código-fonte permite que você use seus arquivos de símbolo para depurar seu aplicativo em um computador diferente do usado para criar seu aplicativo. Por exemplo, você pode depurar um aplicativo criado por um agente de build a partir de um computador de desenvolvimento que não tem o código-fonte.

Os servidores de símbolo permitem que o depurador recupere automaticamente os arquivos de símbolo corretos sem saber nomes de produto, números de build ou nomes de pacote.

Syntax

# Index sources and publish symbols v2
# Index your source code and publish symbols to a file share or Azure Artifacts symbol server.
- task: PublishSymbols@2
  inputs:
    #SymbolsFolder: '$(Build.SourcesDirectory)' # string. Path to symbols folder. Default: $(Build.SourcesDirectory).
    SearchPattern: '**/bin/**/*.pdb' # string. Required. Search pattern. Default: **/bin/**/*.pdb.
    #IndexSources: true # boolean. Index sources. Default: true.
    #PublishSymbols: true # boolean. Publish symbols. Default: true.
    SymbolServerType: # 'TeamServices' | 'FileShare'. Required when PublishSymbols = true. Symbol server type. 
    #SymbolsPath: # string. Optional. Use when PublishSymbols = true && SymbolServerType = FileShare. Path to publish symbols. 
    #CompressSymbols: false # boolean. Optional. Use when SymbolServerType = FileShare. Compress symbols. Default: false.
    #SymbolExpirationInDays: '36530' # string. Optional. Use when PublishSymbols = true && SymbolServerType = TeamServices. Symbol Expiration (in days). Default: 36530.
  # Advanced
    #IndexableFileFormats: 'Default' # 'Default' | 'Pdb' | 'SourceMap' | 'All'. Optional. Use when PublishSymbols = true && SymbolServerType = TeamServices. Symbol file formats to publish. Default: Default.
    #DetailedLog: true # boolean. Verbose logging. Default: true.
    #TreatNotIndexedAsWarning: false # boolean. Warn if not indexed. Default: false.
    #UseNetCoreClientTool: false # boolean. Use NetCore client tool. Default: false.
    #SymbolsMaximumWaitTime: # string. Max wait time (min). 
    #SymbolsProduct: # string. Product. 
    #SymbolsVersion: # string. Version. 
    #SymbolsArtifactName: 'Symbols_$(BuildConfiguration)' # string. Artifact name. Default: Symbols_$(BuildConfiguration).
# Index sources and publish symbols v2
# Index your source code and publish symbols to a file share or Azure Artifacts symbol server.
- task: PublishSymbols@2
  inputs:
    #SymbolsFolder: '$(Build.SourcesDirectory)' # string. Path to symbols folder. Default: $(Build.SourcesDirectory).
    SearchPattern: '**/bin/**/*.pdb' # string. Required. Search pattern. Default: **/bin/**/*.pdb.
    #IndexSources: true # boolean. Index sources. Default: true.
    #PublishSymbols: true # boolean. Publish symbols. Default: true.
    SymbolServerType: # 'TeamServices' | 'FileShare'. Required when PublishSymbols = true. Symbol server type. 
    #SymbolsPath: # string. Optional. Use when PublishSymbols = true && SymbolServerType = FileShare. Path to publish symbols. 
    #CompressSymbols: false # boolean. Optional. Use when SymbolServerType = FileShare. Compress symbols. Default: false.
  # Advanced
    #DetailedLog: true # boolean. Verbose logging. Default: true.
    #TreatNotIndexedAsWarning: false # boolean. Warn if not indexed. Default: false.
    #SymbolsMaximumWaitTime: # string. Max wait time (min). 
    #SymbolsProduct: # string. Product. 
    #SymbolsVersion: # string. Version. 
    #SymbolsArtifactName: 'Symbols_$(BuildConfiguration)' # string. Artifact name. Default: Symbols_$(BuildConfiguration).
# Index sources and publish symbols v2
# Index your source code and publish symbols to a file share or Azure Artifacts Symbol Server.
- task: PublishSymbols@2
  inputs:
    #SymbolsFolder: '$(Build.SourcesDirectory)' # string. Path to symbols folder. Default: $(Build.SourcesDirectory).
    SearchPattern: '**/bin/**/*.pdb' # string. Required. Search pattern. Default: **/bin/**/*.pdb.
    #IndexSources: true # boolean. Index sources. Default: true.
    #PublishSymbols: true # boolean. Publish symbols. Default: true.
    SymbolServerType: # 'TeamServices' | 'FileShare'. Required when PublishSymbols = true. Symbol server type. 
    #SymbolsPath: # string. Optional. Use when PublishSymbols = true && SymbolServerType = FileShare. Path to publish symbols. 
    #CompressSymbols: false # boolean. Optional. Use when SymbolServerType = FileShare. Compress symbols. Default: false.
  # Advanced
    #DetailedLog: true # boolean. Verbose logging. Default: true.
    #TreatNotIndexedAsWarning: false # boolean. Warn if not indexed. Default: false.
    #SymbolsMaximumWaitTime: # string. Max wait time (min). 
    #SymbolsProduct: # string. Product. 
    #SymbolsVersion: # string. Version. 
    #SymbolsArtifactName: 'Symbols_$(BuildConfiguration)' # string. Artifact name. Default: Symbols_$(BuildConfiguration).

Entradas

SymbolsFolder - Pasta Caminho para símbolos
string. Valor padrão: $(Build.SourcesDirectory).

Especifica o caminho para a pasta pesquisada com arquivos de símbolo. O padrão é $(Build.SourcesDirectory). Caso contrário, especifique um caminho com raiz, como $(Build.BinariesDirectory)/MyProject.

Observação

Não há suporte para caminhos UNC se você selecionar o servidor de símbolos do Azure Artifacts como o tipo de servidor.


SearchPattern - padrão de Pesquisa
string. Obrigatórios. Valor padrão: **/bin/**/*.pdb.

Especifica o padrão usado para descobrir os arquivos PDB a serem publicados. Consulte Referência de padrões de correspondência de arquivos para obter mais informações.


IndexSources - Fontes de índice
boolean. Valor padrão: true.

Especifica se as informações do servidor de origem devem ser injetadas nos arquivos PDB. Só há suporte para essa opção em agentes do Windows.


PublishSymbols - Publicar símbolos
boolean. Valor padrão: true.

Especifica se os arquivos de símbolo devem ser publicados.


SymbolServerType - Tipo de servidor de símbolo
string. Obrigatório quando PublishSymbols = true. Valores permitidos: TeamServices (Servidor de Símbolos nesta organização/coleção (requer Artefatos do Azure)), FileShare (Compartilhamento de arquivos).

Especifica onde publicar símbolos. Os símbolos publicados no servidor de símbolos do Azure Artifacts podem ser acessados por qualquer usuário que tenha acesso à organização/coleção. Azure DevOps Server dá suporte apenas à opção File share . Confira instruções para Publicar símbolos para depuração para usar o Servidor de Símbolos no Azure Artifacts.


SymbolsPath - Caminho para publicar símbolos
string. Opcional. Use quando PublishSymbols = true && SymbolServerType = FileShare.

Especifica o compartilhamento de arquivos que hospeda seus símbolos. Esse valor será usado na chamada para symstore.exe add como o /s parâmetro . Para preparar seu repositório de símbolos SymStore:

  1. Configure uma pasta em um servidor de compartilhamento de arquivos para armazenar os símbolos. Por exemplo, configure \fabrikam-share\symbols.
  2. Conceda permissão de controle total à conta de serviço do agente de build.

Se você deixar esse argumento em branco, seus símbolos serão indexados conforme a fonte, mas não publicados. Você também pode armazenar seus símbolos com suas gotas. Consulte Publicar Artefatos de Build.


CompressSymbols - Compactar símbolos
boolean. Opcional. Use quando SymbolServerType = FileShare. Valor padrão: false.

Compacta símbolos ao publicar no compartilhamento de arquivos.


SymbolExpirationInDays - Expiração do símbolo (em dias)
string. Opcional. Use quando PublishSymbols = true && SymbolServerType = TeamServices. Valor padrão: 36530.

Especifica o número de dias que os símbolos devem ser retidos.


IndexableFileFormats - Formatos de arquivo de símbolo a serem publicados
string. Opcional. Use quando PublishSymbols = true && SymbolServerType = TeamServices. Valores permitidos: Default (O conjunto padrão de símbolos a serem carregados) Pdb (Somente símbolos baseados em Pdb do Windows pdb e pdb portátil gerenciados) SourceMap (somente símbolos SourceMap baseados em JavaScript (*.js.map)), All (Todos os formatos de símbolo com suporte). Valor padrão: Default.

Especifica quais formatos de depuração publicar no servidor de símbolos.


DetailedLog - Log detalhado
boolean. Valor padrão: true.

Especifica o log detalhado.


TreatNotIndexedAsWarning - Avisar se não for indexado
boolean. Valor padrão: false.

Especifica se as fontes não são indexadas para um arquivo PDB. Caso contrário, as mensagens são registradas como saída normal.


UseNetCoreClientTool - Usar a ferramenta cliente NetCore
boolean. Valor padrão: false.

Especifica se é necessário usar uma versão da ferramenta de upload de símbolo que dá suporte a arquivos DWARF e ELF. Essa opção só é importante em agentes do Windows. Em agentes que não são do Windows, sempre será usada a versão da ferramenta de upload de símbolos que dá suporte a arquivos DWARF e ELF.


SymbolsMaximumWaitTime - Tempo máximo de espera (mínimo)
string.

Especifica o número de minutos a aguardar antes de falhar nesta tarefa.


SymbolsProduct - Produto
string.

Especifica o parâmetro de produto para symstore.exe. O padrão é $(Build.DefinitionName).


SymbolsVersion - Versão
string.

Especifica o parâmetro de versão para symstore.exe. O padrão é $(Build.BuildNumber).


SymbolsArtifactName - Nome do artefato
string. Valor padrão: Symbols_$(BuildConfiguration).

Especifica o nome do artefato a ser usado para o artefato de símbolos. Isso só deve ser usado com o tipo de servidor de símbolo FileShare. O padrão é Symbols_$(BuildConfiguration).


Opções de controle da tarefa

Todas as tarefas têm opções de controle além de suas entradas de tarefa. Para obter mais informações, consulte Opções de controle e propriedades comuns da tarefa.

Variáveis de saída

Nenhum.

Comentários

Use essa tarefa para indexar o código-fonte e publicar seus símbolos em um compartilhamento de arquivo ou no servidor de símbolos do Azure Artifacts.

A indexação do código-fonte permite que você use seus arquivos de símbolo para depurar seu aplicativo em um computador diferente do usado para criar seu aplicativo. Por exemplo, você pode depurar um aplicativo criado por um agente de build a partir de um computador de desenvolvimento que não tem o código-fonte.

Os servidores de símbolo permitem que o depurador recupere automaticamente os arquivos de símbolo corretos sem saber os nomes de produtos, números de build ou nomes de pacote.

Importante

Para excluir símbolos que foram publicados usando a tarefa Fontes de Índice & Publicar Símbolos , primeiro exclua o build que gerou esses símbolos. Isso pode ser feito usando as políticas de retenção ou excluindo a execução manualmente.

Como funciona a indexação?

Ao optar por indexar as fontes, uma seção extra será injetada nos arquivos PDB. Geralmente, os arquivos PDB contêm referências aos caminhos do arquivo de origem local, por exemplo: C:\BuildAgent_work\1\src\MyApp\Program.cs. A seção extra injetada no arquivo PDB contém instruções de mapeamento para depuradores. As informações de mapeamento indicam como recuperar o item de servidor que corresponde a cada caminho local.

O depurador do Visual Studio usará as informações de mapeamento para recuperar o arquivo de origem do servidor. Um comando real para recuperar o arquivo de origem está incluído nas informações de mapeamento. Exemplo:

tf.exe git view /collection:http://SERVER:8080/tfs/DefaultCollection /teamproject:"93fc2e4d-0f0f-4e40-9825-01326191395d" /repository:"647ed0e6-43d2-4e3d-b8bf-2885476e9c44" /commitId:3a9910862e22f442cd56ff280b43dd544d1ee8c9 /path:"/MyApp/Program.cs" /output:"C:\Users\username\AppData\Local\SOURCE~1\TFS_COMMIT\3a991086\MyApp\Program.cs" /applyfilters

Posso usar a indexação de origem em um PDB portátil criado a partir de um assembly do .NET Core?

Não, mas você pode usar Source Link em vez disso.

Por quanto tempo os símbolos são retidos?

Os símbolos são associados ao build publicado no Azure Pipelines que estão associados a um build. Quando o build é excluído manualmente ou usando políticas de retenção, os símbolos também são excluídos. Se quiser manter os símbolos indefinidamente, marque o build como Reter indefinidamente.

Requisitos

Requisito Descrição
Tipos de pipeline YAML, build clássico
É executado em Agent, DeploymentGroup
Demandas Nenhum
Funcionalidades Essa tarefa não atende a nenhuma demanda por tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis configuráveis Qualquer
Versão do agente 2.144.0 ou superior
Categoria da tarefa Build
Requisito Descrição
Tipos de pipeline YAML, build clássico
É executado em Agent, DeploymentGroup
Demandas Nenhum
Funcionalidades Essa tarefa não atende a nenhuma demanda por tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis configuráveis Qualquer
Versão do agente 1.95.0 ou superior
Categoria da tarefa Build

Confira também