Stöd för malluttryck i databas- och containerresursdefinitioner
Med den här uppdateringen har vi inkluderat stöd för malluttryck i databas- och containerresursdefinitioner. Nu kan du använda malluttryck när du definierar ref
egenskapen för en repository
resurs i en YAML-pipeline för att välja grenen för en lagringsplatsresurs. Dessutom har vi lagt till stöd för malluttryck när vi definierar endpoint
egenskaperna , volumes
, ports
och options
för en container
resurs i en YAML-pipeline.
Mer information finns i viktig information.
Azure-tavlor
- Redigera länktyper för arbetsobjekt
- Skapa tillfällig fråge-REST-slutpunkt
- API för batchborttagning (privat förhandsversion)
- @CurrentIteration makro i leveransplaner
Azure-pipelines
- Malluttryck i resursdefinition för lagringsplats
- Malluttryck i containerresursdefinition
- Granska händelser för ändringar i godkännanden
- Aktivitetsbiblioteket exponerar agentens värdmodell
Azure-tavlor
Redigera länktyper för arbetsobjekt
Tidigare måste du utföra minst tre steg för att kunna ändra en länk för arbetsobjekt. Om du till exempel vill ändra en överordnad länk till en relaterad länk måste du kopiera arbetsobjektets ID, ta bort den överordnade länken, lägga till en ny befintlig länk av typen relaterad och slutligen klistra in det kopierade ID:t och spara. Det är en besvärlig process.
Vi löste problemet genom att låta dig redigera och ändra länktypen direkt. Du kan snabbt ändra länktypen i bara ett steg.
Kommentar
Den här funktionen är endast tillgänglig med förhandsversionen av New Boards Hubs.
Skapa tillfällig fråge-REST-slutpunkt
Vi har sett flera instanser av tilläggsförfattare som försöker köra osparade frågor genom att skicka WIQL-instruktionen (Work Item Query Language) via frågesträngen. Detta fungerar bra om du inte har en stor WIQL-instruktion som når webbläsarens gränser för frågesträngslängd. För att lösa detta har vi skapat en ny REST-slutpunkt så att verktygsförfattare kan generera en tillfällig fråga. Att använda ID:t från svaret för att skicka via querystring eliminerar det här problemet.
Läs mer på dokumentationssidan för REST API för temp-frågor.
API för batchborttagning (privat förhandsversion)
För närvarande är det enda sättet att ta bort arbetsobjekt från papperskorgen att använda det här REST-API:et för att ta bort ett i taget. Detta kan vara en långsam process och kan vara föremål för hastighetsbegränsning när du försöker göra någon form av massrensning. Som svar har vi lagt till en ny REST API-slutpunkt för att ta bort och/eller förstöra arbetsobjekt i batch.
Om du är intresserad av att delta i en privat förhandsversion av den här nya slutpunkten kan du skicka ett e-postmeddelande till oss direkt.
@CurrentIteration makro i leveransplaner
Med den här uppdateringen har vi lagt till stöd för makrot @CurrentIteration för formatmallar i Leveransplaner. Med det här makrot kan du hämta den aktuella iterationen från gruppkontexten för varje rad i din plan.
Azure-pipelines
Malluttryck i resursdefinition för lagringsplats
Vi har lagt till stöd för malluttryck när du ref
definierar egenskapen för en repository
resurs i en YAML-pipeline. Det här var en funktion som efterfrågades av utvecklarcommunityn.
Det finns användningsfall när du vill att pipelinen ska checka ut olika grenar av samma lagringsplatsresurs.
Anta till exempel att du har en pipeline som skapar en egen lagringsplats, och för detta måste den checka ut ett bibliotek från en resurslagringsplats. Anta dessutom att du vill att din pipeline ska checka ut samma biblioteksgren som den använder. Om din pipeline till exempel körs på grenen main
bör den checka ut grenen main
av biblioteksrepoen. Om pipelines körs på grenen dev
bör den checka ut biblioteksgrenen dev
.
Fram till idag var du tvungen att uttryckligen ange grenen för att checka ut och ändra pipelinekoden när grenen ändras.
Nu kan du använda malluttryck för att välja grenen för en lagringsplatsresurs. Se följande exempel på YAML-kod som ska användas för de icke-huvudsakliga grenarna i din pipeline:
resources:
repositories:
- repository: library
type: git
name: FabrikamLibrary
ref: ${{ variables['Build.SourceBranch'] }}
steps:
- checkout: library
- script: echo ./build.sh
- script: echo ./test.sh
När du kör pipelinen kan du ange grenen för att checka ut för lagringsplatsen library
.
Ange vilken version av en mall som ska utökas vid byggkö
Mallar är ett bra sätt att minska koddupliceringen och förbättra säkerheten för dina pipelines.
Ett populärt användningsfall är att inhysa mallar på sin egen lagringsplats. Detta minskar kopplingen mellan en mall och pipelines som utökar den och gör det enklare att utveckla mallen och pipelines oberoende av varandra.
Tänk på följande exempel, där en mall används för att övervaka körningen av en lista med steg. Mallkoden finns på lagringsplatsen Templates
.
# template.yml in repository Templates
parameters:
- name: steps
type: stepList
default: []
jobs:
- job:
steps:
- script: ./startMonitoring.sh
- ${{ parameters.steps }}
- script: ./stopMonitoring.sh
Anta att du har en YAML-pipeline som utökar den här mallen, som finns på lagringsplatsen FabrikamFiber
. Fram till idag gick det inte att ange ref
egenskapen templates
för lagringsplatsens resurs dynamiskt när lagringsplatsen användes som mallkälla. Detta innebar att du var tvungen att ändra koden för pipelinen om du ville att din pipeline skulle: utöka en mall från en annan gren utöka en mall från samma grennamn som din pipeline, oavsett vilken gren du körde pipelinen på
Med introduktionen av malluttryck i resursdefinitionen för lagringsplatsen kan du skriva din pipeline på följande sätt:
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
På så sätt utökar din pipeline mallen i samma gren som den gren som pipelinen körs på, så att du kan se till att pipelinens och mallens grenar alltid matchar. Om du kör din pipeline på en gren dev
utökas den mall som anges av template.yml
filen i -grenen dev
av templates
lagringsplatsen.
Du kan också välja vilken malllagringsplatsgren som ska användas när du skapar kö genom att skriva följande YAML-kod.
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
Nu kan du låta din pipeline på grenen main
utöka en mall från grenen dev
i en körning och utöka en mall från grenen main
i en annan körning, utan att ändra koden för din pipeline.
När du anger ett malluttryck för egenskapen för ref
en lagringsplatsresurs kan du använda parameters
fördefinierade variabler och systemvariabler, men du kan inte använda YAML- eller Pipelines-definierade variabler.
Malluttryck i containerresursdefinition
Vi har lagt till stöd för malluttryck när du endpoint
definierar egenskaperna , volumes
, ports
och options
för en container
resurs i en YAML-pipeline. Det här var en funktion som efterfrågades av utvecklarcommunityn.
Nu kan du skriva YAML-pipelines som följande.
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'
Du kan använda parameters.
och variables.
i malluttrycken. För variabler kan du bara använda de som definierats i YAML-filen, men inte de som definierats i pipelinegränssnittet. Om du omdefinierar variabeln, till exempel med hjälp av agentloggkommandon, har den ingen effekt.
Granska händelser för ändringar i godkännanden
Med godkännanden kan du styra när en fas ska köras. Detta används ofta för att styra distributioner till produktionsmiljöer. Med granskning kan du uppfylla efterlevnadskraven och övervaka säkerheten i din Azure DevOps-organisation.
När en användare uppmanas att godkänna en pipeline för distribution till en viss fas kan användaren välja att tilldela om godkännandet till någon annan.
Hittills har sådana åtgärder inte loggats i granskningsloggarna. Det här problemet har åtgärdats nu.
Granskningsloggarna innehåller en post som liknar följande.
[
{
"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"
}
]
Dessutom visas den i granskningsgränssnittet.
Aktivitetsbiblioteket exponerar agentens värdmodell
Uppgiftsförfattare som vill avgöra om en agent körs i Microsoft-värdbaserade pooler eller inte kan nu använda funktionen getAgentMode()
Aktivitetsbibliotek för att fastställa värdmodellen. Detta är fördelaktigt i scenarier där en uppgift vill påverka beteendet baserat på att ha åtkomst till en kunds nätverk eller inte. En uppgift kan försöka nå en Azure-tjänst via en privat slutpunkt om den körs från en lokalt installerad agent eller skalningsuppsättningsagenter som finns i en kunds nätverk.
Se aktivitetsreferens.
Nästa steg
Kommentar
Dessa funktioner kommer att distribueras under de kommande två till tre veckorna.
Gå över till Azure DevOps och ta en titt.
Så här ger du feedback
Vi vill gärna höra vad du tycker om de här funktionerna. Använd hjälpmenyn för att rapportera ett problem eller ge ett förslag.
Du kan också få råd och dina frågor som besvaras av communityn på Stack Overflow.
Tack,
Vijay Machiraju