Pipeline di versione e origini artefatto

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

Con Azure Pipelines è possibile distribuire gli artefatti da un'ampia gamma di origini artefatti e integrare il flusso di lavoro con diversi tipi di repository di artefatti. Le versioni possono essere collegate a più origini di artefatti, dove una è designata come origine primaria.

Origini artefatto

Azure Pipelines supporta un'ampia gamma di repository, strumenti di controllo del codice sorgente e sistemi di integrazione continua.

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ù elementi, è possibile specificare quale sia l'origine primaria (impostazione predefinita). L'origine dell'artefatto primario viene usata per impostare una serie di variabili predefinite. Può essere usato anche nelle versioni di denominazione.

Screenshot che mostra come impostare un artefatto di origine primario.

Nota

Gli Default version elementi a discesa dipendono dal tipo di origine della definizione di compilazione collegata.

  • Le opzioni seguenti sono supportate da tutti i tipi di repository: Specify at the time of release creation, Specific versione Latest.

  • Latest from a specific branch with tags Le opzioni e Latest from the build pipeline default branch with tags sono supportate dai tipi di repository seguenti: TfsGit, GitHub, Bitbuckete GitHubEnterprise.

  • Latest from the build pipeline default branch with tags non è supportato dalle XAML definizioni di compilazione.

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

Origini degli artefatti - Azure Pipelines

È possibile collegare una pipeline di versione a qualsiasi compilazione di Azure Pipelines. È anche possibile collegare più pipeline di compilazione e specificare i valori predefiniti e configurare i trigger di distribuzione in più origini di compilazione. Al termine di una delle compilazioni, attiverà la creazione di una versione.

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 di compilazione (incluse le compilazioni XAML). Per altri dettagli, vedere Trigger di versione.
Variabili dell'artefatto Sono supportate diverse variabili di artefatto per le origini di Azure Pipelines.
Elementi di lavoro e commit È possibile collegare gli elementi di lavoro di Azure Pipelines e verranno visualizzati nei dettagli delle versioni. I commit vengono visualizzati quando si usano controlli origine Git o TFVC.
Download artefatto Per impostazione predefinita, gli artefatti di compilazione vengono scaricati nell'agente che esegue la pipeline. È anche possibile configurare un passaggio nella fase per ignorare il download dell'artefatto .
Fasi della distribuzione L'elenco di riepilogo della compilazione elenca tutte le fasi di distribuzione in cui è stato distribuito l'artefatto.

Nota

È necessario includere un'attività Pubblica artefatti nella pipeline di compilazione. Per le pipeline di compilazione YAML, un artefatto con il nome drop viene pubblicato in modo implicito.

Per impostazione predefinita, le versioni vengono eseguite con un ambito di autorizzazione del processo a livello di raccolta. Ciò significa che le versioni possono accedere alle risorse in tutti i progetti dell'organizzazione (o raccolta per Azure DevOps Server). Ciò è utile quando si collegano artefatti di compilazione da altri progetti. È possibile abilitare Limita l'ambito di autorizzazione del processo al progetto corrente per le pipeline di versione nelle impostazioni del progetto per limitare l'accesso all'artefatto di un progetto.

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

  • Passare alle impostazioni dell'organizzazione.
  • Selezionare Impostazioni in Pipeline.
  • 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 è l'impostazione consigliata per una buona misura di sicurezza.

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

  • Passare alle impostazioni del progetto.
  • Selezionare Impostazioni in Pipeline.
  • 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 è l'impostazione consigliata, perché migliora la sicurezza per le pipeline.

Nota

Se l'ambito è impostato su progetto a livello di organizzazione, non è possibile modificare l'ambito in ogni progetto.

Tutti i processi in una versione vengono eseguiti con l'ambito di autorizzazione del processo impostato sulla raccolta. In altre parole, questi processi hanno accesso alle risorse in tutti i progetti nella raccolta di progetti.

Origini degli artefatti - Controllo della versione

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

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

  • Le configurazioni vengono gestite per varie fasi in repository di controllo della versione diversi e si vogliono usare questi file di configurazione direttamente dal controllo della versione come parte della pipeline di distribuzione.

  • L'infrastruttura e la configurazione vengono gestite come codice e si vogliono gestire questi file in un repository di controllo della versione.

Poiché è possibile configurare più origini di artefatti in una singola pipeline di versione, è possibile collegare sia una pipeline di compilazione che produce i file binari dell'applicazione sia un repository di controllo della versione che archivia i file di configurazione nella stessa pipeline e usare i due set di artefatti insieme durante la distribuzione.

Azure Pipelines supporta repository controllo della versione di Team Foundation (TFVC), repository Git e repository GitHub.

È possibile collegare una pipeline di versione a uno qualsiasi dei repository Git o TFVC in qualsiasi progetto della raccolta (sarà necessario l'accesso in lettura a questi repository). 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 il salvataggio dell'artefatto. Ciò è particolarmente utile negli scenari in cui il ramo per la versione stabile dell'artefatto cambia e le versioni di recapito continuo devono usare questo ramo per ottenere versioni più recenti dell'artefatto. È anche possibile specificare i dettagli dell'estrazione, ad esempio se i moduli secondari di estrazione e i file con rilevamento LFS e la profondità di recupero superficiale.

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

Quando si usa TFVC, Git e GitHub 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 di compilazione (incluse le compilazioni XAML). Per altri dettagli, vedere Trigger di versione.
Variabili dell'artefatto Sono supportate diverse variabili di artefatto per le origini di Azure Pipelines.
Elementi di lavoro e commit È possibile collegare gli elementi di lavoro di Azure Pipelines che verranno visualizzati nei dettagli delle versioni. I commit vengono visualizzati quando si usano controlli origine Git o TFVC.
Download artefatto Per impostazione predefinita, gli artefatti di compilazione vengono scaricati nell'agente che esegue la pipeline. È anche possibile configurare un passaggio nella fase per ignorare il download dell'artefatto .

Per impostazione predefinita, le versioni vengono eseguite con un ambito di autorizzazione del processo a livello di raccolta. Ciò significa che le versioni possono accedere alle risorse in tutti i progetti dell'organizzazione (o raccolta per Azure DevOps Server). Ciò è utile quando si collegano artefatti di compilazione da altri progetti. È possibile abilitare Limita l'ambito di autorizzazione del processo al progetto corrente per le pipeline di versione nelle impostazioni del progetto per limitare l'accesso all'artefatto di un progetto.

Origini artefatto - Jenkins

Per utilizzare gli artefatti jenkins, è necessario creare una connessione al servizio per l'autenticazione con il server Jenkins. Per altre informazioni, vedere Gestire le connessioni al servizio e la connessione al servizio Jenkins. Il progetto Jenkins deve essere configurato con un'azione di post-compilazione per pubblicare gli artefatti.

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 di compilazione (incluse le compilazioni XAML). Per altri dettagli, vedere Trigger di versione.
Variabili dell'artefatto Sono supportate diverse variabili di artefatto per le origini di Azure Pipelines.
Elementi di lavoro e commit È possibile collegare gli elementi di lavoro di Azure Pipelines e verranno visualizzati nei dettagli delle versioni. I commit vengono visualizzati quando si usano controlli origine Git o TFVC.
Download artefatto Per impostazione predefinita, gli artefatti di compilazione vengono scaricati nell'agente che esegue la pipeline. È anche possibile configurare un passaggio nella fase per ignorare il download dell'artefatto .

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

Nota

Azure Pipelines potrebbe non essere in grado di contattare il server Jenkins se, ad esempio, si trova all'interno della rete aziendale. In questo caso, è possibile integrare Azure Pipelines con Jenkins configurando un agente locale in grado di accedere al server Jenkins. Non sarà possibile visualizzare il nome dei progetti Jenkins durante il collegamento a una compilazione, ma è possibile immettere il nome nel campo di testo URL.

Origini degli artefatti - Contenitori

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. È necessario creare una connessione al servizio per l'autenticazione con Azure. Per altri dettagli, vedere Gestire le connessioni al servizio.

Quando si usa Azure Container 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 di compilazione (incluse le compilazioni XAML). Per altri dettagli, vedere Trigger di versione.
Variabili dell'artefatto Sono supportate diverse variabili di artefatto per le origini di Azure Pipelines.
Elementi di lavoro e commit È possibile collegare gli elementi di lavoro di Azure Pipelines e verranno visualizzati nei dettagli delle versioni. I commit vengono visualizzati quando si usano controlli origine Git o TFVC.
Download artefatto Per impostazione predefinita, gli artefatti di compilazione vengono scaricati nell'agente che esegue la pipeline. È anche possibile configurare un passaggio nella fase per ignorare il download dell'artefatto .

Nota

Quando si usano più origini artefatti, il mapping di un'origine artefatto per attivare una fase specifica non è supportato. Verrà creata una versione ogni volta che viene eseguito un push in una delle origini degli artefatti. Se si vuole farlo, Azure Pipelines consiglia di suddividere la pipeline di versione in più versioni.

Origini degli artefatti - Azure Artifacts

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

  1. Il file binario dell'applicazione viene pubblicato in Azure Artifacts e si vuole usare il pacchetto in una pipeline di versione.
  2. Sono necessari pacchetti aggiuntivi archiviati in Azure Artifacts come parte del flusso di lavoro di distribuzione.

Usando 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 selezionare la versione al momento della creazione della versione. Durante la distribuzione, il pacchetto viene scaricato/estratto 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 di compilazione (incluse le compilazioni XAML). Per altri dettagli, vedere Trigger di versione.
Variabili dell'artefatto Sono supportate diverse variabili di artefatto per le origini di Azure Pipelines.
Elementi di lavoro e commit È possibile collegare gli elementi di lavoro di Azure Pipelines e verranno visualizzati nei dettagli delle versioni. I commit vengono visualizzati quando si usano controlli origine Git o TFVC.
Download artefatto Per impostazione predefinita, gli artefatti di compilazione vengono scaricati nell'agente che esegue la pipeline. È anche possibile configurare un passaggio nella fase per ignorare il download dell'artefatto .

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 la versione precedente e mantenere solo l'elemento più recente prima della distribuzione. Eseguire il comando di PowerShell seguente in un prompt dei comandi con privilegi elevati 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. Dopo aver raggiunto il limite massimo, Azure Artifacts eliminerà automaticamente gli snapshot fino a 25. Questo processo verrà attivato automaticamente ogni volta che vengono pubblicati 30 snapshot nel feed.

Origini degli artefatti - Server TFS

È possibile usare Azure Pipelines per distribuire artefatti dai server TFS senza dover rendere individuabile il server in Internet configurando un agente di automazione locale. Gli artefatti vengono scaricati nell'agente locale e quindi distribuiti nei server di destinazione specificati senza uscire dalla rete aziendale. Questo è l'ideale per i clienti per sfruttare gli investimenti dell'infrastruttura locale sfruttando al contempo i vantaggi delle versioni di Azure Pipelines.

Per usare i server TFS come origine artefatto, è necessario installare gli artefatti TFS per l'estensione Azure Pipelines da Visual Studio Marketplace e quindi creare una connessione al servizio per l'autenticazione con Azure Pipelines. Dopo l'autenticazione, è possibile collegare una pipeline di compilazione TFS alla pipeline di versione e scegliere Compilazione TFS esterna dal menu a discesa Tipo .

Quando si usano i server TFS 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 di compilazione (incluse le compilazioni XAML). Per altri dettagli, vedere Trigger di versione.
Variabili dell'artefatto Sono supportate diverse variabili di artefatto per le origini di Azure Pipelines.
Elementi di lavoro e commit È possibile collegare gli elementi di lavoro di Azure Pipelines e verranno visualizzati nei dettagli delle versioni. I commit vengono visualizzati quando si usano controlli origine Git o TFVC.
Download artefatto Per impostazione predefinita, gli artefatti di compilazione vengono scaricati nell'agente che esegue la pipeline. È anche possibile configurare un passaggio nella fase per ignorare il download dell'artefatto .

Azure Pipelines potrebbe non essere in grado di contattare un server TFS locale nel caso in cui si trova all'interno della rete aziendale. In tal caso, è possibile integrare Azure Pipelines con TFS configurando un agente locale in grado di accedere al server TFS. Non sarà possibile visualizzare il nome dei progetti TFS o delle pipeline di compilazione durante il collegamento a una compilazione, ma è possibile includere tali variabili nei campi di testo URL. Inoltre, quando si crea una versione, Azure Pipelines potrebbe non essere in grado di eseguire query sul server TFS per i numeri di build. Immettere invece l'ID di compilazione (non il numero di build) della build desiderata nel campo appropriato oppure selezionare la build più recente.

Origini degli artefatti - TeamCity

Per usare TeamCity come origine artefatto, è prima necessario installare gli artefatti TeamCity per l'estensione Azure Pipelines da Visual Studio Marketplace.

Al termine, creare una connessione al servizio per l'autenticazione con il server TeamCity. È quindi possibile collegare l'artefatto di compilazione a una pipeline di versione. La configurazione di compilazione di TeamCity deve essere configurata con un'azione per pubblicare gli artefatti.

Quando si usa TeamCity 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 di compilazione (incluse le compilazioni XAML). Per altri dettagli, vedere Trigger di versione.
Variabili dell'artefatto Sono supportate diverse variabili di artefatto per le origini di Azure Pipelines.
Elementi di lavoro e commit È possibile collegare gli elementi di lavoro di Azure Pipelines e verranno visualizzati nei dettagli delle versioni. I commit vengono visualizzati quando si usano controlli origine Git o TFVC.
Download artefatto Per impostazione predefinita, gli artefatti di compilazione vengono scaricati nell'agente che esegue la pipeline. È anche possibile configurare un passaggio nella fase per ignorare il download dell'artefatto .

Azure Pipelines potrebbe non essere in grado di contattare il server TeamCity se, ad esempio, si trova all'interno della rete aziendale. In questo caso è possibile integrare Azure Pipelines con TeamCity configurando un agente locale in grado di accedere al server TeamCity. Non sarà possibile visualizzare il nome dei progetti TeamCity durante il collegamento a una compilazione, ma è possibile digitarlo nel campo di testo URL.

Alias origine artefatto

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

L'uso di 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 non cambia.

Per impostazione predefinita, l'alias di origine è il nome dell'origine artefatto preceduto da un carattere di sottolineatura. A seconda del tipo dell'origine dell'artefatto, questo sarà il nome della pipeline di compilazione, il nome del processo, il nome del progetto o il nome del repository. È possibile modificare l'alias di origine dalla scheda artefatti della pipeline di versione.

Download artefatto

Quando una distribuzione viene completata in una fase, gli artefatti con controllo delle versioni di ognuna delle origini vengono scaricati nell'agente della pipeline in modo che le attività in esecuzione all'interno di tale fase possano accedere a tali artefatti. Gli artefatti scaricati non vengono eliminati al termine di una versione. Tuttavia, quando si avvia la versione successiva, gli artefatti scaricati vengono eliminati e sostituiti con il nuovo set di artefatti.

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

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

È tuttavia possibile configurare la pipeline per ignorare il download automatico per un processo o una fase specifica se si vuole farlo.