Ondersteuning voor sjabloonexpressies in opslagplaats- en containerresourcedefinities
Met deze update hebben we ondersteuning toegevoegd voor sjabloonexpressies in opslagplaats- en containerresourcedefinities. U kunt nu sjabloonexpressies gebruiken bij het definiëren van de ref
eigenschap van een repository
resource in een YAML-pijplijn om de vertakking van een opslagplaatsresource te kiezen. Daarnaast hebben we ondersteuning toegevoegd voor sjabloonexpressies bij het definiëren van de endpoint
eigenschappen , volumes
, ports
en options
van een container
resource in een YAML-pijplijn.
Bekijk de releaseopmerkingen voor meer informatie.
Azure Boards
- Koppelingstypen voor werkitems bewerken
- Een tijdelijk REST-eindpunt voor query's maken
- Api voor batch verwijderen (beperkte preview)
- macro @CurrentIteration in Leveringsplannen
Azure Pipelines
- Sjabloonexpressies in resourcedefinitie van opslagplaats
- Sjabloonexpressies in containerresourcedefinitie
- Controlegebeurtenissen voor wijzigingen in goedkeuringen
- Taakbibliotheek maakt hostingmodel voor agent beschikbaar
Azure Boards
Koppelingstypen voor werkitems bewerken
Voorheen moest het wijzigen van een koppeling naar een werkitem ten minste drie stappen voltooien. Als u bijvoorbeeld een bovenliggende koppeling wilt wijzigen in een gerelateerde koppeling, moet u de werkitem-id kopiëren, de bovenliggende koppeling verwijderen, een nieuwe bestaande koppeling van het type gerelateerd toevoegen en ten slotte de gekopieerde id plakken en opslaan. Het is een omslachtig proces.
We hebben het probleem opgelost door u toe te staan het koppelingstype rechtstreeks te bewerken en te wijzigen. U kunt het koppelingstype snel wijzigen in slechts één stap.
Notitie
Deze functie is alleen beschikbaar in de preview-versie van New Boards Hubs.
Een tijdelijk REST-eindpunt voor query's maken
We hebben verschillende exemplaren gezien van extensieauteurs die proberen niet-opgeslagen query's uit te voeren door de WIQL-instructie (Work Item Query Language) door te geven via de querystring. Dit werkt prima, tenzij u een grote WIQL-instructie hebt die de browserlimieten voor de lengte van de querytekenreeks bereikt. Om dit op te lossen, hebben we een nieuw REST-eindpunt gemaakt waarmee auteurs van hulpprogramma's een tijdelijke query kunnen genereren. Als u de id uit het antwoord gebruikt om door te geven via querystring, wordt dit probleem opgelost.
Meer informatie op de documentatiepagina voor tijdelijke query's voor DE REST API.
Api voor batch verwijderen (beperkte preview)
Op dit moment kunt u werkitems alleen verwijderen uit de Prullenbak door deze REST API te gebruiken om een voor een te verwijderen. Dit kan een traag proces zijn en is onderhevig aan snelheidsbeperking bij het uitvoeren van een soort massa-opschoonbewerking. Als reactie hebben we een nieuw REST API-eindpunt toegevoegd om werkitems in batch te verwijderen en/of te vernietigen.
Als u wilt deelnemen aan een persoonlijke preview van dit nieuwe eindpunt, kunt u ons rechtstreeks een e-mail sturen.
@CurrentIteration macro in Bezorgingsplannen
Met deze update hebben we ondersteuning toegevoegd voor de @CurrentIteration macro voor stijlen in Bezorgingsplannen. Met deze macro kunt u de huidige iteratie ophalen uit de teamcontext van elke rij in uw plan.
Azure Pipelines
Sjabloonexpressies in resourcedefinitie van opslagplaats
We hebben ondersteuning toegevoegd voor sjabloonexpressies bij het definiëren van de ref
eigenschap van een repository
resource in een YAML-pijplijn. Dit was een veelgevraagde functie door onze ontwikkelaarscommunity.
Er zijn use-cases waarin u wilt dat uw pijplijn verschillende vertakkingen van dezelfde opslagplaatsresource uitcheckt.
Stel dat u een pijplijn hebt die een eigen opslagplaats bouwt en hiervoor een bibliotheek moet uitchecken vanuit een resourceopslagplaats. Stel dat u wilt dat uw pijplijn dezelfde bibliotheekbranch uitcheckt die zelf wordt gebruikt. Als uw pijplijn bijvoorbeeld wordt uitgevoerd op de main
vertakking, moet deze de main
vertakking van de bibliotheekopslagplaats uitchecken. Als de pijplijnen op de dev
vertakking worden uitgevoerd, moet deze de dev
bibliotheekbranch uitchecken.
Tot op heden moest u expliciet de vertakking opgeven om uit te checken en de pijplijncode wijzigen wanneer de vertakking werd gewijzigd.
U kunt nu sjabloonexpressies gebruiken om de vertakking van een opslagplaatsresource te kiezen. Zie het volgende voorbeeld van YAML-code die moet worden gebruikt voor de niet-hoofdvertakkingen van uw pijplijn:
resources:
repositories:
- repository: library
type: git
name: FabrikamLibrary
ref: ${{ variables['Build.SourceBranch'] }}
steps:
- checkout: library
- script: echo ./build.sh
- script: echo ./test.sh
Wanneer u de pijplijn uitvoert, kunt u de vertakking opgeven die moet worden uitgecheckt voor de library
opslagplaats.
De versie van een sjabloon opgeven die tijdens de buildwachtrij moet worden uitgebreid
Sjablonen zijn een uitstekende manier om codeduplicatie te verminderen ende beveiliging van uw pijplijnen te verbeteren.
Een populair gebruiksvoorbeeld is om sjablonen in hun eigen opslagplaats te onderbrengen. Dit vermindert de koppeling tussen een sjabloon en de pijplijnen waarmee deze wordt uitgebreid en maakt het eenvoudiger om de sjabloon en de pijplijnen onafhankelijk van elkaar te ontwikkelen.
Bekijk het volgende voorbeeld, waarin een sjabloon wordt gebruikt om de uitvoering van een lijst met stappen te controleren. De sjablooncode bevindt zich in de Templates
opslagplaats.
# template.yml in repository Templates
parameters:
- name: steps
type: stepList
default: []
jobs:
- job:
steps:
- script: ./startMonitoring.sh
- ${{ parameters.steps }}
- script: ./stopMonitoring.sh
Stel dat u een YAML-pijplijn hebt die deze sjabloon uitbreidt, die zich in de opslagplaats FabrikamFiber
bevindt. Tot op heden was het niet mogelijk om de eigenschap van de ref
templates
opslagplaatsresource dynamisch op te geven wanneer de opslagplaats als sjabloonbron werd gebruikt. Dit betekende dat u de code van de pijplijn moest wijzigen als u wilt dat uw pijplijn: een sjabloon uitbreiden vanaf een andere vertakking een sjabloon uitbreiden met dezelfde vertakkingsnaam als uw pijplijn, ongeacht op welke vertakking u de pijplijn hebt uitgevoerd
Met de introductie van sjabloonexpressies in de resourcedefinitie van de opslagplaats kunt u uw pijplijn als volgt schrijven:
resources:
repositories:
- repository: templates
type: git
name: Templates
ref: ${{ variables['Build.SourceBranch'] }}
extends:
template: template.yml@templates
parameters:
steps:
- script: echo ./build.sh
- script: echo ./test.sh
Hierdoor breidt uw pijplijn de sjabloon uit in dezelfde vertakking als de vertakking waarop de pijplijn wordt uitgevoerd, zodat u ervoor kunt zorgen dat de vertakkingen van uw pijplijn en sjabloon altijd overeenkomen. Dat wil gezegd, als u uw pijplijn uitvoert op een vertakking dev
, wordt de sjabloon die is opgegeven door het template.yml
bestand in de dev
vertakking van de templates
opslagplaats uitgebreid.
U kunt tijdens de buildwachtrij ook kiezen welke vertakking van de sjabloonopslagplaats u wilt gebruiken door de volgende YAML-code te schrijven.
parameters:
- name: branch
default: main
resources:
repositories:
- repository: templates
type: git
name: Templates
ref: ${{ parameters.branch }}
extends:
template: template.yml@templates
parameters:
steps:
- script: echo ./build.sh
- script: echo ./test.sh
U kunt nu met uw pijplijn op vertakking main
een sjabloon uit een vertakking dev
in één uitvoering laten uitbreiden en een sjabloon uitbreiden vanuit een vertakking main
in een andere uitvoering, zonder de code van uw pijplijn te wijzigen.
Wanneer u een sjabloonexpressie opgeeft voor de ref
eigenschap van een opslagplaatsresource, kunt u vooraf gedefinieerde variabelen en van het systeem gebruiken parameters
, maar u kunt geen yaml- of door de gebruikersinterface gedefinieerde variabelen voor pijplijnen gebruiken.
Sjabloonexpressies in containerresourcedefinitie
We hebben ondersteuning toegevoegd voor sjabloonexpressies bij het definiëren van de endpoint
eigenschappen , volumes
, ports
en options
van een container
resource in een YAML-pijplijn. Dit was een veelgevraagde functie door onze ontwikkelaarscommunity.
U kunt nu YAML-pijplijnen schrijven zoals hieronder.
parameters:
- name: endpointName
default: AzDOACR
type: string
resources:
containers:
- container: linux
endpoint: ${{ parameters.endpointName }}
image: fabrikamfiber.azurecr.io/ubuntu:latest
jobs:
- job:
container: linux
steps:
- task: CmdLine@2
inputs:
script: 'echo Hello world'
U kunt en variables.
gebruiken parameters.
in uw sjabloonexpressies. Voor variabelen kunt u alleen de variabelen gebruiken die zijn gedefinieerd in het YAML-bestand, maar niet de variabelen die zijn gedefinieerd in de gebruikersinterface van Pijplijnen. Als u de variabele opnieuw definieert, bijvoorbeeld met behulp van agentlogboekopdrachten, heeft dit geen effect.
Controlegebeurtenissen voor wijzigingen in goedkeuringen
Met goedkeuringen kunt u bepalen wanneer een fase moet worden uitgevoerd. Dit wordt vaak gebruikt voor het beheren van implementaties in productieomgevingen. Met controle kunt u voldoen aan de nalevingsvereisten en de beveiliging van uw Azure DevOps-organisatie bewaken.
Wanneer een gebruiker wordt gevraagd een pijplijn goed te keuren voor implementatie in een bepaalde fase, kan die gebruiker ervoor kiezen om de goedkeuring opnieuw aan iemand anders toe te geven.
Tot nu toe werden dergelijke acties niet vastgelegd in de auditlogboeken. Dit probleem is nu opgelost.
De auditlogboeken bevatten een vermelding die er ongeveer als volgt uitziet.
[
{
"Id": "2517368925862632546;00000264-0000-8888-8000-000000000000;839ad1ba-f72b-4258-bc3f-88be7a4553b5",
"CorrelationId": "8392d1ba-f76b-4258-bc3f-88be7a4553b5",
"ActivityId": "a298a06c-965f-4e60-9643-2593f2066e37",
"ActorCUID": "fe950802-bf07-755b-826d-e8dcc066252c",
"ActorUserId": "fe950802-bf07-755b-826d-e8dcc066252c",
"ActorUPN": "silviu@fabrikam.app",
"AuthenticationMechanism": "AAD_Cookie",
"Timestamp": "2022-10-10T11:26:53.7367453Z",
"ScopeType": "Organization",
"ScopeDisplayName": "Fabrikam (Organization)",
"ScopeId": "547a7316-cdf4-40d2-af16-3215f97d053e",
"ProjectId": "4bf16944-3595-421f-9947-79d9eb190284",
"ProjectName": "FabrikamFiber",
"IpAddress": "127.0.0.1",
"UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.37",
"ActionId": "ApproverReassigned",
"Data": {
"ApprovalId": "dae6e7c9-2a10-4cd8-b63a-579a6e7ba78d",
"OldApproverUserId": "692b6e2a-dd61-4872-866a-85498da390fc",
"OldApproverDisplayName": "[FabrikamFiber]\\Build Administrators",
"NewApproverUserId": "fe95080b-bf07-655b-226d-e8dcc066252c",
"NewApproverDisplayName": "Jack Fabrikam",
"Comment": "All admins are OOO"
},
"Details": "Reassigned approver of Approval dae6e7c9-9a10-4cd8-b63a-579a6e7ba78d in Project \"FabrikamFiber\" from \"[FabrikamFiber]\\Build Administrators\" to \"Jack Fabrikam\" with comment \"All admins are OOO\".",
"Area": "Checks",
"Category": "Modify",
"CategoryDisplayName": "Modify",
"ActorDisplayName": "Silviu"
}
]
Bovendien wordt deze weergegeven in de auditgebruikersinterface.
Taakbibliotheek maakt hostingmodel voor agent beschikbaar
Taakauteurs die willen bepalen of een agent wordt uitgevoerd in door Microsoft gehoste pools of niet, kunnen nu de functie getAgentMode()
Taakbibliotheek gebruiken om het hostingmodel te bepalen. Dit is handig in scenario's waarin een taak gedrag wil beïnvloeden op basis van het wel of niet hebben van toegang tot het netwerk van een klant. Een taak kan proberen een Azure-service te bereiken via een privé-eindpunt als deze wordt uitgevoerd vanuit een zelf-hostende agent of schaalsetagents die zich in het netwerk van een klant bevinden.
Zie taakreferentie.
Volgende stappen
Notitie
Deze functies worden in de komende twee tot drie weken uitgerold.
Ga naar Azure DevOps en neem een kijkje.
Feedback geven
We horen graag wat u vindt van deze functies. Gebruik het menu Help om een probleem te melden of een suggestie te geven.
U kunt ook advies krijgen en uw vragen worden beantwoord door de community op Stack Overflow.
Met vriendelijke groet,
Vijay Machiraju
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor