Publicar e baixar artefatos de compilação
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Observação
Recomendamos Baixar Artefatos de Pipeline e Publicar Artefatos de Pipeline para desempenho mais rápido.
O Azure Artifacts permite que as equipes usem feeds e façam upstream de fontes para gerenciar suas dependências. Você pode usar o Azure Pipelines para publicar e baixar diferentes tipos de artefatos como parte do fluxo de trabalho de CI/CD.
Publicar artefatos
Os artefatos podem ser publicados em qualquer estágio do pipeline. Você pode usar o YAML ou o editor clássico do Azure DevOps para publicar seus pacotes.
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: CopyFiles@2
inputs:
sourceFolder: '$(Build.SourcesDirectory)'
contents: '**/$(BuildConfiguration)/**/?(*.exe|*.dll|*.pdb)'
targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop
- pathToPublish: o caminho do artefato. Esse caminho pode ser absoluto ou relativo. Não há suporte para caractere curinga.
- artifactName: o nome do artefato.
Observação
Verifique se você não está usando um dos nomes de pasta reservados ao publicar seu artefato. Confira Pastas de Aplicativo para obter mais detalhes.
Exemplo: usar várias tarefas
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: CopyFiles@2
inputs:
sourceFolder: '$(Build.SourcesDirectory)'
contents: '**/$(BuildConfiguration)/**/?(*.exe|*.dll|*.pdb)'
targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop1
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop2
- pathToPublish: o caminho do artefato. Esse caminho pode ser absoluto ou relativo. Não há suporte para caractere curinga.
- artifactName: o nome do artefato.
Exemplo: copiar e publicar binários
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: CopyFiles@2
inputs:
sourceFolder: '$(Build.SourcesDirectory)'
contents: '**/$(BuildConfiguration)/**/?(*.exe|*.dll|*.pdb)'
targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: drop
- sourceFolder: a pasta que contém os arquivos que você deseja copiar. Se você deixar essa pasta vazia, a cópia será feita por meio de $(Build.SourcesDirectory).
- contents: caminhos de arquivo que serão incluídos como parte da cópia.
- targetFolder: pasta de destino.
- pathToPublish: o caminho da pasta ou do arquivo a ser publicado. Ess caminho pode ser absoluto ou relativo. Não há suporte para caractere curinga.
- artifactName: o nome do artefato que você deseja criar.
Observação
Não use o nome reservado para artifactName, como Bin ou App_Data. Confira Estrutura de Pastas do Projeto Web ASP.NET para ver mais detalhes.
Observação
O caminho de Build.ArtifactStagingDirectory
é limpo após cada compilação. Se você estiver usando esse caminho para publicar seu artefato, certifique-se de copiar o conteúdo que deseja publicar neste diretório antes da etapa de publicação.
Baixar artefatos
- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(System.ArtifactsDirectory)'
- buildType: especifique quais artefatos de compilação serão baixados:
current
(o valor padrão) ou de uma compilação específica. - downloadType: escolha se deseja baixar um único artefato ou todos os artefatos de uma compilação específica.
- artifactName: o nome do artefato que será baixado.
- downloadPath: caminho no computador do agente em que os artefatos serão baixados.
Observação
Se você estiver usando uma tarefa de implantação, poderá referenciar seus artefatos de compilação usando $(Agent.BuildDirectory). Confira Variáveis de agente para ver mais detalhes.
Concluída a execução do pipeline, navegue até Resumo para explorar ou baixar o artefato.
Baixar um artefato específico
steps:
- task: DownloadBuildArtifacts@1
displayName: 'Download Build Artifacts'
inputs:
buildType: specific
project: 'xxxxxxxxxx-xxxx-xxxx-xxxxxxxxxxx'
pipeline: 20
buildVersionToDownload: specific
buildId: 128
artifactName: drop
extractTars: false
Dicas
Desabilite a Autenticação Básica do IIS caso esteja usando o Azure DevOps Server para permitir a autenticação com seu token de acesso pessoal. Confira Autenticação Básica do IIS e PATs para obter mais detalhes.
Use barras em argumentos de caminho de arquivo. Barras invertidas não funcionam em agentes do macOS/Linux.
Os artefatos de compilação são armazenados em um sistema de arquivos do Windows, o que faz com que todas as permissões UNIX sejam perdidas, incluindo o bit de execução. Talvez seja necessário restaurar as permissões corretas do UNIX depois de baixar seus artefatos do Azure Pipelines.
Build.ArtifactStagingDirectory
eBuild.StagingDirectory
são intercambiáveis.O caminho de
Build.ArtifactStagingDirectory
é limpo após cada compilação.Excluir uma compilação associada a pacotes publicados em um compartilhamento de arquivos resultará na exclusão de todos os Artefatos nesse caminho UNC.
Caso esteja publicando seus pacotes em um compartilhamento de arquivo, lembre-se de fornecer acesso ao agente de build.
Lembre-se de permitir URLs de domínio e endereços IP do Azure Artifacts caso sua organização esteja usando um firewall.