Origini degli artefatti nelle pipeline di rilascio classico
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Con le pipeline di rilascio classico, è possibile rilasciare i tuoi 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.
Fonti degli artefatti
Azure Pipelines supporta un'ampia gamma di repository, servizi e piattaforme CI/CD. Quando si crea un rilascio, è possibile specificare la versione della sorgente 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.
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 denominare le versioni.
L'elenco a discesa delle opzioni di Versione predefinita dipende dal tipo di origine della build collegata. Le opzioni Specify at the time of release creation
, Specific version
e Latest
sono supportate da tutti i tipi di repository. Tuttavia, il Latest from the build pipeline default branch with tags
non è 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 di artefatti, la mappatura di un'origine di artefatti per attivare una fase specifica non è supportata. 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 su più origini di build. 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 | Diverse variabili di artefatto sono supportate per gli artefatti a cui si fa riferimento in una versione classica. |
Elementi di lavoro e commit | Collegare gli elementi di lavoro per visualizzarli nei dettagli della versione. I commit verranno visualizzati quando si usa Git o TFVC. |
Scarica artefatto | Per impostazione predefinita, gli artefatti della pipeline vengono scaricati sull'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 un artefatto della pipeline in una pipeline classica, è necessario aggiungere un'attività PublishPipelineArtifact alla propria pipeline. Nelle pipeline YAML, un artefatto di rilascio viene pubblicato in modo implicito.
Limitare l'ambito di autorizzazione dell'attività
Per impostazione predefinita, i rilasci vengono eseguiti con un ambito di autorizzazione a livello organizzativo, 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 Limita l'ambito di autorizzazione dei processi al progetto corrente per le pipeline di rilascio nelle impostazioni del progetto.
Per impostare l'ambito di autorizzazione del compito per l'organizzazione:
Accedi alla tua organizzazione di Azure DevOps.
Selezionare Impostazioni organizzazione in basso a sinistra.
Selezionare Pipeline> *Impostazioni.
Attivare l'interruttore Limita l'ambito di autorizzazione del lavoro al progetto corrente per le pipeline di rilascio per restringere l'ambito al progetto corrente. È raccomandato migliorare la sicurezza.
Per impostare l'ambito di autorizzazione del lavoro per un progetto specifico:
Accedere all'organizzazione di Azure DevOps e passare al progetto.
Selezionare Impostazioni progetto in basso a sinistra.
Selezionare Pipeline> *Impostazioni.
Attivare l'interruttore Limita l'ambito di autorizzazione del processo alle pipeline di rilascio per il progetto corrente per limitare l'ambito al progetto corrente. Questa impostazione è consigliata per migliorare la sicurezza delle pipeline.
Nota
Se l'ambito è impostato a livello di organizzazione, non può essere modificato singolarmente in ogni progetto.
Nota
Per impostazione predefinita, i rilasci vengono eseguiti con un ambito di autorizzazione 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.
Gestire configurazioni per le varie fasi in diversi archivi di controllo della versione e utilizzare direttamente questi file di configurazione nella 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 rilascio. 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 i repository di Azure Repos, Team Foundation Version Control (TFVC) e 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 distribuzioni continue usino il ramo corretto per le nuove versioni degli artefatti. È anche possibile specificare dettagli di checkout, ad esempio sottomoduli, inclusione di file tracciati da Git-LFS e profondità di fetch 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 ad attivazione automatica | Le nuove versioni possono essere create automaticamente quando è disponibile un nuovo artefatto (incluse le compilazioni XAML). Vedere Trigger di rilascio per ulteriori dettagli. |
Variabili dell'artefatto | Sono supportate numerose variabili degli artefatti per gli artefatti a cui si fa riferimento in una versione classica. |
Elementi di lavoro e commit | Collegare gli elementi di lavoro per vederli nei dettagli della versione. I commit verranno visualizzati quando si usa Git o TFVC. |
Scarica l'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, i rilasci vengono eseguiti con ambito di autorizzazione dei lavori a livello dell'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, abilita Limita l'ambito di autorizzazione al progetto corrente per le pipeline di rilascio nelle impostazioni del progetto.
Nota
Per impostazione predefinita, le versioni delle release vengono eseguite con un ambito di autorizzazione a livello di raccolta, permettendo loro di accedere alle risorse di 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, attivare Limitare l'ambito di autorizzazione dei job al progetto corrente per le pipeline di rilascio nelle impostazioni del progetto.
Azure Artifacts
Di seguito sono riportati alcuni scenari in cui è possibile usare Azure Artifacts come origine di artefatti.
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 dall'agente che esegue la pipeline.
Quando si usa Azure Artifacts come origine dell'artefatto, sono disponibili le funzionalità seguenti:
Funzionalità | Descrizione |
---|---|
Rilasci attivati automaticamente | Le nuove versioni possono essere create automaticamente quando è disponibile un nuovo artefatto (incluse le compilazioni XAML). Per ulteriori dettagli, vedere Trigger di rilascio. |
Variabili dell'artefatto | Un certo numero di variabili di artefatto è supportato per gli artefatti menzionati in un rilascio classico. |
Elementi di lavoro e commit | Collegare gli elementi di lavoro per vederli nei dettagli del rilascio. I commit verranno visualizzati quando si usa Git o TFVC. |
Download di artefatti | 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.
Azure Container Repository e Docker Hub
Quando si distribuiscono app containerizzate, l'immagine del contenitore viene prima trasferita tramite 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 automatici attivati da trigger | Le nuove versioni possono essere create automaticamente quando è disponibile un nuovo artefatto (incluse le compilazioni XAML). Per ulteriori dettagli, vedere Attivatori di rilascio. |
Variabili dell'artefatto | Sono supportate diverse variabili di artefatto per gli artefatti a cui si fa riferimento in una versione classica. |
Attività di lavoro e commit | Collegare gli elementi di lavoro per visualizzarli nei dettagli del rilascio. I commit verranno visualizzati quando si usa Git o TFVC. |
Download dell'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 di 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. Azure Blob Storage è 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 rilascio. 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.
Le seguenti funzionalità sono disponibili quando si usa Jenkins come sorgente degli artefatti:
Funzionalità | Descrizione |
---|---|
Rilasci di attivazioni automatiche | Le nuove versioni possono essere create automaticamente quando è disponibile un nuovo artefatto (incluse le compilazioni XAML). Vedere Trigger di rilascio per ulteriori dettagli. |
Variabili dell'artefatto | Un numero di variabili di artefatto sono supportate per gli artefatti a cui si fa riferimento in una versione classica. |
Elementi di lavoro e commit | Collegare gli elementi di lavoro per visualizzarli nei dettagli della versione. I commit verranno visualizzati quando si usa Git o TFVC. |
Download dell'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 artefatto, a ogni origine artefatto collegata a una pipeline di rilascio viene assegnato automaticamente un percorso di download specifico chiamato alias di origine. È possibile accedere a questo percorso usando la variabile : $(System.DefaultWorkingDirectory)\[source alias]
.
L'uso degli alias di origine garantisce che rinominare una fonte artefatto collegata non richieda la modifica delle proprietà dell'attività, perché il percorso di download definito nell'agente rimane invariato.
Per impostazione predefinita, l'alias della sorgente è costituito dal nome della sorgente dell'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 versionati di ogni origine vengono scaricati dall'agente della pipeline, così 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 all' attività>Job dell'agente>nella pipeline di rilascio>Download dell'artefatto e deselezionare tutti gli artefatti o specificare particolari artefatti da ignorare.
Per ignorare i download automatici degli artefatti, passare al pipeline di rilascio>Attività>processo agent>Opzioni aggiuntive e selezionare la casella di controllo Ignora download degli artefatti.