Dela via


Artefaktkällor i klassiska versionspipelines

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

Med klassiska versionspipelines kan du distribuera 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 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.

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. Stöds dock Latest from the build pipeline default branch with tags inte av XAML-versionsdefinitioner .

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

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. 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 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). Mer information finns i Klassiska versionsutlösare .
Artefaktvariabler Ett antal artefaktvariabler stöds för artefakter som refereras i en klassisk version.
Arbetsobjekt och incheckningar 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 fasen för att hoppa över att ladda ned artefakten om det behövs.
Distributionssteg Pipelinesammanfattningen visar alla distributionssteg där artefakten har distribuerats.

Kommentar

Om du vill publicera pipelineartefakten i en klassisk pipeline måste du lägga till en PublishPipelineArtifact-uppgift i pipelinen. I YAML-pipelines publiceras en släppartefakt 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 omfånget Begränsa jobbauktorisering till aktuellt projekt för versionspipelines 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 omfånget Begränsa jobbauktorisering till aktuellt projekt för versionspipelines 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.

Kommentar

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

Kommentar

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 artefakter direkt från olika källkontroller utan att skicka dem via en bygg-pipeline. 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, Git-LFS-spårad filinkludering och grunt hämtningsdjup.

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 incheckningar 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 fasen för att hoppa över att ladda ned artefakten om det behövs.

Kommentar

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 versionspipelines i projektinställningarna.

Kommentar

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 versionspipelines 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 incheckningar 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 fasen för att hoppa över att ladda ned 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 en PowerShell-kommandotolk för att ta bort alla kopior utom den med det högsta lexicographical-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 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 incheckningar 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 fasen för att hoppa över att ladda ned 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 incheckningar 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 fasen för att hoppa över att ladda ned artefakten om det behövs.

Kommentar

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 versionspipelinen >Uppgifter>AgentjobbEttefakthämtning> och avmarkerar alla artefakter eller anger vilka 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 artefaktnedladdningar går du till agentjobbet >För versionspipelinen>>Ytterligare alternativ och markerar 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.