Pubblicare e scaricare pacchetti universali con Azure Pipelines

Servizi di Azure DevOps

I pacchetti universali consentono di creare un pacchetto di qualsiasi numero di file di qualsiasi tipo e condividerli con il team. Usando l'attività Pacchetto universale in Azure Pipelines, è possibile comprimere, pubblicare e scaricare pacchetti di varie dimensioni, fino a 4 TB. Ogni pacchetto viene identificato in modo univoco con un nome e un numero di versione. È possibile usare l'interfaccia della riga di comando di Azure o Azure Pipelines per pubblicare e usare pacchetti dai feed Artifacts.

Nota

I pacchetti universali sono disponibili solo in Azure DevOps Services.

Copiare i file

L'attività Pacchetti universali in Azure Pipelines è impostata per l'uso $(Build.ArtifactStagingDirectory) come directory di pubblicazione predefinita. Per preparare il pacchetto universale per la pubblicazione, spostare i file da pubblicare in tale directory. È anche possibile usare l'attività di utilità Copia file per copiare tali file nella directory di pubblicazione.

Pubblicare un pacchetto universale

Per pubblicare un pacchetto universale nel feed di Azure Artifacts, aggiungere l'attività seguente al file YAML della pipeline.

- task: UniversalPackages@0
  displayName: Publish a Universal Package
  inputs:
    command: publish
    publishDirectory: '$(Build.ArtifactStagingDirectory)'
    vstsFeedPublish: '<projectName>/<feedName>'
    vstsFeedPackagePublish: '<Package name>'
    packagePublishDescription: '<Package description>'
Argomento Descrizione
publishDirectory Percorso dei file da pubblicare.
vstsFeedPublish Nome del progetto e del feed in cui eseguire la pubblicazione. Se si usa un feed con ambito organizzazione, specificare solo il nome del feed.
vstsFeedPackagePublish Nome del pacchetto. Deve essere minuscolo. Usare solo lettere, numeri e trattini.
packagePublishDescription Descrizione del contenuto del pacchetto.

Per pubblicare pacchetti in un feed di Azure Artifacts dalla pipeline, l'identità della pipeline deve avere il ruolo Autore feed (Collaboratore) nel feed. Per altre informazioni, vedere Autorizzazioni pipeline.

Per pubblicare in un feed esterno, è prima necessario creare una connessione al servizio per l'autenticazione con il feed. Per altre informazioni, vedere Gestire la connessione al servizio.

Controllo delle versioni dei pacchetti

I pacchetti universali seguono la specifica di controllo delle versioni semantica e possono essere identificati dai nomi e dai numeri di versione. I numeri di versione semantica sono costituiti da tre componenti numerici, Major, Minor e Patch, nel formato : Major.Minor.Patch.

Il numero di versione secondaria viene incrementato quando vengono aggiunte nuove funzionalità compatibili con le versioni precedenti, in questo caso si incrementa la versione secondaria e si reimposta la versione della patch su 0 (1.4.17 su 1.5.0). Il numero di versione principale viene incrementato quando sono presenti modifiche significative che potrebbero interrompere la compatibilità con le versioni precedenti. In questo caso, si incrementa la versione principale e si reimpostano le versioni secondarie e patch su 0 (2.6.5 su 3.0.0). Il numero di versione della patch deve essere incrementato quando vengono apportate solo correzioni di bug o altre piccole modifiche che non influiscono sulla compatibilità con le versioni precedenti (1.0.0 a 1.0.1).

Quando si pubblica un nuovo pacchetto, l'attività Pacchetti universali selezionerà automaticamente la versione principale, secondaria o patch successiva.

Per abilitare il controllo delle versioni per il pacchetto, aggiungere un versionOption input al file YAML. Le opzioni per la pubblicazione di una nuova versione del pacchetto sono: major, minor, patcho custom.

La selezione custom consente di specificare manualmente la versione del pacchetto. Le altre opzioni ottengono la versione più recente del pacchetto dal feed e incrementano il segmento di versione scelto di 1. Pertanto, se si dispone di un testPackage 1.0.0 e si seleziona l'opzione principale , il nuovo pacchetto sarà testPackage 2.0.0. Se si seleziona l'opzione secondaria , la versione del pacchetto sarà 1.1.0 e se si seleziona l'opzione patch , la versione del pacchetto sarà 1.0.1.

Se si sceglie l'opzione custom , è necessario specificare anche un versionPublish valore come indicato di seguito:

- task: UniversalPackages@0
  displayName: Publish a Universal Package
  inputs:
    command: publish
    publishDirectory: '$(Build.ArtifactStagingDirectory)'
    vstsFeedPublish: '<projectName>/<feedName>'
    vstsFeedPackagePublish: '<Package name>'
    versionOption: custom
    versionPublish: '<Package version>'
    packagePublishDescription: '<Package description>'
Argomento Descrizione
publishDirectory Percorso dei file da pubblicare.
vstsFeedPublish Nome del progetto e del feed in cui eseguire la pubblicazione. Se si usa un feed con ambito organizzazione, specificare solo il nome del feed.
vstsFeedPackagePublish Nome del pacchetto. Deve essere minuscolo. Usare solo lettere, numeri e trattini.
versionOption Selezionare una strategia di controllo delle versioni. Opzioni: major, minor, patch, custom.
versionPublish Versione del pacchetto personalizzata.
packagePublishDescription Descrizione del contenuto del pacchetto.

Scaricare un pacchetto universale

Per scaricare un pacchetto universale da un feed nell'organizzazione, usare l'attività Pacchetto universale con il download comando come indicato di seguito:

steps:
- task: UniversalPackages@0
  displayName: Download a Universal Package
  inputs:
    command: download
    vstsFeed: '<projectName>/<feedName>'
    vstsFeedPackage: '<packageName>'
    vstsPackageVersion: '<packageVersion>'
    downloadDirectory: '$(Build.SourcesDirectory)\someFolder'
Argomento Descrizione
vstsFeed Feed Artifacts che ospita il pacchetto da scaricare.
vstsFeedPackage Nome del pacchetto da scaricare.
vstsPackageVersion Versione del pacchetto da scaricare.
downloadDirectory Cartella di destinazione del pacchetto. Valore predefinito: $(System.DefaultWorkingDirectory).

Per scaricare un pacchetto universale da un'origine esterna, usare il frammento di codice seguente:

steps:
- task: UniversalPackages@0
  displayName: Download a Universal Package
  inputs:
    command: download
    feedsToUse: external
    externalFeedCredentials: 'MSENG2'
    feedDownloadExternal: 'fabrikamFeedExternal'
    packageDownloadExternal: 'fabrikam-package'
    versionDownloadExternal: 1.0.0
Argomento Descrizione
feedToUse Impostare il valore su external durante il download da un'origine esterna.
externalFeedCredentials Nome della connessione del servizio al feed esterno. Per altre informazioni, vedere Gestire le connessioni al servizio.
feedDownloadExternal Nome del feed esterno.
packageDownloadExternal Nome del pacchetto da scaricare.
versionDownloadExternal Versione del pacchetto da scaricare.

Suggerimento

È possibile usare i caratteri jolly per scaricare la versione più recente di un pacchetto universale. Per altre informazioni, vedere Scaricare la versione più recente.