Dela via


Artefaktkällor i klassiska utgåvorflöden

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

Med klassiska release pipelines kan du leverera artefakter från en mängd olika källor. Med det grafiska gränssnittet kan du konfigurera din pipeline för att integrera och använda artefakter från olika tjänster. Dessutom kan du länka flera artefakter från olika källor och utse en som primär källa baserat på dina behov.

Artefaktkällor

Azure Pipelines stöder en mängd olika lagringsplatser, tjänster och CI/CD-plattformar. När du skapar en release kan du ange versionen av din artefaktkälla. 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.

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

Om du länkar flera artefakter kan du ange vilken som är den primära källan (standard). Den primära artefaktkällan används för att ange flera fördefinierade variabler och kan också användas för namngivning av versioner.

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

Listrutan Standardversion beror på källtypen för den länkade versionsdefinitionen. Alternativen Specify at the time of release creation, Specific versionoch Latest stöds av alla lagringsplatstyper. Dock stöds Latest from the build pipeline default branch with tags inte av XAML-byggdefinitioner.

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

Anteckning

När du använder flera artefaktkällor stöds inte mappning av en artefaktkälla för att utlösa en viss fas. Om du behöver den här funktionen rekommenderar Azure Pipelines att du delar upp versionspipelinen i flera versioner.

Azure-pipelines

Du kan länka din klassiska versionspipeline till en valfri pipelineartefakt. Dessutom kan du länka flera artefakter och konfigurera distributionsutlösare på flera byggkällor. Den här konfigurationen skapar en version varje gång en ny version blir tillgänglig. 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 artefakt är tillgänglig (inklusive XAML-versioner). Se Klassiska versionsutlösare för mer information.
Artefaktvariabler Ett antal artefaktvariabler stöds för artefakter som refereras i en klassisk version.
Arbetsobjekt och åtaganden Länka arbetsobjekt för att se dem som visas i versionsinformationen. Incheckningar visas när du använder Git eller TFVC.
Nedladdning av artefakt Som standard laddas pipelineartefakter ned till agenten som kör pipelinen. Du kan också konfigurera ett steg i din fas för att hoppa över nedladdningen av artefakten om det behövs.
Distribueringssteg Pipelinesammanfattningen visar alla distributionssteg där artefakten har distribuerats.

Anteckning

Om du vill publicera pipelineartefakten i en klassisk pipeline måste du lägga till en PublishPipelineArtifact-uppgift i pipelinen. I en YAML-pipeline publiceras en biprodukt implicit.

Begränsa omfånget för jobbauktorisering

Som standard körs versioner med ett jobbauktoriseringsomfång på organisationsnivå, så att de kan komma åt resurser i alla projekt i organisationen. Detta är användbart när du länkar pipelineartefakter från andra projekt. Om du vill begränsa åtkomsten till ett projekts artefakter kan du aktivera Begränsa jobbets auktoriseringsomfång till aktuellt projekt för versionspipelines i projektinställningarna

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

  1. Logga in på din Azure DevOps-organisation.

  2. Välj Organisationsinställningar längst ned till vänster.

  3. Välj Pipelines> *Inställningar.

  4. Aktivera reglaget Begränsa jobbauktorisering till aktuellt projekt för utgåvepipelines för att begränsa omfånget till det aktuella projektet. Detta rekommenderas för att förbättra säkerheten.

    En skärmbild som visar hur du anger omfånget för jobbauktorisering för organisationen.

Så här anger du omfånget för jobbauktorisering för ett visst projekt:

  1. Logga in på din Azure DevOps-organisation och navigera sedan till projektet.

  2. Välj Projektinställningar längst ned till vänster.

  3. Välj Pipelines> *Inställningar.

  4. Aktivera reglaget Begränsa jobbauktorisering till aktuellt projekt för utgåvepipelines för att begränsa omfånget till det aktuella projektet. Den här inställningen rekommenderas för att förbättra säkerheten för dina pipelines.

    En skärmbild som visar hur du anger omfånget för jobbauktorisering för ett projekt.

Anteckning

Om omfånget anges på organisationsnivå kan det inte ändras individuellt i varje projekt.

Anteckning

Som standard körs versioner med ett jobbauktoriseringsomfång på samlingsnivå, så att de kan komma åt resurser i alla projekt i samlingen.

Azure Repos, GitHub och TFVC

Det finns scenarier där du kanske vill använda komponenter direkt från olika versionskontrollsystem utan att skicka dem via en byggprocess. Till exempel:

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

  • Hantera konfigurationer för olika steg i olika lagringsplatser för versionskontroll och använda dessa konfigurationsfiler direkt som en del av distributionspipelinen.

  • Hantera infrastruktur och konfiguration som kod i en lagringsplats för versionskontroll.

Med Azure Pipelines kan du konfigurera flera artefaktkällor i en enda versionspipeline. På så sätt kan du länka en byggpipeline som producerar programbinärfiler och en lagringsplats för versionskontroll som lagrar konfigurationsfiler, med hjälp av båda uppsättningarna artefakter tillsammans under distributionen.

Azure Pipelines stöder Azure Repos, Team Foundation Version Control (TFVC) och GitHub-lagringsplatser. Du kan länka en versionspipeline till valfri Git- eller TFVC-lagringsplats i din projektsamling, förutsatt att du har läsåtkomst. 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 du har sparat artefakten. Detta är användbart om den stabila versionsgrenen ändras, vilket säkerställer att kontinuerliga leveransversioner använder rätt gren för nyare artefaktversioner. Du kan också ange utcheckningsinformation, till exempel undermoduler, inkludering av Git-LFS-spårade filer och grunt hämtningdjup.

När du länkar en TFVC-gren kan du ange vilken ändringsuppsättning som ska distribueras när versionen skapas.

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

Funktion beskrivning
Autoutlösare Nya versioner kan skapas automatiskt när en ny artefakt är tillgänglig (inklusive XAML-versioner). Mer information finns i Versionsutlösare .
Artefaktvariabler Ett antal artefaktvariabler stöds för artefakter som refereras i en klassisk version.
Arbetsobjekt och åtaganden Länka arbetsobjekt för att se dem som visas i versionsinformationen. Incheckningar visas när du använder Git eller TFVC.
Nedladdning av artefakt Som standard laddas pipelineartefakter ned till agenten som kör pipelinen. Du kan också konfigurera ett steg i din fas för att hoppa över nedladdningen av artefakten om det behövs.

Anteckning

Som standard körs versioner med jobbauktoriseringsomfång på organisationsnivå, så att de kan komma åt resurser i alla projekt i organisationen. Detta är användbart när du länkar pipelineartefakter från andra projekt. Om du vill begränsa åtkomsten till ett projekts artefakter aktiverar du Begränsa jobbauktoriseringsomfånget till aktuellt projekt för release-pipelines i projektinställningarna.

Anteckning

Som standard körs versioner med jobbauktoriseringsomfång på samlingsnivå, så att de kan komma åt resurser i alla projekt i samlingen. Detta är användbart när du länkar pipelineartefakter från andra projekt. Om du vill begränsa åtkomsten till ett projekts artefakter aktiverar du Begränsa jobbauktoriseringsomfånget till aktuellt projekt för release-pipelines i projektinställningarna.

Azure Artifacts

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

  • Programbinärfilen publiceras till Azure Artifacts och du vill använda paketet i en versionspipeline.

  • Du behöver ytterligare paket som lagras i Azure Artifacts som en del av ditt distributionsarbetsflöde.

När du använder Azure Artifacts i versionspipelinen måste du välja feeden, paketet och standardversionen för paketet. Du kan välja att hämta den senaste versionen av paketet, använda en viss version eller ange när versionen skapas. Under distributionen laddas paketet ned till agenten som kör din pipeline.

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 artefakt är tillgänglig (inklusive XAML-versioner). Mer information finns i Versionsutlösare .
Artefaktvariabler Ett antal artefaktvariabler stöds för artefakter som refereras i en klassisk version.
Arbetsobjekt och åtaganden Länka arbetsobjekt för att se dem som visas i versionsinformationen. Incheckningar visas när du använder Git eller TFVC.
Nedladdning av artefakt Som standard laddas pipelineartefakter ned till agenten som kör pipelinen. Du kan också konfigurera ett steg i din fas för att hoppa över nedladdningen av artefakten om det behövs.

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 de gamla versionerna och bara behålla den senaste artefakten före distributionen.

Kör följande kommando i ett PowerShell-skalfönster för att ta bort alla kopior utom den med det högsta lexikografiska värdet.

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

Anteckning

Du kan lagra upp till 30 Maven-ögonblicksbilder i feeden. När den här gränsen har nåtts tar Azure Artifacts automatiskt bort äldre ögonblicksbilder för att endast behålla de senaste 25.

Azure Container Repository och Docker Hub

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. För att göra detta måste du först skapa en tjänstanslutning för att autentisera med Azure eller Docker Hub. Mer information finns i Docker Registry-tjänstanslutning .

Följande funktioner är tillgängliga när du använder Azure Container Repository eller Docker Hub som artefaktkälla:

Funktion beskrivning
Autoutlösare Nya versioner kan skapas automatiskt när en ny artefakt är tillgänglig (inklusive XAML-versioner). Mer information finns i Versionsutlösare .
Artefaktvariabler Ett antal artefaktvariabler stöds för artefakter som refereras i en klassisk version.
Arbetsobjekt och åtaganden Länka arbetsobjekt för att se dem som visas i versionsinformationen. Incheckningar visas när du använder Git eller TFVC.
Nedladdning av artefakt Som standard laddas pipelineartefakter ned till agenten som kör pipelinen. Du kan också konfigurera ett steg i din fas för att hoppa över nedladdningen av artefakten om det behövs.

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 Jenkins-tjänstanslutning . Dessutom måste Jenkins-projektet konfigureras med en åtgärd efter bygget för att publicera artefakterna.

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

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 artefakt är tillgänglig (inklusive XAML-versioner). Mer information finns i Versionsutlösare .
Artefaktvariabler Ett antal artefaktvariabler stöds för artefakter som refereras i en klassisk version.
Arbetsobjekt och åtaganden Länka arbetsobjekt för att se dem som visas i versionsinformationen. Incheckningar visas när du använder Git eller TFVC.
Nedladdning av artefakt Som standard laddas pipelineartefakter ned till agenten som kör pipelinen. Du kan också konfigurera ett steg i din fas för att hoppa över nedladdningen av artefakten om det behövs.

Anteckning

Azure Pipelines kanske inte kan pinga Jenkins-servern om den finns i ett privat företagsnätverk. I sådana fall kan du integrera Azure Pipelines med Jenkins genom att konfigurera en lokal agent som har åtkomst till Jenkins-servern. Du kanske inte ser namnen på dina Jenkins-projekt när du länkar till en pipeline, men du kan ange projektnamnet manuellt i fältet URL-text.

Alias för artefaktkälla

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

Med hjälp av källalias ser du till att byta namn på en länkad artefaktkälla inte kräver redigering av uppgiftsegenskaperna, eftersom nedladdningsplatsen som definieras i agenten förblir oförändrad.

Som standard är källaliaset namnet på artefaktkällan med ett understreck (t.ex. _mslearn-tailspin-spacegame-web). Källaliaset kan motsvara namnet på bygg-pipelinen, jobbnamnet, projektnamnet eller lagringsplatsens namn, beroende på artefaktkällans typ. Du kan redigera källaliaset från fliken artefakter i versionspipelinen.m fliken artefakter i versionspipelinen.

Nedladdning av artefakt

När en distribution till en fas har slutförts laddas versionshanterade artefakter från varje källa ned till pipelineagenten så att uppgifter i den fasen kan komma åt dem. Dessa nedladdade artefakter tas inte bort när en version har slutförts. Men när en ny version initieras tas de tidigare artefakterna bort och ersätts med de nya.

En unik mapp skapas på agenten för varje versionspipeline när en version initieras och artefakter laddas ned till den här mappen:$(System.DefaultWorkingDirectory).

Azure Pipelines utför ingen optimering för att undvika att ladda ned de oförändrade artefakterna igen om samma version distribueras igen. Eftersom tidigare nedladdat innehåll tas bort när en ny version startas kan Azure Pipelines inte utföra inkrementella nedladdningar till agenten.

Om du vill hoppa över automatiska artefaktnedladdningar går du till din Versionspipeline>Uppgifter>Agentjobb>Artefaktnedladdning och avmarkerar alla artefakter eller anger specifika artefakter som ska hoppas över.

En skärmbild som visar hur du hoppar över automatisk nedladdning av artefakter i en klassisk versionspipeline i Azure DevOps Services.

Om du vill hoppa över automatiska artefaktsnedladdningar, navigera till din Release-pipelinen>Uppgifter>Agentjobb>Ytterligare alternativ, och markera kryssrutan Hoppa över nedladdning av artefakter.

En skärmbild som visar hur du hoppar över automatisk nedladdning av artefakter i en klassisk versionspipeline på Azure DevOps Server.