Pubblicare e scaricare gli artefatti di compilazione
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Nota
È consigliabile usare Download Pipeline Artifacts (Scarica artefatti pipeline) e Publish Pipeline Artifacts (Pubblica artefatti della pipeline) per ottenere prestazioni più veloci.
Azure Artifacts consente ai team di usare feed e origini upstream per gestire le dipendenze. È possibile usare Azure Pipelines per pubblicare e scaricare diversi tipi di artefatti come parte del flusso di lavoro CI/CD.
Pubblicare elementi
Gli artefatti possono essere pubblicati in qualsiasi fase della pipeline. È possibile usare YAML o l'editor di Azure DevOps classico per pubblicare i pacchetti.
- 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: percorso dell'artefatto. Può trattarsi di un percorso assoluto o relativo. I caratteri jolly non sono supportati.
- artifactName: nome dell'artefatto.
Nota
Assicurarsi di non usare uno dei nomi di cartelle riservate durante la pubblicazione dell'artefatto. Per altri dettagli, vedere Cartelle dell'applicazione.
Esempio: Usare più attività
- 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: percorso dell'artefatto. Può trattarsi di un percorso assoluto o relativo. I caratteri jolly non sono supportati.
- artifactName: nome dell'artefatto.
Esempio: Copiare e pubblicare file binari
- 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: cartella contenente i file da copiare. Se si lascia vuoto, la copia verrà eseguita da $(Build.SourcesDirectory).
- contents: percorsi di file da includere come parte della copia.
- targetFolder: cartella di destinazione.
- pathToPublish: percorso della cartella o del file da pubblicare. Può essere un percorso assoluto o relativo. I caratteri jolly non sono supportati.
- artifactName: nome dell'artefatto che si vuole creare.
Nota
Assicurarsi di non usare il nome riservato per artifactName , ad esempio Bin o App_Data. Per altri dettagli, vedere ASP.NET Struttura di cartelle del progetto Web.
Nota
Build.ArtifactStagingDirectory
il percorso viene pulito dopo ogni compilazione. Se si usa questo percorso per pubblicare l'artefatto, assicurarsi di copiare il contenuto da pubblicare in questa directory prima del passaggio di pubblicazione.
Scaricare gli artefatti
- 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: specificare gli artefatti di compilazione da scaricare:
current
(valore predefinito) o da una compilazione specifica. - downloadType: scegliere se scaricare un singolo artefatto o tutti gli artefatti di una compilazione specifica.
- artifactName: nome dell'artefatto che verrà scaricato.
- downloadPath: percorso nel computer dell'agente in cui verranno scaricati gli artefatti.
Nota
Se si usa un'attività di distribuzione, è possibile fare riferimento agli artefatti di compilazione usando $(Agent.BuildDirectory). Per altri dettagli, vedere Variabili dell'agente .
Al termine dell'esecuzione della pipeline, passare a Riepilogo per esplorare o scaricare l'artefatto.
Scaricare un artefatto specifico
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
Suggerimenti
Disabilitare l'autenticazione di base di IIS se si usa Azure DevOps Server per consentire l'autenticazione con il token di accesso personale. Per altri dettagli, vedere Autenticazione di base e PTS di IIS.
Usare barre negli argomenti del percorso del file. Le barre rovesciata non funzionano negli agenti macOS/Linux.
Gli artefatti di compilazione vengono archiviati in un file system Windows, che causa la perdita di tutte le autorizzazioni UNIX, incluso il bit di esecuzione. Potrebbe essere necessario ripristinare le autorizzazioni UNIX corrette dopo aver scaricato gli artefatti da Azure Pipelines.
Build.ArtifactStagingDirectory
eBuild.StagingDirectory
sono intercambiabili.Build.ArtifactStagingDirectory
il percorso viene pulito dopo ogni compilazione.L'eliminazione di una compilazione associata ai pacchetti pubblicati in una condivisione file comporterà l'eliminazione di tutti gli artefatti nel percorso UNC.
Se si pubblicano i pacchetti in una condivisione file, assicurarsi di fornire l'accesso all'agente di compilazione.
Assicurarsi di consentire GLI URL e gli indirizzi IP del dominio di Azure Artifacts se l'organizzazione usa un firewall.