Versionspipelines och artefaktkällor

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Med Azure Pipelines kan du distribuera artefakter från en mängd olika artefaktkällor och integrera arbetsflödet med olika typer av artefaktlagringsplatser. Versioner kan länkas till flera artefaktkällor, där en är avsedd som primär källa.

Artefaktkällor

Azure Pipelines stöder en mängd olika lagringsplatser, källkontrollverktyg och system för kontinuerlig integrering.

När du skapar en version kan du ange versionen av artefaktkällan. Som standard använder versioner den senaste versionen av källartefakten. Du kan också välja att använda den senaste versionen från en specifik gren genom att ange taggarna, en specifik version eller låta användaren ange versionen när versionen skapades.

Skärmbild som visar hur du lägger till en artefakt i en klassisk versionspipeline.

Om du länkar fler än en artefakt kan du ange vilken som är den primära källan (standard). Den primära artefaktkällan används för att ange ett antal fördefinierade variabler. Den kan också användas i namngivningsversioner.

Skärmbild som visar hur du anger en primär källartefakt.

Kommentar

Listruteobjekten Default version beror på källtypen för den länkade byggdefinitionen.

  • Följande alternativ stöds av alla lagringsplatstyper: Specify at the time of release creation, Specific versionoch Latest.

  • Latest from a specific branch with tags och Latest from the build pipeline default branch with tags alternativ stöds av följande lagringsplatstyper: TfsGit, GitHub, Bitbucketoch GitHubEnterprise.

  • Latest from the build pipeline default branch with tags stöds inte av XAML byggdefinitioner.

I följande avsnitt beskrivs hur du arbetar med olika typer av artefaktkällor.

Artefaktkällor – Azure Pipelines

Du kan länka en versionspipeline till valfri Azure Pipelines-version. Du kan också länka flera bygg-pipelines och ange deras standardvärden och konfigurera distributionsutlösare på flera byggkällor. När någon av versionerna har slutförts utlöses skapandet av en version.

Följande funktioner är tillgängliga när du använder Azure Pipelines som en artefaktkälla:

Funktion beskrivning
Autoutlösare Nya versioner kan skapas automatiskt när en ny byggartefakt är tillgänglig (inklusive XAML-versioner). Mer information finns i Versionsutlösare .
Artefaktvariabler Ett antal artefaktvariabler stöds för Azure Pipelines-källor.
Arbetsobjekt och incheckningar Du kan länka Arbetsobjekt för Azure Pipelines så visas de i versionsinformationen. Incheckningar visas när du använder Git- eller TFVC-källkontroller.
Nedladdning av artefakt Som standard laddas byggartefakter ned till agenten som kör pipelinen. Du kan också konfigurera ett steg i fasen för att hoppa över att ladda ned artefakten.
Distributionssteg Kompileringssammanfattningen visar alla distributionssteg där artefakten distribuerades till.

Kommentar

Du måste inkludera uppgiften Publicera artefakter i bygg-pipelinen. För YAML-byggpipelines publiceras en artefakt med namnsläppet implicit.

Som standard körs versioner med ett jobbauktoriseringsomfång på samlingsnivå. Det innebär att versioner kan komma åt resurser i alla projekt i organisationen (eller samling för Azure DevOps Server). Detta är användbart när du länkar byggartefakter från andra projekt. Du kan aktivera Begränsa jobbauktoriseringsomfånget till aktuellt projekt för versionspipelines i projektinställningar för att begränsa åtkomsten till ett projekts artefakt.

Så här anger du omfånget för jobbauktorisering för organisationen:

  • Gå till organisationens inställningar.
  • Välj Inställningar under Pipelines.
  • Aktivera omfånget Begränsa jobbauktorisering till aktuellt projekt för versionspipelines för att begränsa omfånget till det aktuella projektet. Det här är den rekommenderade inställningen för bra säkerhetsåtgärder.

Så här anger du jobbauktoriseringsomfång för ett visst projekt:

  • Gå till dina Projektinställningar.
  • Välj Inställningar under Pipelines.
  • Aktivera omfånget Begränsa jobbauktorisering till aktuellt projekt för versionspipelines för att begränsa omfånget till det aktuella projektet. Det här är den rekommenderade inställningen eftersom det förbättrar säkerheten för dina pipelines.

Kommentar

Om omfånget är inställt på projekt på organisationsnivå kan du inte ändra omfånget i varje projekt.

Alla jobb i en versionskörning med jobbauktoriseringsomfånget inställt på samling. Med andra ord har de här jobben åtkomst till resurser i alla projekt i din projektsamling.

Artefaktkällor – versionskontroll

Det finns vissa scenarier där du kanske vill använda artefakter från olika källkontroller direkt utan att skicka dem via en bygg-pipeline. Till exempel:

  • Utveckla ett PHP- eller JavaScript-program som inte kräver en explicit bygg-pipeline.

  • Du hanterar konfigurationer för olika steg i olika lagringsplatser för versionskontroll och vill använda dessa konfigurationsfiler direkt från versionskontrollen som en del av distributionspipelinen.

  • Du hanterar infrastrukturen och konfigurationen som kod och vill hantera dessa filer på en lagringsplats för versionskontroll.

Eftersom du kan konfigurera flera artefaktkällor i en enda versionspipeline kan du länka både en byggpipeline som skapar binärfilerna för ditt program samt en lagringsplats för versionskontroll som lagrar konfigurationsfilerna i samma pipeline och använda de två uppsättningarna artefakter tillsammans när du distribuerar.

Azure Pipelines stöder TFVC-lagringsplatser (Team Foundation Version Control), Git-lagringsplatser och GitHub-lagringsplatser.

Du kan länka en versionspipeline till någon av Git- eller TFVC-lagringsplatserna i valfritt projekt i din samling (du behöver läsbehörighet till dessa lagringsplatser). Ingen ytterligare installation krävs när du distribuerar artefakter för versionskontroll i samma samling.

När du länkar en GitHub-lagringsplats och väljer en gren kan du redigera standardegenskaperna för artefakttyperna när artefakten har sparats. Detta är särskilt användbart i scenarier där grenen för den stabila versionen av artefakten ändras, och kontinuerliga leveransutgåvor bör använda den här grenen för att hämta nyare versioner av artefakten. Du kan också ange information om utcheckningen, till exempel om utcheckningsundermoduler och LFS-spårade filer och det grunda hämtningsdjupet.

När du länkar en TFVC-gren kan du ange den ändringsuppsättning som ska distribueras när du skapar en version.

Följande funktioner är tillgängliga när du använder TFVC, Git och GitHub som artefaktkälla:

Funktion beskrivning
Autoutlösare Nya versioner kan skapas automatiskt när en ny byggartefakt är tillgänglig (inklusive XAML-versioner). Mer information finns i Versionsutlösare .
Artefaktvariabler Ett antal artefaktvariabler stöds för Azure Pipelines-källor.
Arbetsobjekt och incheckningar Du kan länka Arbetsobjekt för Azure Pipelines så visas de i versionsinformationen. Incheckningar visas när du använder Git- eller TFVC-källkontroller.
Nedladdning av artefakt Som standard laddas byggartefakter ned till agenten som kör pipelinen. Du kan också konfigurera ett steg i fasen för att hoppa över att ladda ned artefakten.

Som standard körs versioner med ett jobbauktoriseringsomfång på samlingsnivå. Det innebär att versioner kan komma åt resurser i alla projekt i organisationen (eller samling för Azure DevOps Server). Detta är användbart när du länkar byggartefakter från andra projekt. Du kan aktivera Begränsa jobbauktoriseringsomfånget till aktuellt projekt för versionspipelines i projektinställningar för att begränsa åtkomsten till ett projekts artefakt.

Artefaktkällor – Jenkins

Om du vill använda Jenkins-artefakter måste du skapa en tjänstanslutning för att autentisera med Jenkins-servern. Mer information finns i Hantera tjänstanslutningar och Jenkins-tjänstanslutning . Jenkins-projektet måste konfigureras med en post build-åtgärd för att publicera artefakterna.

Följande funktioner är tillgängliga när du använder Jenkins som artefaktkälla:

Funktion beskrivning
Autoutlösare Nya versioner kan skapas automatiskt när en ny byggartefakt är tillgänglig (inklusive XAML-versioner). Mer information finns i Versionsutlösare .
Artefaktvariabler Ett antal artefaktvariabler stöds för Azure Pipelines-källor.
Arbetsobjekt och incheckningar Du kan länka Arbetsobjekt för Azure Pipelines så visas de i versionsinformationen. Incheckningar visas när du använder Git- eller TFVC-källkontroller.
Nedladdning av artefakt Som standard laddas byggartefakter ned till agenten som kör pipelinen. Du kan också konfigurera ett steg i fasen för att hoppa över att ladda ned artefakten.

Artefakter som genereras av Jenkins-versioner sprids vanligtvis till lagringsplatser för arkivering och delning. Azure Blob Storage är en av de lagringsplatser som stöds, så att du kan använda Jenkins-projekt som publicerar till Azure Storage som artefaktkällor i en versionspipeline. Azure Pipelines laddar ned artefakterna automatiskt från Azure till agenten som kör pipelinen. I det här scenariot krävs inte anslutning mellan agenten och Jenkins-servern. Microsoft-värdbaserade agenter kan användas utan att exponera servern för Internet.

Kommentar

Azure Pipelines kanske inte kan kontakta Jenkins-servern om den till exempel finns i företagsnätverket. I så fall kan du integrera Azure Pipelines med Jenkins genom att konfigurera en lokal agent som kan komma åt Jenkins-servern. Du kommer inte att kunna se namnet på dina Jenkins-projekt när du länkar till en version, men du kan ange namnet i FÄLTET URL-text.

Artefaktkällor – containrar

När du distribuerar containerbaserade appar skickas containeravbildningen först till ett containerregister. Du kan sedan distribuera containeravbildningen till Azure Web App for Containers eller ett Docker/Kubernetes-kluster. Du måste skapa en tjänstanslutning för att autentisera med Azure. Mer information finns i Hantera tjänstanslutningar .

Följande funktioner är tillgängliga när du använder Azure Container som en artefaktkälla:

Funktion beskrivning
Autoutlösare Nya versioner kan skapas automatiskt när en ny byggartefakt är tillgänglig (inklusive XAML-versioner). Mer information finns i Versionsutlösare .
Artefaktvariabler Ett antal artefaktvariabler stöds för Azure Pipelines-källor.
Arbetsobjekt och incheckningar Du kan länka Arbetsobjekt för Azure Pipelines så visas de i versionsinformationen. Incheckningar visas när du använder Git- eller TFVC-källkontroller.
Nedladdning av artefakt Som standard laddas byggartefakter ned till agenten som kör pipelinen. Du kan också konfigurera ett steg i fasen för att hoppa över att ladda ned artefakten.

Kommentar

När du använder flera artefaktkällor stöds inte mappning av en artefaktkälla för att utlösa en viss fas. En version skapas när det finns en push-överföring till någon av artefaktkällorna. Om du vill göra det rekommenderar Azure Pipelines att du delar upp versionspipelinen i flera versioner.

Artefaktkällor – Azure Artifacts

Nedan visas några scenarier där du kan använda Azure Artifacts som artefaktkälla:

  1. Din programbinärfil publiceras till Azure Artifacts och du vill använda paketet i en versionspipeline.
  2. Du behöver ytterligare paket som lagras i Azure Artifacts som en del av ditt distributionsarbetsflöde.

Med Hjälp av Azure Artifacts i versionspipelinen måste du välja feed, paket och standardversionen för ditt paket. Du kan välja att hämta den senaste versionen av paketet, använda en specifik version eller välja versionen när versionen skapades. Under distributionen hämtas/extraheras paketet till agenten som kör pipelinen.

Följande funktioner är tillgängliga när du använder Azure Artifacts som en artefaktkälla:

Funktion beskrivning
Autoutlösare Nya versioner kan skapas automatiskt när en ny byggartefakt är tillgänglig (inklusive XAML-versioner). Mer information finns i Versionsutlösare .
Artefaktvariabler Ett antal artefaktvariabler stöds för Azure Pipelines-källor.
Arbetsobjekt och incheckningar Du kan länka Arbetsobjekt för Azure Pipelines så visas de i versionsinformationen. Incheckningar visas när du använder Git- eller TFVC-källkontroller.
Nedladdning av artefakt Som standard laddas byggartefakter ned till agenten som kör pipelinen. Du kan också konfigurera ett steg i fasen för att hoppa över att ladda ned artefakten.

Hantera Maven-ögonblicksbilder

När du använder Maven-ögonblicksbilder kan flera versioner laddas ned samtidigt (till exempel 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). Du kan behöva ta bort den gamla versionen och bara behålla den senaste artefakten före distributionen. Kör följande PowerShell-kommando i en upphöjd kommandotolk för att ta bort alla kopior utom den med det högsta lexikala värdet:

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

Kommentar

Du kan lagra upp till 30 Maven-ögonblicksbilder i feeden. När du når maxgränsen tar Azure Artifacts automatiskt bort ögonblicksbilder ned till 25. Den här processen utlöses automatiskt varje gång över 30 ögonblicksbilder publiceras i feeden.

Artefaktkällor – TFS-server

Du kan använda Azure Pipelines för att distribuera artefakter från TFS-servrar utan att behöva göra servern identifierad på Internet genom att konfigurera en lokal automationsagent. Artefakter laddas ned till den lokala agenten och distribueras sedan till de angivna målservrarna utan att lämna företagsnätverket. Detta är idealiskt för kunder att utnyttja sina investeringar i sin lokala infrastruktur samtidigt som de drar nytta av Azure Pipelines-versioner.

Om du vill använda TFS-servrar som en artefaktkälla måste du installera TFS-artefakterna för Azure Pipelines-tillägget från Visual Studio Marketplace och sedan skapa en tjänstanslutning för att autentisera med Azure Pipelines. När du har autentiserats kan du sedan länka en TFS-byggpipeline till din versionspipeline och välja Extern TFS Build från listrutan Typ .

Följande funktioner är tillgängliga när du använder TFS-servrar som en artefaktkälla:

Funktion beskrivning
Autoutlösare Nya versioner kan skapas automatiskt när en ny byggartefakt är tillgänglig (inklusive XAML-versioner). Mer information finns i Versionsutlösare .
Artefaktvariabler Ett antal artefaktvariabler stöds för Azure Pipelines-källor.
Arbetsobjekt och incheckningar Du kan länka Arbetsobjekt för Azure Pipelines så visas de i versionsinformationen. Incheckningar visas när du använder Git- eller TFVC-källkontroller.
Nedladdning av artefakt Som standard laddas byggartefakter ned till agenten som kör pipelinen. Du kan också konfigurera ett steg i fasen för att hoppa över att ladda ned artefakten.

Azure Pipelines kanske inte kan kontakta en lokal TFS-server om den finns i företagsnätverket. I så fall kan du integrera Azure Pipelines med TFS genom att konfigurera en lokal agent som kan komma åt TFS-servern. Du kommer inte att kunna se namnet på dina TFS-projekt eller skapa pipelines när du länkar till en version, men du kan inkludera dessa variabler i URL-textfälten. När du skapar en version kanske Azure Pipelines inte kan fråga TFS-servern om versionsnumren. Ange i stället versions-ID :t (inte versionsnumret) för den önskade versionen i lämpligt fält eller välj den senaste versionen.

Artefaktkällor – TeamCity

Om du vill använda TeamCity som artefaktkälla måste du först installera TeamCity-artefakterna för Azure Pipelines-tillägget från Visual Studio Marketplace.

När du är klar skapar du en tjänstanslutning för att autentisera med din TeamCity-server. Du kan sedan länka din byggartefakt till en versionspipeline. TeamCity-byggkonfigurationen måste konfigureras med en åtgärd för att publicera artefakter.

Följande funktioner är tillgängliga när du använder TeamCity som artefaktkälla:

Funktion beskrivning
Autoutlösare Nya versioner kan skapas automatiskt när en ny byggartefakt är tillgänglig (inklusive XAML-versioner). Mer information finns i Versionsutlösare .
Artefaktvariabler Ett antal artefaktvariabler stöds för Azure Pipelines-källor.
Arbetsobjekt och incheckningar Du kan länka Arbetsobjekt för Azure Pipelines så visas de i versionsinformationen. Incheckningar visas när du använder Git- eller TFVC-källkontroller.
Nedladdning av artefakt Som standard laddas byggartefakter ned till agenten som kör pipelinen. Du kan också konfigurera ett steg i fasen för att hoppa över att ladda ned artefakten.

Azure Pipelines kanske inte kan kontakta din TeamCity-server om den till exempel finns i företagsnätverket. I det här fallet kan du integrera Azure Pipelines med TeamCity genom att konfigurera en lokal agent som kan komma åt TeamCity-servern. Du kommer inte att kunna se namnet på dina TeamCity-projekt när du länkar till ett bygge, men du kan skriva in det i URL-textfältet.

Alias för artefaktkälla

För att säkerställa att varje artefaktnedladdning är unik tillhandahålls varje artefaktkälla som är länkad till en versionspipeline automatiskt med en specifik nedladdningsplats som kallas källalias. Den här platsen kan nås med hjälp av variabeln: $(System.DefaultWorkingDirectory)\[source alias]

Om du använder ett källalias ser du till att byta namn på en länkad artefaktkälla inte kräver redigering av aktivitetsegenskaperna eftersom nedladdningsplatsen som definieras i agenten inte ändras.

Som standard är källaliaset namnet på artefaktkällan med ett understreck. Beroende på artefaktkällans typ är detta namnet på bygg-pipelinen, jobbnamnet, projektnamnet eller lagringsplatsens namn. Du kan redigera källaliaset från fliken artefakter i versionspipelinen.

Nedladdning av artefakt

När en distribution har slutförts till en fas hämtas de versionshanterade artefakterna från var och en av källorna till pipelineagenten så att uppgifter som körs inom den fasen kan komma åt artefakterna. De nedladdade artefakterna tas inte bort när en version har slutförts. Men när du initierar nästa version tas de nedladdade artefakterna bort och ersätts med den nya uppsättningen artefakter.

En ny unik mapp i agenten skapas för varje versionspipeline när en version initieras och artefakterna laddas ned till följande mapp:$(System.DefaultWorkingDirectory).

Azure Pipelines utför ingen optimering för att undvika att ladda ned oförändrade artefakter om samma version distribueras igen. Eftersom det tidigare nedladdade innehållet alltid tas bort när du initierar en ny version kan Azure Pipelines inte utföra inkrementella nedladdningar till agenten.

Du kan dock konfigurera din pipeline för att hoppa över automatisk nedladdning för ett visst jobb eller en viss fas om du vill göra det.