Delen via


Artifactbronnen in klassieke releasepijplijnen

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

Met klassieke release-pijplijnen kunt u uw artefacten implementeren vanuit een breed scala aan bronnen. Met behulp van de grafische interface kunt u uw pijplijn instellen om artefacten van verschillende services te integreren en te gebruiken. Daarnaast kunt u meerdere artefacten uit verschillende bronnen koppelen en er een aanwijzen als de primaire bron op basis van uw behoeften.

Artefactbronnen

Azure Pipelines ondersteunt een breed scala aan opslagplaatsen, services en CI/CD-platforms. Wanneer u een release maakt, kunt u de versie van uw artefactbron opgeven. Releases gebruiken standaard de nieuwste versie van het bronartefact. U kunt er ook voor kiezen om de nieuwste build van een specifieke vertakking te gebruiken door de tags, een specifieke versie op te geven of de gebruiker de versie te laten opgeven op het moment dat de release wordt gemaakt.

Een schermopname die laat zien hoe u een artefact toevoegt aan een klassieke release-pijplijn.

Als u meerdere artefacten koppelt, kunt u opgeven welke de primaire bron is (standaard). De primaire artefactbron wordt gebruikt om verschillende vooraf gedefinieerde variabelen in te stellen en kan ook worden gebruikt voor naamgevingsreleases.

Een schermopname die laat zien hoe u een primaire bronartefact instelt.

De Standaardversie vervolgkeuzelijst is afhankelijk van het brontype van de gekoppelde builddefinitie. De opties Specify at the time of release creationen Specific versionLatest worden ondersteund door alle typen opslagplaatsen. Het Latest from the build pipeline default branch with tags wordt echter niet door XAML-builddefinities ondersteund.

In de volgende secties wordt beschreven hoe u kunt werken met de verschillende typen artefactbronnen:

Notitie

Wanneer u meerdere artefactbronnen gebruikt, wordt het toewijzen van een artefactbron om een bepaalde fase te activeren niet ondersteund. Als u deze functionaliteit nodig hebt, raadt Azure Pipelines u aan om uw release-pijplijn op te splitsen in meerdere releases.

Azure-pipelines

U kunt uw klassieke release-pijplijn koppelen aan elk pijplijnartefact. Daarnaast kunt u meerdere artefacten koppelen en implementatietriggers instellen op meerdere buildbronnen. Met deze installatie wordt telkens wanneer er een nieuwe build beschikbaar komt een release gemaakt. De volgende functies zijn beschikbaar bij het gebruik van Azure Pipelines als artefactbron:

Functie Beschrijving
Releases met automatische trigger Nieuwe releases kunnen automatisch worden gemaakt wanneer een nieuw artefact beschikbaar is (inclusief XAML-builds). Zie Klassieke release-triggers voor meer informatie.
Artefactvariabelen Een aantal artefactvariabelen wordt ondersteund voor artefacten waarnaar wordt verwezen in een klassieke release.
Werkitems en doorvoeringen Koppel werkitems zodat ze worden weergegeven in de releasedetails. Commits worden weergegeven wanneer je Git of TFVC gebruikt.
Artefact downloaden Pijplijnartefacten worden standaard gedownload naar de agent waarop de pijplijn wordt uitgevoerd. U kunt ook een stap in uw proces configureren om het downloaden van het artefact indien nodig over te slaan.
Implementatiefasen De samenvatting van de proceslijn bevat alle implementatiefasen waarin het artefakt is uitgerold.

Notitie

Als u uw pijplijnartefact in een klassieke pijplijn wilt publiceren, moet u een PublishPipelineArtifact-taak toevoegen aan uw pijplijn. In YAML-pijplijnen wordt een drop-artefact impliciet gepubliceerd.

Bereik voor taakautorisatie beperken

Releases worden standaard uitgevoerd met een autorisatiebereik op organisatieniveau, zodat ze toegang hebben tot resources in alle projecten in de organisatie. Dit is handig bij het koppelen van pijplijnartefacten uit andere projecten. Als u de toegang tot artefacten van een project wilt beperken, kunt u in de projectinstellingen Het bereik voor taakautorisatie beperken tot het huidige project voor releasepijplijnen inschakelen.

Het bereik voor taakautorisatie instellen voor de organisatie:

  1. Meld u aan bij uw Azure DevOps-organisatie.

  2. Selecteer Organisatie-instellingen linksonder.

  3. Selecteer Pijplijnen> *Instellingen.

  4. Zet de schakelaar Werkautorisatie beperken tot het huidige project voor releasepijplijnen aan om het bereik te beperken tot het huidige project. Dit wordt aanbevolen om de beveiliging te verbeteren.

    Een schermopname van het instellen van het bereik voor taakautorisatie voor de organisatie.

Het bereik voor taakautorisatie instellen voor een specifiek project:

  1. Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.

  2. Selecteer Project-instellingen linksonder.

  3. Selecteer Pijplijnen> *Instellingen.

  4. Zet de schakelaar Beperk de reikwijdte van taakautorisatie tot het huidige project voor releasepijplijnen aan om de reikwijdte tot het huidige project te beperken. Deze instelling wordt aanbevolen voor het verbeteren van de beveiliging van uw pijplijnen.

    Een schermopname van het instellen van het bereik voor taakautorisatie voor een project.

Notitie

Als het bereik is ingesteld op organisatieniveau, kan het niet afzonderlijk in elk project worden gewijzigd.

Notitie

Releases worden standaard uitgevoerd met een autorisatiebereik op verzamelingsniveau, zodat ze toegang hebben tot resources in alle projecten in de verzameling.

Azure-opslagplaatsen, GitHub en TFVC

Er zijn scenario's waarin u artefacten rechtstreeks vanuit verschillende broncontrolesystemen wilt benutten zonder ze door een build-pijplijn te laten gaan. Voorbeeld:

  • Het ontwikkelen van een PHP- of JavaScript-toepassing waarvoor geen expliciete build-pijplijn is vereist.

  • Configuraties beheren voor verschillende fasen in verschillende opslagplaatsen voor versiebeheer en deze configuratiebestanden rechtstreeks gebruiken als onderdeel van de implementatiepijplijn.

  • Infrastructuur en configuratie beheren als code in een opslagplaats voor versiebeheer.

Met Azure Pipelines kunt u meerdere artefactbronnen configureren in één release-pijplijn. Hiermee kunt u een build-pijplijn koppelen die binaire toepassingsbestanden produceert en een opslagplaats voor versiebeheer waarin configuratiebestanden worden opgeslagen, waarbij beide sets artefacten samen worden gebruikt tijdens de implementatie.

Azure Pipelines ondersteunt Azure-opslagplaatsen, Team Foundation Version Control (TFVC) en GitHub-opslagplaatsen. U kunt een release-pijplijn koppelen aan elke Git- of TFVC-opslagplaats in uw projectverzameling, mits u leestoegang hebt. Er is geen extra installatie vereist bij het implementeren van artefacten voor versiebeheer binnen dezelfde verzameling.

Wanneer u een GitHub-opslagplaats koppelt en een vertakking selecteert, kunt u de standaardeigenschappen van de artefacttypen bewerken nadat u het artefact hebt opgeslagen. Dit is handig als de stabiele versiebranch verandert, zodat continue leveringsreleases de juiste vertakking gebruiken voor nieuwere artefactversies. U kunt ook details van het uitchecken opgeven, zoals submodules, bijgehouden Git-LFS-bestanden en ondiepe ophaaldiepte.

Wanneer u een TFVC-vertakking koppelt, kunt u de wijzigingenset opgeven die moet worden geïmplementeerd tijdens het maken van de release.

De volgende functies zijn beschikbaar bij het gebruik van Azure-opslagplaatsen, Git en TFVC als artefactbron:

Kenmerk Beschrijving
Releases met automatische trigger Nieuwe releases kunnen automatisch worden gemaakt wanneer een nieuw artefact beschikbaar is (inclusief XAML-builds). Zie releasetriggers voor meer informatie.
Artefactvariabelen Een aantal artefactvariabelen wordt ondersteund voor artefacten waarnaar wordt verwezen in een klassieke release.
Werkitems en doorvoeringen Koppel werk-items om ze in de releasedetails weer te geven. Commits worden weergegeven wanneer u Git of TFVC gebruikt.
Artefact downloaden Pijplijnartefacten worden standaard gedownload naar de agent waarop de pijplijn wordt uitgevoerd. U kunt ook een stap in uw fase configureren om zo nodig het downloaden van het artefact over te slaan.

Notitie

Releases worden standaard uitgevoerd met een autorisatieniveau op organisatieniveau, waardoor ze toegang hebben tot resources in alle projecten binnen de organisatie. Dit is handig bij het koppelen van pijplijnartefacten uit andere projecten. Als u de toegang tot artefacten van een project wilt beperken, schakelt u in de projectinstellingen de optie Beperk de scope van geautomatiseerde goedkeuringen tot het huidige project voor vrijgavepijplijnen in.

Notitie

Releases worden standaard uitgevoerd met het autorisatiebereik op verzamelingsniveau, waardoor ze toegang hebben tot resources in alle projecten in de verzameling. Dit is handig bij het koppelen van pijplijnartefacten uit andere projecten. Om de toegang tot de artefacten van een project te beperken, schakelt u in de projectinstellingen de optie Beperk het taakautorisatiebereik tot het huidige project voor releasepijplijnen in.

Azure Artifacts

Hieronder vindt u enkele scenario's waarin u Azure Artifacts kunt gebruiken als artefactbron:

  • Uw applicatie-binary wordt gepubliceerd op Azure Artifacts en u wilt een pakket in een release-pijplijn gebruiken.

  • U hebt extra pakketten nodig die zijn opgeslagen in Azure Artifacts als onderdeel van uw implementatiewerkstroom.

Wanneer u Azure Artifacts in uw release-pijplijn gebruikt, moet u de feed, het pakket en de standaardversie voor uw pakket selecteren. U kunt ervoor kiezen om de nieuwste versie van het pakket op te halen, een specifieke versie te gebruiken of op te geven op het moment dat de release wordt gemaakt. Tijdens de implementatie wordt het pakket gedownload naar de agent waarop uw pijplijn wordt uitgevoerd.

De volgende functies zijn beschikbaar bij het gebruik van Azure Artifacts als artefactbron:

Kenmerk Beschrijving
Automatisch geactiveerde releases Nieuwe releases kunnen automatisch worden gemaakt wanneer een nieuw artefact beschikbaar is (inclusief XAML-builds). Zie releasetriggers voor meer informatie.
Artifaktvariabelen Een aantal artefactvariabelen wordt ondersteund voor artefacten waarnaar wordt verwezen in een klassieke release.
Werkitems en doorvoeringen Koppel werkitems zodat ze worden weergegeven in de releasedetails. Commits worden weergegeven wanneer u Git of TFVC gebruikt.
Artefact downloaden Pijplijnartefacten worden standaard gedownload naar de agent waarop de pijplijn wordt uitgevoerd. U kunt ook een stap in uw fase configureren om het downloaden van het artefact zo nodig over te slaan.

Maven-momentopnamen verwerken

Wanneer u Maven-momentopnamen gebruikt, kunnen meerdere versies tegelijk worden gedownload (bijvoorbeeld myApplication-2.1.0.BUILD-20190920.220048-3.jar, myApplication-2.1.0.BUILD-20190820.221046-2.jarmyApplication-2.1.0.BUILD-20190820.220331-1.jar). Mogelijk moet u de oude versies verwijderen en alleen het meest recente artefact bewaren vóór de implementatie.

Voer de volgende opdracht uit in een PowerShell-prompt om alle kopieën te verwijderen, behalve de kopie met de hoogste lexicografische waarde:

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

Notitie

U kunt maximaal 30 Maven-momentopnamen opslaan in uw feed. Zodra deze limiet is bereikt, worden in Azure Artifacts automatisch oudere momentopnamen verwijderd om alleen de meest recente 25 te behouden.

Azure Container Repository en Docker Hub

Bij het implementeren van gecontaineriseerde apps wordt de containerafbeelding eerst naar een containerregister gepusht. Vervolgens kunt u uw container-image implementeren in Azure Web App for Containers of een Docker-/Kubernetes-cluster. Hiervoor moet u eerst een serviceverbinding maken om te verifiëren met Azure of Docker Hub. Zie de verbinding met de Docker Registry-service voor meer informatie.

De volgende functies zijn beschikbaar wanneer u Azure Container Repository of Docker Hub als artefactbron gebruikt:

Kenmerk Beschrijving
Releases met automatische trigger Nieuwe releases kunnen automatisch worden gemaakt wanneer een nieuw artefact beschikbaar is (inclusief XAML-builds). Zie releasetriggers voor meer informatie.
Artefactvariabelen Een aantal artefactvariabelen wordt ondersteund voor artefacten waarnaar wordt verwezen in een klassieke release.
Werkitems en doorvoeringen Verbind werkitems om ze in de releasedetails weer te geven. Commits zullen worden weergegeven wanneer u Git of TFVC gebruikt.
Artefact downloaden Pijplijnartefacten worden standaard gedownload naar de agent waarop de pijplijn wordt uitgevoerd. U kunt ook een stap in uw fase configureren om indien nodig het downloaden van het artifact over te slaan.

Jenkins

Als u Jenkins-artefacten wilt gebruiken, moet u een serviceverbinding maken om te verifiëren met uw Jenkins-server. Zie de Jenkins-serviceverbinding voor meer informatie. Daarnaast moet uw Jenkins-project worden geconfigureerd met een actie na het bouwen om uw artefacten te publiceren.

Artefacten die door Jenkins-builds worden gegenereerd, worden doorgaans doorgegeven aan opslagopslagplaatsen voor archivering en delen. Azure Blob Storage is een dergelijke opslagplaats, zodat u Jenkins-projecten kunt gebruiken die publiceren naar Azure Storage als artefactbronnen in een releasepijplijn. Azure Pipelines downloadt deze artefacten automatisch van Azure naar de agent waarop de pijplijn wordt uitgevoerd. In dit scenario is connectiviteit tussen de agent en de Jenkins-server niet vereist en kunnen door Microsoft gehoste agents worden gebruikt zonder de Jenkins-server beschikbaar te maken op internet.

De volgende functies zijn beschikbaar wanneer u Jenkins gebruikt als artefactbron:

Eigenschap Beschrijving
Releases met automatische trigger Nieuwe releases kunnen automatisch worden gemaakt wanneer een nieuw artefact beschikbaar is (inclusief XAML-builds). Zie releasetriggers voor meer informatie.
Artefactvariabelen Een aantal artefactvariabelen wordt ondersteund voor artefacten waarnaar wordt verwezen in een klassieke release.
Werkitems en doorvoeringen Koppel werkitems zodat ze worden weergegeven in de releasedetails. Commits worden weergegeven wanneer u Git of TFVC gebruikt.
Artefact downloaden Pijplijnartefacten worden standaard gedownload naar de agent waarop de pijplijn wordt uitgevoerd. U kunt ook een stap in uw fase configureren om het artefact desgewenst niet te downloaden.

Notitie

Azure Pipelines kan uw Jenkins-server mogelijk niet pingen als deze zich in een particulier bedrijfsnetwerk bevindt. In dergelijke gevallen kunt u Azure Pipelines integreren met Jenkins door een on-premises agent in te stellen die toegang heeft tot de Jenkins-server. Hoewel u de namen van uw Jenkins-projecten mogelijk niet ziet wanneer u een koppeling maakt naar een pijplijn, kunt u de projectnaam handmatig invoeren in het url-tekstveld.

Alias voor artefactbron

Om ervoor te zorgen dat elk artefact uniek is, wordt aan elke artefactbron die is gekoppeld aan een release-pijplijn automatisch een specifieke downloadlocatie toegewezen die bekend staat als de bronalias. Deze locatie kan worden geopend met behulp van de variabele: $(System.DefaultWorkingDirectory)\[source alias].

Als u bronaliassen gebruikt, zorgt u ervoor dat het wijzigen van de naam van een gekoppelde artefactbron geen bewerking van de taakeigenschappen vereist, omdat de downloadlocatie die in de agent is gedefinieerd, ongewijzigd blijft.

Standaard is de bronalias de naam van de artefactbron met een onderstrepingsteken (bijvoorbeeld _mslearn-tailspin-spacegame-web). De bronalias kan overeenkomen met de naam van de build-pijplijn, de taaknaam, de projectnaam of de naam van de opslagplaats, afhankelijk van het brontype van het artefact. U kunt de bronalias bewerken vanaf het tabblad Artefacten in uw release-pipeline.

Artefact downloaden

Wanneer een implementatie naar een fase is voltooid, worden versie-artefacten van elke bron gedownload naar de pijplijnagent, zodat taken in die fase toegang hebben tot deze artefacten. Deze gedownloade artefacten worden niet verwijderd wanneer een release is voltooid. Wanneer een nieuwe release wordt gestart, worden de vorige artefacten echter verwijderd en vervangen door de nieuwe artefacten.

Er wordt een unieke map gemaakt op de agent voor elke release-pijplijn wanneer een release wordt gestart en artefacten worden gedownload naar deze map:$(System.DefaultWorkingDirectory).

Azure Pipelines voert geen optimalisatie uit om te voorkomen dat de ongewijzigde artefacten opnieuw worden gedownload als dezelfde release opnieuw wordt geïmplementeerd. Omdat eerder gedownloade inhoud wordt verwijderd wanneer een nieuwe release wordt gestart, kunnen Azure Pipelines ook geen incrementele downloads naar de agent uitvoeren.

Als u het automatisch downloaden van artefacten wilt overslaan, navigeert u naar uw Releasepijplijn>Taken>Agenttaak>Artefactdownload en deselecteert u alle artefacten of specificeert u bepaalde artefacten die moeten worden overgeslagen.

Een schermopname die laat zien hoe u het automatisch downloaden van artefacten overslaat in een klassieke release-pijplijn in Azure DevOps Services.

Als u het automatisch downloaden van artefacten wilt overslaan, navigeert u naar uw releasepijplijn>taken>agenttaak>aanvullende opties, en vink het selectievakje Download van artefacten overslaan aan.

Een schermopname die laat zien hoe u het automatisch downloaden van artefacten overslaat in een klassieke release-pijplijn op Azure DevOps Server.