Publicar símbolos com o Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Com o Azure Pipelines, você pode publicar seus símbolos no servidor de símbolos do Azure Artifacts usando a tarefa Origens de índice e publicação de símbolos. Você pode usar o depurador para se conectar e recuperar automaticamente os arquivos de símbolo correto,s sem saber nomes de produtos, números de build ou nomes de pacote. Usando o Azure Pipelines, você também pode publicar seus símbolos em compartilhamentos de arquivos e PDBs portáteis.

Observação

Não há suporte para a tarefa Origens de índice e publicação de símbolos em pipelines de lançamento.

Publicar símbolos no servidor de símbolos do Azure Artifacts

  1. Entre na sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Pipelines,selecione seu pipeline e, em seguida, selecione Editar para modificá-lo.

  3. Na definição do pipeline, selecione + para adicionar uma tarefa.

  4. Pesquise a tarefa Indexação de origens e publicação de símbolos. Selecione Adicionar para adicioná-lo ao pipeline.

  5. Preencha os campos obrigatórios da seguinte maneira:

    • Versão da tarefa: 2.\*.

    • Nome de exibição: nome de exibição da tarefa.

    • Caminho para a pasta de símbolos: caminho para a pasta que hospeda os arquivos de símbolo.

    • Padrão de pesquisa: o padrão usado para localizar os arquivos .pdb na pasta que você designou na pasta Caminho para os símbolo. Há suporte para curinga de pasta única (*) e curingas recursivos (**). Exemplo: *\bin**.pdb: pesquisará todos os arquivos .pdb em todos os subdiretórios chamados bin.

    • Indexação de origens: indica se as informações do servidor de origem devem ser injetadas nos arquivos PDB.

    • Publicar símbolos: indica se os arquivos de símbolo devem ser publicados.

      • Tipo de servidor de símbolos: selecione Servidor de Símbolos nesta organização/coleção (requer o Azure Artifacts) para publicar seus símbolos no servidor de símbolos do Azure Artifacts.
    • Log detalhado: incluir mais informações nos seus logs.

Captura de tela mostrando como configurar a tarefa indexação de origens e publicação de símbolos para publicar símbolos no servidor de símbolos do Azure Artifacts.

Publicar símbolos em um compartilhamento de arquivo

Além do servidor de símbolos do Azure Artifacts, você também pode publicar seus símbolos em um compartilhamento de arquivo usando a tarefa Indexação de origens e Publicação de Símbolos.

  1. Entre na sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Pipelines,selecione seu pipeline e, em seguida, selecione Editar para modificá-lo.

  3. Na definição do pipeline, selecione + para adicionar uma tarefa.

  4. Pesquise a tarefa Indexação de origens e publicação de símbolos. Selecione Adicionar para adicioná-lo ao pipeline.

  5. Preencha os campos obrigatórios da seguinte maneira:

    • Versão da tarefa: 2.\*.

    • Nome de exibição: nome de exibição da tarefa.

    • Caminho para a pasta de símbolos: caminho para a pasta que hospeda os arquivos de símbolo.

    • Padrão de pesquisa: o padrão usado para localizar os arquivos .pdb na pasta que você designou na pasta Caminho para os símbolo.

    • Indexação de origens: indica se as informações do servidor de origem devem ser injetadas nos arquivos PDB.

    • Publicar símbolos: indica se os arquivos de símbolo devem ser publicados.

      • Tipo de servidor de símbolo: selecione Compartilhamento de arquivo para publicar seus símbolos em um compartilhamento de arquivo.
      • Caminho para publicar símbolos: o compartilhamento de arquivo que hospedará seus símbolos.
    • Log detalhado: marque para incluir mais informações nos seus logs.

    Captura de tela mostrando como configurar a tarefa indexação de origens e publicação de símbolos para publicar símbolos em um compartilhamento de arquivo.

Publicar PDBs portáteis no servidor de símbolos do Azure Artifacts

PDBs portáteis são arquivos de símbolo que podem ser criados e usados em todas as plataformas, ao contrário dos PDBs tradicionais que são usados apenas no Windows. Para PDBs portáteis, o build faz a indexação, mas você ainda precisa usar a tarefa Indexação de Origens e Publicação de Símbolos para publicar seus símbolos.

O Source Link é um conjunto de ferramentas que permitem que os desenvolvedores depurem seu código-fonte mapeando a partir dos assemblies do .NET para o código-fonte. Confira o repositório GitHub dotnet/sourcelink para saber mais sobre os diferentes pacotes incluídos.

  • Para projetos hospedados no GitHub, adicione a referência de pacote Microsoft.SourceLink.GitHub ao arquivo de projeto.

    <ItemGroup>
      <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All"/>
    </ItemGroup>
    
  • Para projetos hospedados no Azure Repos (antigo Visual Studio Team Services), adicione a referência de pacote Microsoft.SourceLink.AzureRepos.Git ao arquivo de projeto.

    <ItemGroup>
      <PackageReference Include="Microsoft.SourceLink.AzureRepos.Git" Version="1.1.1" PrivateAssets="All"/>
    </ItemGroup>
    
  • Para projetos hospedados no Azure DevOps Server (antigo Team Foundation Server), adicione a referência de pacote Microsoft.SourceLink.AzureDevOpsServer.Git ao arquivo de projeto.

    <ItemGroup>
      <PackageReference Include="Microsoft.SourceLink.AzureDevOpsServer.Git" Version="1.1.1" PrivateAssets="All"/>
    </ItemGroup>
    

Configurar a tarefa de publicação

A tarefa Indexação de Origens e Publicação de Símbolos é usada para indexar o código-fonte e publicar seus símbolos nos compartilhamentos de arquivos e servidor de símbolos do Azure Artifacts. Como estamos usando o Source Link, teremos que desabilitar a indexação na tarefa de publicação.

  1. Entre na sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Pipelines,selecione seu pipeline e, em seguida, selecione Editar para modificá-lo.

  3. Na definição do pipeline, selecione + para adicionar uma tarefa.

  4. Pesquise a tarefa Indexação de origens e publicação de símbolos. Selecione Adicionar para adicioná-lo ao pipeline.

  5. Preencha os campos necessários e selecione Servidor de Símbolos para o tipo de servidor de símbolos. Desmarque as Fontes de símbolos para desabilitar a indexação.

    Uma captura de tela mostrando como configurar a tarefa de publicação para publicar PDBs portáteis no servidor de símbolos do Azure Artifacts.

Importante

Para excluir símbolos publicados por meio da tarefa Indexar Fontes e Publicar Símbolos, primeiro você deve excluir o build que gerou esses símbolos. Isso pode ser feito usando as políticas de retenção ou excluindo a execução manualmente.

Configurar o Visual Studio

Observação

O Visual Studio para Mac não dá suporte à depuração usando servidores de símbolos.

Antes de começar a consumir nossos símbolos do servidor de símbolos do Azure Artifacts, vamos verificar se o Visual Studio está configurado corretamente:

  1. No Visual Studio, selecione Ferramentas e Opções.

  2. Selecione Símbolos no menu Depuração.

  3. Selecione o sinal + para adicionar um novo local de servidor de símbolos.

    Captura de tela mostrando como adicionar um novo local de servidor de símbolos.

  4. Uma nova caixa de diálogo aparecerá, selecione sua conta no menu suspenso e, em seguida, selecione a organização à qual você deseja se conectar. Selecione Conectar quando terminar.

  5. Selecione Geral na mesma seção Depuração. Role para baixo e marque Habilitar suporte ao Source Link para habilitar o suporte para PDBs portáteis.

    Uma captura de tela mostrando como habilitar o suporte ao link de origem no Visual Studio.

Observação

Marcar a opção Habilitar suporte ao servidor de origem permite que você use o Servidor de Origem nos casos em que o código-fonte não estiver disponível localmente ou quando o arquivo de símbolo não corresponder ao código-fonte. Se você quiser habilitar a depuração de código-fonte de terceiros, desmarque a caixa de seleção Habilitar Apenas Meu Código.

Perguntas Frequentes

P: qual é a duração pela qual os símbolos são retidos?

R: um arquivo de símbolo tem o mesmo período de retenção que o build que o gerou. Quando você excluir um build manualmente ou usando políticas de retenção. Os símbolos gerados por esse build também serão excluídos.

P: posso usar a indexação de origens em um PDB portátil gerado em um assembly do .NET Core?

R: isso não é possível no momento. Atualmente, não há suporte para indexação de origens em PDBs portáteis. A abordagem recomendada é configurar seu build para fazer a indexação.