Release-pijplijnen en artefactbronnen

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

Met Azure Pipelines kunt u uw artefacten implementeren vanuit een breed scala aan artefactbronnen en uw werkstroom integreren met verschillende soorten artefactopslagplaatsen. Releases kunnen worden gekoppeld aan meerdere artefactbronnen, waarbij één als primaire bron wordt aangewezen.

Artefactbronnen

Azure Pipelines ondersteunt een breed scala aan opslagplaatsen, hulpprogramma's voor broncodebeheer en continue integratiesystemen.

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.

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

Als u meer dan één artefact koppelt, kunt u opgeven welke de primaire bron is (standaard). De primaire artefactbron wordt gebruikt om een aantal vooraf gedefinieerde variabelen in te stellen. Het kan ook worden gebruikt in naamgevingsreleases.

Schermopname die laat zien hoe u een primaire bronartefact instelt.

Notitie

De Default version vervolgkeuzelijstitems zijn afhankelijk van het brontype van de gekoppelde builddefinitie.

  • De volgende opties worden ondersteund door alle typen opslagplaatsen: Specify at the time of release creation, Specific versionen Latest.

  • Latest from a specific branch with tags en Latest from the build pipeline default branch with tags opties worden ondersteund door de volgende typen opslagplaatsen: TfsGit, GitHub, Bitbucketen GitHubEnterprise.

  • Latest from the build pipeline default branch with tags wordt niet ondersteund door XAML builddefinities.

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

Artefactbronnen - Azure Pipelines

U kunt een release-pijplijn koppelen aan elke Build van Azure Pipelines. U kunt ook meerdere build-pijplijnen koppelen en hun standaardwaarden opgeven en implementatietriggers instellen op meerdere buildbronnen. Wanneer een van de builds is voltooid, wordt het maken van een release geactiveerd.

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 build-artefact beschikbaar is (inclusief XAML-builds). Zie releasetriggers voor meer informatie.
Artefactvariabelen Een aantal artefactvariabelen wordt ondersteund voor Azure Pipelines-bronnen.
Werkitems en doorvoeringen U kunt azure Pipelines-werkitems koppelen en deze worden weergegeven in de details van de releases. Doorvoeringen worden weergegeven wanneer u Git- of TFVC-bronbesturingselementen gebruikt.
Artefact downloaden Buildartefacten worden standaard gedownload naar de agent waarop de pijplijn wordt uitgevoerd. U kunt ook een stap in uw fase configureren om het downloaden van uw artefact over te slaan.
Implementatiefasen De samenvatting van de build bevat alle implementatiefasen waarin het artefact is geïmplementeerd.

Notitie

U moet een taak Artefacten publiceren opnemen in uw build-pijplijn. Voor YAML-buildpijplijnen wordt impliciet een artefact met de naamuitval gepubliceerd.

Releases worden standaard uitgevoerd met een autorisatiebereik op verzamelingsniveau. Dit betekent dat releases toegang hebben tot resources in alle projecten in de organisatie (of verzameling voor Azure DevOps Server). Dit is handig bij het koppelen van buildartefacten uit andere projecten. U kunt het bereik voor taakautorisatie beperken tot het huidige project voor releasepijplijnen in projectinstellingen inschakelen om de toegang tot het artefact van een project te beperken.

Het bereik voor taakautorisatie instellen voor de organisatie:

  • Navigeer naar de instellingen van uw organisatie.
  • Selecteer Instellingen onder Pijplijnen.
  • Schakel het taakautorisatiebereik beperken in op het huidige project voor releasepijplijnen om het bereik te beperken tot het huidige project. Dit is de aanbevolen instelling voor een goede beveiligingsmaatregelen.

Het bereik voor taakautorisatie instellen voor een specifiek project:

  • Navigeer naar de projectinstellingen.
  • Selecteer Instellingen onder Pijplijnen.
  • Schakel het taakautorisatiebereik beperken in op het huidige project voor releasepijplijnen om het bereik te beperken tot het huidige project. Dit is de aanbevolen instelling, omdat deze de beveiliging voor uw pijplijnen verbetert.

Notitie

Als het bereik is ingesteld op projectniveau op organisatieniveau, kunt u het bereik in elk project niet wijzigen.

Alle taken in een releaseuitvoering waarbij het taakautorisatiebereik is ingesteld op verzameling. Met andere woorden, deze taken hebben toegang tot resources in alle projecten in uw projectverzameling.

Artefactbronnen - versiebeheer

Er zijn enkele scenario's waarin u artefacten van verschillende bronbesturingselementen rechtstreeks wilt gebruiken zonder ze door te geven via een build-pijplijn. Voorbeeld:

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

  • U beheert configuraties voor verschillende fasen in verschillende opslagplaatsen voor versiebeheer en u wilt deze configuratiebestanden rechtstreeks vanuit versiebeheer gebruiken als onderdeel van de implementatiepijplijn.

  • U beheert uw infrastructuur en configuratie als code en u wilt deze bestanden beheren in een opslagplaats voor versiebeheer.

Omdat u meerdere artefactbronnen in één release-pijplijn kunt configureren, kunt u zowel een build-pijplijn koppelen die de binaire bestanden van uw toepassing produceert als een opslagplaats voor versiebeheer waarmee de configuratiebestanden in dezelfde pijplijn worden opgeslagen en de twee sets artefacten tegelijk worden gebruikt tijdens de implementatie.

Azure Pipelines ondersteunt TFVC-opslagplaatsen (Team Foundation Version Control), Git-opslagplaatsen en GitHub-opslagplaatsen.

U kunt een release-pijplijn koppelen aan een van de Git- of TFVC-opslagplaatsen in elk project in uw verzameling (u hebt leestoegang tot deze opslagplaatsen nodig). 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 het artefact is opgeslagen. Dit is met name handig in scenario's waarin de vertakking voor de stabiele versie van het artefact verandert en doorlopende leveringsreleases deze vertakking moeten gebruiken om nieuwere versies van het artefact te verkrijgen. U kunt ook details van het afrekenen opgeven, zoals of submodules voor uitchecken en LFS-bijgehouden bestanden en de ondiepe ophaaldiepte.

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

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

Functie Beschrijving
Releases met automatische trigger Nieuwe releases kunnen automatisch worden gemaakt wanneer een nieuw build-artefact beschikbaar is (inclusief XAML-builds). Zie releasetriggers voor meer informatie.
Artefactvariabelen Een aantal artefactvariabelen wordt ondersteund voor Azure Pipelines-bronnen.
Werkitems en doorvoeringen U kunt azure Pipelines-werkitems koppelen, omdat deze worden weergegeven in de details van de releases. Doorvoeringen worden weergegeven wanneer u Git- of TFVC-bronbesturingselementen gebruikt.
Artefact downloaden Buildartefacten worden standaard gedownload naar de agent waarop de pijplijn wordt uitgevoerd. U kunt ook een stap in uw fase configureren om het downloaden van uw artefact over te slaan.

Releases worden standaard uitgevoerd met een autorisatiebereik op verzamelingsniveau. Dit betekent dat releases toegang hebben tot resources in alle projecten in de organisatie (of verzameling voor Azure DevOps Server). Dit is handig bij het koppelen van buildartefacten uit andere projecten. U kunt het bereik voor taakautorisatie beperken tot het huidige project voor releasepijplijnen in projectinstellingen inschakelen om de toegang tot het artefact van een project te beperken.

Artefactbronnen - Jenkins

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

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

Functie Beschrijving
Releases met automatische trigger Nieuwe releases kunnen automatisch worden gemaakt wanneer een nieuw build-artefact beschikbaar is (inclusief XAML-builds). Zie releasetriggers voor meer informatie.
Artefactvariabelen Een aantal artefactvariabelen wordt ondersteund voor Azure Pipelines-bronnen.
Werkitems en doorvoeringen U kunt azure Pipelines-werkitems koppelen en deze worden weergegeven in de details van de releases. Doorvoeringen worden weergegeven wanneer u Git- of TFVC-bronbesturingselementen gebruikt.
Artefact downloaden Buildartefacten worden standaard gedownload naar de agent waarop de pijplijn wordt uitgevoerd. U kunt ook een stap in uw fase configureren om het downloaden van uw artefact over te slaan.

Artefacten die door Jenkins-builds worden gegenereerd, worden doorgaans doorgegeven aan opslagopslagplaatsen voor archivering en delen. Azure Blob Storage is een van de ondersteunde opslagplaatsen, zodat u Jenkins-projecten kunt gebruiken die publiceren naar Azure Storage als artefactbronnen in een releasepijplijn. Azure Pipelines downloaden de 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. Door Microsoft gehoste agents kunnen worden gebruikt zonder de server bloot te stellen aan internet.

Notitie

Azure Pipelines kan mogelijk geen contact opnemen met uw Jenkins-server als deze zich bijvoorbeeld binnen uw bedrijfsnetwerk bevindt. Als dit het geval is, kunt u Azure Pipelines integreren met Jenkins door een on-premises agent in te stellen die toegang heeft tot de Jenkins-server. U kunt de naam van uw Jenkins-projecten niet zien wanneer u een koppeling naar een build maakt, maar u kunt de naam invoeren in het URL-tekstveld.

Artefactbronnen - containers

Bij het implementeren van apps in containers wordt de containerinstallatiekopieën eerst naar een containerregister gepusht. Vervolgens kunt u uw containerinstallatiekopieën implementeren in Azure Web App for Containers of een Docker-/Kubernetes-cluster. U moet een serviceverbinding maken om te verifiëren met Azure. Zie Serviceverbindingen beheren voor meer informatie.

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

Functie Beschrijving
Releases met automatische trigger Nieuwe releases kunnen automatisch worden gemaakt wanneer een nieuw build-artefact beschikbaar is (inclusief XAML-builds). Zie releasetriggers voor meer informatie.
Artefactvariabelen Een aantal artefactvariabelen wordt ondersteund voor Azure Pipelines-bronnen.
Werkitems en doorvoeringen U kunt azure Pipelines-werkitems koppelen en deze worden weergegeven in de details van de releases. Doorvoeringen worden weergegeven wanneer u Git- of TFVC-bronbesturingselementen gebruikt.
Artefact downloaden Buildartefacten worden standaard gedownload naar de agent waarop de pijplijn wordt uitgevoerd. U kunt ook een stap in uw fase configureren om het downloaden van uw artefact over te slaan.

Notitie

Wanneer u meerdere artefactbronnen gebruikt, wordt het toewijzen van een artefactbron om een bepaalde fase te activeren niet ondersteund. Er wordt een release gemaakt wanneer er een push naar een van de artefactbronnen plaatsvindt. Als u dit wilt doen, raden Azure Pipelines u aan om uw release-pijplijn op te splitsen in meerdere releases.

Artefactbronnen - Azure Artifacts

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

  1. Uw binaire toepassing wordt gepubliceerd naar Azure Artifacts en u wilt het pakket in een release-pijplijn gebruiken.
  2. U hebt extra pakketten nodig die zijn opgeslagen in Azure Artifacts als onderdeel van uw implementatiewerkstroom.

Als 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 de versie te selecteren op het moment dat de release wordt gemaakt. Tijdens de implementatie wordt het pakket gedownload/geëxtraheerd naar de agent waarop uw pijplijn wordt uitgevoerd.

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

Functie Beschrijving
Releases met automatische trigger Nieuwe releases kunnen automatisch worden gemaakt wanneer een nieuw build-artefact beschikbaar is (inclusief XAML-builds). Zie releasetriggers voor meer informatie.
Artefactvariabelen Een aantal artefactvariabelen wordt ondersteund voor Azure Pipelines-bronnen.
Werkitems en doorvoeringen U kunt azure Pipelines-werkitems koppelen en deze worden weergegeven in de details van de releases. Doorvoeringen worden weergegeven wanneer u Git- of TFVC-bronbesturingselementen gebruikt.
Artefact downloaden Buildartefacten worden standaard gedownload naar de agent waarop de pijplijn wordt uitgevoerd. U kunt ook een stap in uw fase configureren om het downloaden van uw artefact 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.220331-1.jarmyApplication-2.1.0.BUILD-20190820.221046-2.jar). Mogelijk moet u de oude versie verwijderen en alleen het meest recente artefact bewaren vóór de implementatie. Voer de volgende PowerShell-opdracht uit in een opdrachtprompt met verhoogde bevoegdheid om alle kopieën te verwijderen, behalve de opdracht 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 u de maximumlimiet hebt bereikt, worden momentopnamen automatisch verwijderd tot 25. Dit proces wordt automatisch geactiveerd telkens wanneer 30+ momentopnamen naar uw feed worden gepubliceerd.

Artefactbronnen - TFS-server

U kunt Azure Pipelines gebruiken om artefacten van TFS-servers te implementeren zonder dat u uw server detecteerbaar hoeft te maken op internet door een on-premises automatiseringsagent in te stellen. Artefacten worden gedownload naar de on-premises agent en vervolgens geïmplementeerd op de opgegeven doelservers zonder uw bedrijfsnetwerk te verlaten. Dit is ideaal voor klanten om hun investeringen in hun on-premises infrastructuur te benutten en tegelijkertijd te profiteren van Azure Pipelines-releases.

Als u TFS-servers als artefactbron wilt gebruiken, moet u de TFS-artefacten voor de Azure Pipelines-extensie installeren vanuit Visual Studio Marketplace en vervolgens een serviceverbinding maken om te verifiëren met Azure Pipelines. Nadat u bent geverifieerd, kunt u vervolgens een TFS-build-pijplijn koppelen aan uw release-pijplijn en externe TFS-build kiezen in het vervolgkeuzemenu Type.

De volgende functies zijn beschikbaar wanneer u TFS-servers als artefactbron gebruikt:

Functie Beschrijving
Releases met automatische trigger Nieuwe releases kunnen automatisch worden gemaakt wanneer een nieuw build-artefact beschikbaar is (inclusief XAML-builds). Zie releasetriggers voor meer informatie.
Artefactvariabelen Een aantal artefactvariabelen wordt ondersteund voor Azure Pipelines-bronnen.
Werkitems en doorvoeringen U kunt azure Pipelines-werkitems koppelen en deze worden weergegeven in de details van de releases. Doorvoeringen worden weergegeven wanneer u Git- of TFVC-bronbesturingselementen gebruikt.
Artefact downloaden Buildartefacten worden standaard gedownload naar de agent waarop de pijplijn wordt uitgevoerd. U kunt ook een stap in uw fase configureren om het downloaden van uw artefact over te slaan.

Azure Pipelines kan mogelijk geen contact opnemen met een on-premises TFS-server als deze zich binnen uw bedrijfsnetwerk bevindt. In dat geval kunt u Azure Pipelines integreren met TFS door een on-premises agent in te stellen die toegang heeft tot de TFS-server. U kunt de naam van uw TFS-projecten of build-pijplijnen niet zien wanneer u een koppeling maakt naar een build, maar u kunt deze variabelen wel opnemen in de URL-tekstvelden. Bovendien kan Azure Pipelines tijdens het maken van een release mogelijk geen query's uitvoeren op de TFS-server voor de buildnummers. Voer in plaats daarvan de build-id (niet het buildnummer) van de gewenste build in het juiste veld in of selecteer de meest recente build.

Artefactbronnen - TeamCity

Als u TeamCity als artefactbron wilt gebruiken, moet u eerst de TeamCity-artefacten voor de Azure Pipelines-extensie installeren vanuit Visual Studio Marketplace.

Zodra dit is voltooid, maakt u een serviceverbinding om te verifiëren met uw TeamCity-server. Vervolgens kunt u uw buildartefact koppelen aan een release-pijplijn. De buildconfiguratie van TeamCity moet worden ingesteld met een actie voor het publiceren van artefacten.

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

Functie Beschrijving
Releases met automatische trigger Nieuwe releases kunnen automatisch worden gemaakt wanneer een nieuw build-artefact beschikbaar is (inclusief XAML-builds). Zie releasetriggers voor meer informatie.
Artefactvariabelen Een aantal artefactvariabelen wordt ondersteund voor Azure Pipelines-bronnen.
Werkitems en doorvoeringen U kunt azure Pipelines-werkitems koppelen en deze worden weergegeven in de details van de releases. Doorvoeringen worden weergegeven wanneer u Git- of TFVC-bronbesturingselementen gebruikt.
Artefact downloaden Buildartefacten worden standaard gedownload naar de agent waarop de pijplijn wordt uitgevoerd. U kunt ook een stap in uw fase configureren om het downloaden van uw artefact over te slaan.

Azure Pipelines kan mogelijk geen contact opnemen met uw TeamCity-server als deze zich bijvoorbeeld binnen uw bedrijfsnetwerk bevindt. In dit geval kunt u Azure Pipelines integreren met TeamCity door een on-premises agent in te stellen die toegang heeft tot de TeamCity-server. U kunt de naam van uw TeamCity-projecten niet zien wanneer u een koppeling maakt naar een build, maar u kunt dit typen in het URL-tekstveld.

Alias artefactbron

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

Als u een bronalias gebruikt, zorgt u ervoor dat het wijzigen van de naam van een gekoppelde artefactbron niet nodig is om de taakeigenschappen te bewerken, omdat de downloadlocatie die in de agent is gedefinieerd, niet wordt gewijzigd.

De bronalias is standaard de naam van de artefactbron met een onderstrepingsteken. Afhankelijk van het type artefactbron is dit de naam van de build-pijplijn, taaknaam, projectnaam of de naam van de opslagplaats. U kunt de bronalias bewerken op het tabblad Artefacten van uw release-pijplijn.

Artefact downloaden

Wanneer een implementatie in een fase is voltooid, worden de versie-artefacten van elk van de bronnen gedownload naar de pijplijnagent, zodat taken die in die fase worden uitgevoerd, toegang hebben tot die artefacten. De gedownloade artefacten worden niet verwijderd wanneer een release is voltooid. Wanneer u echter de volgende release start, worden de gedownloade artefacten verwijderd en vervangen door de nieuwe set artefacten.

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

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

U kunt echter uw pijplijn zo instellen dat automatisch downloaden voor een specifieke taak of fase wordt overgeslagen als u dit wilt doen.