Delen via


Artefactbronnen 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 vervolgkeuzelijst Standaardversie 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 ondersteund door XAML-builddefinities .

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 releasetriggers voor meer informatie.
Artefactvariabelen Een aantal artefactvariabelen wordt ondersteund voor artefacten waarnaar wordt verwezen in een klassieke release.
Werkitems en doorvoeringen Koppel werkitems om ze weer te geven in de releasedetails. Doorvoeringen 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.
Implementatiefasen De samenvatting van de pijplijn bevat alle implementatiefasen waarin het artefact is geïmplementeerd.

Notitie

Als u uw pijplijnartefact in een klassieke pijplijn wilt publiceren, moet u een PublishPipelineArtifact-taak toevoegen aan uw pijplijn. In YAML-pijplijnen wordt impliciet een drop-artefact 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 het bereik voor taakautorisatie beperken tot het huidige project voor releasepijplijnen in de projectinstellingen 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. Schakel het bereik taakautorisatie beperken in op het huidige project voor releasepijplijnen 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. Schakel het bereik taakautorisatie beperken in op het huidige project voor releasepijplijnen om het bereik te beperken tot het huidige project. 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 bronbesturingselementen wilt gebruiken zonder ze door te geven via een build-pijplijn. 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:

Functie 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 om ze weer te geven in de releasedetails. Doorvoeringen 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.

Notitie

Releases worden standaard uitgevoerd met het 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, schakelt u het bereik voor taakautorisatie beperken tot het huidige project voor releasepijplijnen in de projectinstellingen.

Notitie

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

Azure Artifacts

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

  • Uw binaire toepassing wordt gepubliceerd naar Azure Artifacts en u wilt het 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:

Functie 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 om ze weer te geven in de releasedetails. Doorvoeringen 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.220331-1.jarmyApplication-2.1.0.BUILD-20190820.221046-2.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 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. 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:

Functie 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 om ze weer te geven in de releasedetails. Doorvoeringen 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.

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:

Functie 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 om ze weer te geven in de releasedetails. Doorvoeringen 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.

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 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.m het tabblad Artefacten van uw release-pijplijn.

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, gaat u naar de taak>Artefact voor releasepijplijntaken>>om alle artefacten te downloaden en uit te schakelen of geeft u bepaalde artefacten op 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, gaat u naar de taak>Agent voor releasepijplijntaken>>aanvullende opties en schakelt u het selectievakje Downloaden van artefacten overslaan in.

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