Ondersteuning voor sjabloonexpressies in opslagplaats- en containerresourcedefinities
Met deze update hebben we ondersteuning opgenomen 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
, volumes
en ports
options
eigenschappen 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
- Batch delete-API (private preview)
- @CurrentIteration macro in Bezorgingsplannen
Azure-pipelines
- Sjabloonexpressies in resourcedefinitie van opslagplaats
- Sjabloonexpressies in containerresourcedefinitie
- Controlegebeurtenissen voor wijzigingen in goedkeuringen
- Taakbibliotheek maakt het hostmodel van agent beschikbaar
Azure Boards
Koppelingstypen voor werkitems bewerken
Voor het wijzigen van een koppeling naar een werkitem zijn eerder ten minste drie stappen vereist. Als u bijvoorbeeld een bovenliggende koppeling wilt wijzigen in een gerelateerde koppeling, moet u de id van het werkitem 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 lastig proces.
We hebben het probleem opgelost door het koppelingstype rechtstreeks te bewerken en te wijzigen. U kunt snel het koppelingstype in slechts één stap wijzigen.
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 instanties van auteurs van extensies gezien die proberen niet-opgeslagen query's uit te voeren door de WIQL-instructie (Work Item Query Language) door te geven via de querytekenreeks. Dit werkt prima, tenzij u een grote WIQL-instructie hebt die de browserlimieten bereikt voor de lengte van de queryreeks. 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 van het antwoord gebruikt om via querytekenreeksen door te geven, wordt dit probleem opgelost.
Meer informatie vindt u op de documentatiepagina van de REST API voor tijdelijke query's.
Batch-API verwijderen (beperkte preview)
Momenteel is de enige manier om werkitems uit de Prullenbak te verwijderen deze REST API te gebruiken om één voor één te verwijderen. Dit kan een traag proces zijn en is onderhevig aan snelheidsbeperking bij het uitvoeren van elke vorm van massaopruiming. Als reactie hebben we een nieuw REST API-eindpunt toegevoegd om werkitems in batch te verwijderen en/of te vernietigen.
Als u geïnteresseerd bent in een persoonlijke preview van dit nieuwe eindpunt, stuur ons dan rechtstreeks een e-mail.
@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 zeer aangevraagde functie van onze ontwikkelaarscommunity.
Er bestaan use cases wanneer u wilt dat uw pijplijn verschillende vertakkingen van dezelfde opslagplaatsresource uitcheckt.
Stel dat u een pijplijn hebt waarmee een eigen opslagplaats wordt gebouwd. Hiervoor moet u een bibliotheek uitchecken vanuit een resourceopslagplaats. Stel dat u wilt dat uw pijplijn dezelfde bibliotheekbranch uitcheckt als die van zichzelf. 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 nu toe moest u expliciet de vertakking opgeven die moet worden uitgecheckt en de pijplijncode wijzigen wanneer de vertakking wordt gewijzigd.
U kunt nu sjabloonexpressies gebruiken om de vertakking van een opslagplaatsresource te kiezen. Zie het volgende voorbeeld van YAML-code 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.
Geef de versie van een sjabloon op die tijdens de buildwachtrij moet worden uitgebreid
Sjablonen vormen een uitstekende manier om codeduplicatie te verminderen en de beveiliging van uw pijplijnen te verbeteren.
Een populaire use case is het huis van sjablonen in hun eigen opslagplaats. Dit vermindert de koppeling tussen een sjabloon en de pijplijnen die deze uitbreiden en maakt het eenvoudiger om de sjabloon en de pijplijnen onafhankelijk te ontwikkelen.
Bekijk het volgende voorbeeld, waarin een sjabloon wordt gebruikt om de uitvoering van een lijst met stappen te bewaken. 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 bevindt FabrikamFiber
. Tot op heden was het niet mogelijk om de ref
eigenschap van de templates
opslagplaatsresource dynamisch op te geven bij het gebruik van de opslagplaats als sjabloonbron. Dit betekende dat u de code van de pijplijn moest wijzigen als u uw pijplijn wilde wijzigen: een sjabloon uit een andere vertakking uitbreiden van een sjabloon uit dezelfde vertakkingsnaam als uw pijplijn, ongeacht 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
Als u dit doet, wordt de sjabloon in dezelfde vertakking uitgebreid als de vertakking waarop de pijplijn wordt uitgevoerd, zodat u ervoor kunt zorgen dat de vertakkingen van uw pijplijn en sjabloon altijd overeenkomen. 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 ook kiezen voor het bouwen van wachtrijtijd, welke sjabloonopslagplaatsvertakking moet worden gebruikt, 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 uw pijplijn op vertakking main
uitbreiden van een sjabloon uit de ene dev
uitvoering 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 gebruiken en systeemgedefinieerde variabelen gebruiken parameters
, maar u kunt geen YAML- of Pipelines UI-gedefinieerde variabelen gebruiken.
Sjabloonexpressies in containerresourcedefinitie
We hebben ondersteuning toegevoegd voor sjabloonexpressies bij het definiëren van de endpoint
, volumes
en ports
options
eigenschappen van een container
resource in een YAML-pijplijn. Dit was een zeer aangevraagde functie van 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.
in de sjabloonexpressies gebruikenparameters.
. 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 deze geen effect.
Controlegebeurtenissen voor wijzigingen in goedkeuringen
Met goedkeuringen kunt u bepalen wanneer een fase moet worden uitgevoerd. Dit wordt vaak gebruikt om implementaties naar productieomgevingen te beheren. Met controle kunt u voldoen aan 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 toe te laten aan iemand anders.
Tot nu toe zijn 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": "aaaa0000-bb11-2222-33cc-444444dddddd",
"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"
}
]
Daarnaast wordt deze weergegeven in de auditgebruikersinterface.
Taakbibliotheek maakt het hostmodel van agent beschikbaar
Taakauteurs die willen bepalen of een agent wordt uitgevoerd in door Microsoft gehoste pools of die nu de functie getAgentMode()
Taakbibliotheek kunnen gebruiken om het hostingmodel te bepalen. Dit is handig in scenario's waarin een taak gedrag wil beïnvloeden op basis van toegang tot het netwerk van een klant of niet. Een taak kan proberen een Azure-service te bereiken via een privé-eindpunt als deze wordt uitgevoerd vanuit een zelf-hostende agent of scale-set agents die zich in het netwerk van een klant bevinden.
Raadpleeg de taakreferentie.
Volgende stappen
Notitie
Deze functies worden de komende twee tot drie weken uitgerold.
Ga naar Azure DevOps en kijk eens.
Feedback geven
We horen graag wat u van deze functies vindt. Gebruik het Help-menu om een probleem te melden of een suggestie op te geven.
U kunt ook advies krijgen en uw vragen beantwoorden door de community op Stack Overflow.
Met vriendelijke groet,
Vijay Machiraju