Pubblicare e scaricare gli artefatti di compilazione

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

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: 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: 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.

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.

Artefatto di compilazione pubblicato

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 e Build.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.