Origini degli artefatti nelle pipeline di versione classica

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

Con le pipeline di versione classica, è possibile distribuire gli artefatti da un'ampia gamma di origini. Usando l'interfaccia grafica, è possibile configurare la pipeline per integrare e utilizzare artefatti di vari servizi. Inoltre, è possibile collegare più artefatti da origini diverse e designarne uno come origine primaria in base alle proprie esigenze.

Origini artefatto

Azure Pipelines supporta un'ampia gamma di repository, servizi e piattaforme CI/CD. Quando si crea una versione, è possibile specificare la versione dell'origine dell'artefatto. Per impostazione predefinita, le versioni usano la versione più recente dell'artefatto di origine. È anche possibile scegliere di usare la build più recente da un ramo specifico specificando i tag, una versione specifica o consentire all'utente di specificare la versione al momento della creazione della versione.

Screenshot che mostra come aggiungere un artefatto a una pipeline di versione classica.

Se si collegano più artefatti, è possibile specificare quale è l'origine primaria (impostazione predefinita). L'origine dell'artefatto primario viene usata per impostare diverse variabili predefinite e può essere usata anche per le versioni di denominazione.

Screenshot che mostra come impostare un artefatto di origine primario.

Le opzioni dell'elenco a discesa Versione predefinita dipendono dal tipo di origine della definizione di compilazione collegata. Le opzioni Specify at the time of release creation, Specific versione Latest sono supportate da tutti i tipi di repository. Tuttavia, non Latest from the build pipeline default branch with tags è supportato dalle definizioni di compilazione XAML .

Le sezioni seguenti descrivono come usare i diversi tipi di origini degli artefatti:

Nota

Quando si usano più origini artefatti, il mapping di un'origine artefatto per attivare una fase specifica non è supportato. Se è necessaria questa funzionalità, Azure Pipelines consiglia di suddividere la pipeline di versione in più versioni.

Azure Pipelines

È possibile collegare la pipeline di versione classica a qualsiasi artefatto della pipeline. Inoltre, è possibile collegare più artefatti e configurare i trigger di distribuzione in più origini di compilazione. Questa configurazione creerà una versione ogni volta che una nuova compilazione diventa disponibile. Quando si usa Azure Pipelines come origine dell'artefatto, sono disponibili le funzionalità seguenti:

Funzionalità Descrizione
Rilasci di trigger automatici Le nuove versioni possono essere create automaticamente quando è disponibile un nuovo artefatto (incluse le compilazioni XAML). Per altri dettagli, vedere Trigger di versione classica.
Variabili dell'artefatto Per gli artefatti a cui si fa riferimento in una versione classica sono supportate diverse variabili di artefatto.
Elementi di lavoro e commit Collegare gli elementi di lavoro per visualizzarli visualizzati nei dettagli della versione. I commit verranno visualizzati quando si usa Git o TFVC.
Download artefatto Per impostazione predefinita, gli artefatti della pipeline vengono scaricati nell'agente che esegue la pipeline. È anche possibile configurare un passaggio nella fase per ignorare il download dell'artefatto, se necessario.
Fasi della distribuzione Il riepilogo della pipeline elenca tutte le fasi di distribuzione in cui è stato distribuito l'artefatto.

Nota

Per pubblicare l'artefatto della pipeline in una pipeline classica, è necessario aggiungere un'attività PublishPipelineArtifact alla pipeline. Nelle pipeline YAML, un artefatto di rilascio viene pubblicato in modo implicito.

Limitare l'ambito di autorizzazione del processo

Per impostazione predefinita, le versioni vengono eseguite con un ambito di autorizzazione del processo a livello di organizzazione, consentendo loro di accedere alle risorse in tutti i progetti dell'organizzazione. Ciò è utile quando si collegano artefatti della pipeline da altri progetti. Per limitare l'accesso agli artefatti di un progetto, è possibile abilitare Limitare l'ambito di autorizzazione del processo al progetto corrente per le pipeline di versione nelle impostazioni del progetto

Per impostare l'ambito di autorizzazione del processo per l'organizzazione:

  1. Accedere all'Organizzazione di Azure DevOps.

  2. Selezionare Impostazioni organizzazione in basso a sinistra.

  3. Selezionare Pipeline> *Impostazioni.

  4. Attivare l'opzione Limita l'ambito di autorizzazione del processo al progetto corrente per le pipeline di versione per limitare l'ambito al progetto corrente. È consigliabile migliorare la sicurezza.

    Screenshot che mostra come impostare l'ambito di autorizzazione del processo per l'organizzazione.

Per impostare l'ambito di autorizzazione del processo per un progetto specifico:

  1. Accedere all'organizzazione di Azure DevOps e passare al progetto.

  2. Selezionare Impostazioni progetto in basso a sinistra.

  3. Selezionare Pipeline> *Impostazioni.

  4. Attivare l'opzione Limita l'ambito di autorizzazione del processo al progetto corrente per le pipeline di versione per limitare l'ambito al progetto corrente. Questa impostazione è consigliata per migliorare la sicurezza delle pipeline.

    Screenshot che mostra come impostare l'ambito di autorizzazione del processo per un progetto.

Nota

Se l'ambito è impostato a livello di organizzazione, non può essere modificato singolarmente in ogni progetto.

Nota

Per impostazione predefinita, le versioni vengono eseguite con un ambito di autorizzazione del processo a livello di raccolta, consentendo loro di accedere alle risorse in tutti i progetti nella raccolta.

Azure Repos, GitHub e TFVC

Esistono scenari in cui è possibile usare artefatti direttamente da controlli di origine diversi senza passarli attraverso una pipeline di compilazione. Ad esempio:

  • Sviluppo di un'applicazione PHP o JavaScript che non richiede una pipeline di compilazione esplicita.

  • Gestione delle configurazioni per varie fasi in repository di controllo della versione diversi e utilizzo di questi file di configurazione direttamente come parte della pipeline di distribuzione.

  • Gestione dell'infrastruttura e della configurazione come codice in un repository di controllo della versione.

Con Azure Pipelines è possibile configurare più origini artefatti in una singola pipeline di versione. In questo modo è possibile collegare una pipeline di compilazione che produce file binari dell'applicazione e un repository di controllo della versione che archivia i file di configurazione, usando entrambi i set di artefatti insieme durante la distribuzione.

Azure Pipelines supporta Azure Repos, controllo della versione di Team Foundation (TFVC) e i repository GitHub. È possibile collegare una pipeline di versione a qualsiasi repository Git o TFVC all'interno della raccolta di progetti, purché sia disponibile l'accesso in lettura. Non è necessaria alcuna configurazione aggiuntiva durante la distribuzione degli artefatti del controllo della versione all'interno della stessa raccolta.

Quando si collega un repository GitHub e si seleziona un ramo, è possibile modificare le proprietà predefinite dei tipi di artefatto dopo aver salvato l'artefatto. Ciò è utile se il ramo della versione stabile cambia, assicurando che le versioni di recapito continuo usino il ramo corretto per le versioni più recenti degli artefatti. È anche possibile specificare dettagli di estrazione, ad esempio moduli secondari, inclusione di file rilevati git-LFS e profondità di recupero superficiale.

Quando si collega un ramo TFVC, è possibile specificare il set di modifiche da distribuire durante la creazione della versione.

Quando si usano Azure Repos, Git e TFVC come origine dell'artefatto, sono disponibili le funzionalità seguenti:

Funzionalità Descrizione
Rilasci di trigger automatici Le nuove versioni possono essere create automaticamente quando è disponibile un nuovo artefatto (incluse le compilazioni XAML). Per altri dettagli, vedere Trigger di versione.
Variabili dell'artefatto Per gli artefatti a cui si fa riferimento in una versione classica sono supportate diverse variabili di artefatto.
Elementi di lavoro e commit Collegare gli elementi di lavoro per visualizzarli visualizzati nei dettagli della versione. I commit verranno visualizzati quando si usa Git o TFVC.
Download artefatto Per impostazione predefinita, gli artefatti della pipeline vengono scaricati nell'agente che esegue la pipeline. È anche possibile configurare un passaggio nella fase per ignorare il download dell'artefatto, se necessario.

Nota

Per impostazione predefinita, le versioni vengono eseguite con ambito di autorizzazione dei processi a livello di organizzazione, consentendo loro di accedere alle risorse in tutti i progetti dell'organizzazione. Ciò è utile quando si collegano artefatti della pipeline da altri progetti. Per limitare l'accesso agli artefatti di un progetto, abilitare Limitare l'ambito di autorizzazione del processo al progetto corrente per le pipeline di versione nelle impostazioni del progetto.

Nota

Per impostazione predefinita, le versioni vengono eseguite con ambito di autorizzazione del processo a livello di raccolta, consentendo loro di accedere alle risorse in tutti i progetti nella raccolta. Ciò è utile quando si collegano artefatti della pipeline da altri progetti. Per limitare l'accesso agli artefatti di un progetto, abilitare Limitare l'ambito di autorizzazione del processo al progetto corrente per le pipeline di versione nelle impostazioni del progetto.

Azure Artifacts

Di seguito sono riportati alcuni degli scenari in cui è possibile usare Azure Artifacts come origine artefatto:

  • Il file binario dell'applicazione viene pubblicato in Azure Artifacts e si vuole usare il pacchetto in una pipeline di versione.

  • Sono necessari pacchetti aggiuntivi archiviati in Azure Artifacts come parte del flusso di lavoro di distribuzione.

Quando si usa Azure Artifacts nella pipeline di versione, è necessario selezionare feed, pacchetto e la versione predefinita per il pacchetto. È possibile scegliere di selezionare la versione più recente del pacchetto, usare una versione specifica o specificare al momento della creazione della versione. Durante la distribuzione, il pacchetto viene scaricato nell'agente che esegue la pipeline.

Quando si usa Azure Artifacts come origine dell'artefatto, sono disponibili le funzionalità seguenti:

Funzionalità Descrizione
Rilasci di trigger automatici Le nuove versioni possono essere create automaticamente quando è disponibile un nuovo artefatto (incluse le compilazioni XAML). Per altri dettagli, vedere Trigger di versione.
Variabili dell'artefatto Per gli artefatti a cui si fa riferimento in una versione classica sono supportate diverse variabili di artefatto.
Elementi di lavoro e commit Collegare gli elementi di lavoro per visualizzarli visualizzati nei dettagli della versione. I commit verranno visualizzati quando si usa Git o TFVC.
Download artefatto Per impostazione predefinita, gli artefatti della pipeline vengono scaricati nell'agente che esegue la pipeline. È anche possibile configurare un passaggio nella fase per ignorare il download dell'artefatto, se necessario.

Gestione degli snapshot Maven

Quando si usano snapshot Maven, è possibile scaricare più versioni contemporaneamente (ad esempio myApplication-2.1.0.BUILD-20190920.220048-3.jar, myApplication-2.1.0.BUILD-20190820.221046-2.jar, myApplication-2.1.0.BUILD-20190820.220331-1.jar). Potrebbe essere necessario rimuovere le versioni precedenti e mantenere l'artefatto più recente prima della distribuzione.

Eseguire il comando seguente in un prompt di PowerShell per rimuovere tutte le copie tranne quella con il valore lessicografico più alto:

Get-Item "myApplication*.jar" | Sort-Object -Descending Name | Select-Object -SkipIndex 0 | Remove-Item

Nota

È possibile archiviare fino a 30 snapshot Maven nel feed. Una volta raggiunto questo limite, Azure Artifacts eliminerà automaticamente gli snapshot meno recenti per mantenere solo i 25 più recenti.

Repository di Azure Container e Hub Docker

Quando si distribuiscono app incluse in contenitori, l'immagine del contenitore viene prima inserita con push in un registro contenitori. È quindi possibile distribuire l'immagine del contenitore nell'app Web di Azure per contenitori o in un cluster Docker/Kubernetes. A tale scopo, è prima necessario creare una connessione al servizio per l'autenticazione con Azure o l'hub Docker. Per altri dettagli, vedere Connessione al servizio registro Docker.

Quando si usa Il repository di Azure Container o l'hub Docker come origine dell'artefatto, sono disponibili le funzionalità seguenti:

Funzionalità Descrizione
Rilasci di trigger automatici Le nuove versioni possono essere create automaticamente quando è disponibile un nuovo artefatto (incluse le compilazioni XAML). Per altri dettagli, vedere Trigger di versione.
Variabili dell'artefatto Per gli artefatti a cui si fa riferimento in una versione classica sono supportate diverse variabili di artefatto.
Elementi di lavoro e commit Collegare gli elementi di lavoro per visualizzarli visualizzati nei dettagli della versione. I commit verranno visualizzati quando si usa Git o TFVC.
Download artefatto Per impostazione predefinita, gli artefatti della pipeline vengono scaricati nell'agente che esegue la pipeline. È anche possibile configurare un passaggio nella fase per ignorare il download dell'artefatto, se necessario.

Jenkins

Per utilizzare gli artefatti jenkins, è necessario creare una connessione al servizio per l'autenticazione con il server Jenkins. Per altri dettagli, vedere Connessione al servizio Jenkins. Inoltre, il progetto Jenkins deve essere configurato con un'azione di post-compilazione per pubblicare gli artefatti.

Gli artefatti generati dalle compilazioni jenkins vengono in genere propagati ai repository di archiviazione per l'archiviazione e la condivisione. Archiviazione BLOB di Azure è un repository di questo tipo, che consente di usare progetti Jenkins che pubblicano in Archiviazione di Azure come origini degli artefatti in una pipeline di versione. Azure Pipelines scaricherà automaticamente questi artefatti da Azure all'agente che esegue la pipeline. In questo scenario, la connettività tra l'agente e il server Jenkins non è necessaria e gli agenti ospitati da Microsoft possono essere usati senza esporre il server Jenkins a Internet.

Quando si usa Jenkins come origine artefatto, sono disponibili le funzionalità seguenti:

Funzionalità Descrizione
Rilasci di trigger automatici Le nuove versioni possono essere create automaticamente quando è disponibile un nuovo artefatto (incluse le compilazioni XAML). Per altri dettagli, vedere Trigger di versione.
Variabili dell'artefatto Per gli artefatti a cui si fa riferimento in una versione classica sono supportate diverse variabili di artefatto.
Elementi di lavoro e commit Collegare gli elementi di lavoro per visualizzarli visualizzati nei dettagli della versione. I commit verranno visualizzati quando si usa Git o TFVC.
Download artefatto Per impostazione predefinita, gli artefatti della pipeline vengono scaricati nell'agente che esegue la pipeline. È anche possibile configurare un passaggio nella fase per ignorare il download dell'artefatto, se necessario.

Nota

Azure Pipelines potrebbe non essere in grado di eseguire il ping del server Jenkins se si trova all'interno di una rete aziendale privata. In questi casi, è possibile integrare Azure Pipelines con Jenkins configurando un agente locale che ha accesso al server Jenkins. Sebbene non vengano visualizzati i nomi dei progetti Jenkins durante il collegamento a una pipeline, è possibile immettere manualmente il nome del progetto nel campo di testo URL.

Alias origine artefatto

Per garantire l'univocità di ogni download di artefatti, a ogni origine artefatto collegata a una pipeline di versione viene assegnato automaticamente un percorso di download specifico noto come alias di origine. È possibile accedere a questo percorso usando la variabile : $(System.DefaultWorkingDirectory)\[source alias].

L'uso degli alias di origine garantisce che la ridenominazione di un'origine artefatto collegato non richieda la modifica delle proprietà dell'attività, perché il percorso di download definito nell'agente rimane invariato.

Per impostazione predefinita, l'alias di origine è il nome dell'origine artefatto preceduto da un carattere di sottolineatura, ad esempio _mslearn-tailspin-spacegame-web. L'alias di origine può corrispondere al nome della pipeline di compilazione, al nome del processo, al nome del progetto o al nome del repository, a seconda del tipo di origine dell'artefatto. È possibile modificare l'alias di origine dalla scheda artefatti nella pipeline di versione.m la scheda artefatti della pipeline di versione.

Download artefatto

Al termine di una distribuzione in una fase, gli artefatti con controllo delle versioni di ogni origine vengono scaricati nell'agente della pipeline in modo che le attività all'interno di tale fase possano accedervi. Questi artefatti scaricati non vengono eliminati al termine di una versione. Tuttavia, quando viene avviata una nuova versione, gli artefatti precedenti vengono eliminati e sostituiti con quelli nuovi.

Viene creata una cartella univoca nell'agente per ogni pipeline di versione quando viene avviata una versione e gli artefatti vengono scaricati in questa cartella:$(System.DefaultWorkingDirectory).

Azure Pipelines non esegue alcuna ottimizzazione per evitare di scaricare nuovamente gli artefatti invariati se la stessa versione viene distribuita di nuovo. Inoltre, poiché il contenuto scaricato in precedenza viene eliminato all'avvio di una nuova versione, Azure Pipelines non può eseguire download incrementali nell'agente.

Per ignorare i download automatici degli artefatti, passare al download dell'artefatto dell'agente>attività>della pipeline>di rilascio e deselezionare tutti gli artefatti o specificare elementi specifici da ignorare.

Screenshot che mostra come ignorare il download automatico degli artefatti in una pipeline di versione classica in Azure DevOps Services.

Per ignorare i download automatici degli artefatti, passare al processo>Attività>della pipeline>di rilascio Opzioni aggiuntive e selezionare la casella di controllo Ignora download di artefatti.

Screenshot che mostra come ignorare il download automatico degli artefatti in una pipeline di versione classica in Azure DevOps Server.