Podpora výrazů šablon v definicích prostředků úložiště a kontejneru
V této aktualizaci jsme zahrnuli podporu výrazů šablon v definicích prostředků úložiště a kontejneru. Teď můžete použít výrazy šablony při definování ref
vlastnosti repository
prostředku v kanálu YAML a zvolit větev prostředku úložiště. Kromě toho jsme přidali podporu pro výrazy šablony při definování endpoint
volumes
ports
, , a options
vlastnosti container
prostředku v kanálu YAML.
Podrobnosti najdete v poznámkách k verzi.
Azure Boards
- Úprava typů propojení pracovních položek
- Vytvoření dočasného koncového bodu REST dotazu
- Rozhraní API pro dávkové odstranění (Privátní verze Preview)
- @CurrentIteration makro v Plánech doručení
Azure Pipelines
- Výrazy šablony v definici prostředku úložiště
- Výrazy šablony v definici prostředku kontejneru
- Auditování událostí pro změny schválení
- Knihovna úloh zveřejňuje model hostování agenta.
Azure Boards
Úprava typů propojení pracovních položek
Změna odkazu na pracovní položku dříve vyžaduje dokončení alespoň tří kroků. Pokud chcete například změnit nadřazený odkaz na související odkaz, musíte zkopírovat ID pracovní položky, odebrat nadřazený odkaz, přidat nový existující odkaz související s typem a nakonec vložit zkopírované ID a uložit. Je to těžkopádný proces.
Tento problém jsme vyřešili tak, že vám umožní upravit a změnit typ odkazu přímo. Typ odkazu můžete rychle změnit v jednom kroku.
Poznámka:
Tato funkce bude dostupná jenom ve verzi Preview new Boards Hubs.
Vytvoření dočasného koncového bodu REST dotazu
Viděli jsme několik instancí autorů rozšíření, kteří se pokoušejí spustit neuložené dotazy předáním příkazu WIQL (Work Item Query Language) prostřednictvím řetězce dotazu. To funguje správně, pokud nemáte velký příkaz WIQL, který dosáhne limitů prohlížeče na délku řetězce dotazu. Abychom to vyřešili, vytvořili jsme nový koncový bod REST, který autorům nástrojů umožní vygenerovat dočasný dotaz. Použití ID z odpovědi k předání prostřednictvím řetězce dotazu eliminuje tento problém.
Další informace najdete na stránce dokumentace k rozhraní REST API pro dočasné dotazy.
Rozhraní API pro dávkové odstranění (privátní verze Preview)
V současné době je jediným způsobem, jak odebrat pracovní položky z koše, pomocí tohoto rozhraní REST API odstranit po jednom. Může to být pomalý proces a při pokusu o vyčištění hmoty se může omezit rychlost. V reakci jsme přidali nový koncový bod rozhraní REST API pro odstranění a/nebo zničení pracovních položek v dávce.
Pokud se chcete zúčastnit privátní verze Preview tohoto nového koncového bodu, pošlete nám e-mail přímo.
@CurrentIteration makro v Plánech doručení
V této aktualizaci jsme přidali podporu @CurrentIteration makra pro styly v Plánech doručení. Toto makro vám umožní získat aktuální iteraci z týmového kontextu každého řádku v plánu.
Azure Pipelines
Výrazy šablony v definici prostředku úložiště
Přidali jsme podporu výrazů šablon při definování ref
vlastnosti repository
prostředku v kanálu YAML. To byla vysoce požadovaná funkce naší komunitou vývojářů.
Existují případy použití, kdy chcete, aby kanál zkontroloval různé větve stejného prostředku úložiště.
Řekněme například, že máte kanál, který sestaví vlastní úložiště, a proto musí rezervovat knihovnu z úložiště prostředků. Řekněme také, že chcete, aby váš kanál zkontroloval stejnou větev knihovny jako samotná. Pokud například kanál běží ve main
větvi, měl by se podívat na main
větev úložiště knihovny. Pokud kanály běží ve dev
větvi, měla by se podívat na dev
větev knihovny.
Až do dnešního dne jste museli explicitně zadat větev, která se má rezervovat, a změnit kód kanálu pokaždé, když se větev změní.
Teď můžete pomocí výrazů šablon zvolit větev prostředku úložiště. Podívejte se na následující příklad kódu YAML, který se má použít pro jiné než hlavní větve vašeho kanálu:
resources:
repositories:
- repository: library
type: git
name: FabrikamLibrary
ref: ${{ variables['Build.SourceBranch'] }}
steps:
- checkout: library
- script: echo ./build.sh
- script: echo ./test.sh
Při spuštění kanálu můžete zadat větev, která se má rezervovat pro library
úložiště.
Zadejte verzi šablony, která se má rozšířit v době fronty sestavení.
Šablony představují skvělý způsob, jak omezit duplikaci kódu a zlepšit zabezpečení kanálů.
Jedním zoblíbených Tím se snižuje propojení mezi šablonou a kanály, které ji rozšiřují, a usnadňuje nezávislému vývoji šablony a kanálů.
Podívejte se na následující příklad, ve kterém se šablona používá k monitorování provádění seznamu kroků. Kód šablony se nachází v Templates
úložišti.
# template.yml in repository Templates
parameters:
- name: steps
type: stepList
default: []
jobs:
- job:
steps:
- script: ./startMonitoring.sh
- ${{ parameters.steps }}
- script: ./stopMonitoring.sh
Řekněme, že máte kanál YAML, který rozšiřuje tuto šablonu, která se nachází v úložišti FabrikamFiber
. Až do dnešního dne nebylo možné dynamicky určit ref
vlastnost templates
prostředku úložiště při použití úložiště jako zdroje šablony. To znamenalo, že jste museli změnit kód kanálu, pokud chcete, aby kanál rozšířil šablonu z jiné větve, a to ze stejného názvu větve jako váš kanál, bez ohledu na to, na které větvi jste kanál spustili.
Po zavedení výrazů šablony v definici prostředku úložiště můžete kanál zapsat následujícím způsobem:
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
Tím kanál rozšíří šablonu ve stejné větvi jako větev, na které se kanál spouští, abyste měli jistotu, že větve kanálu a šablony se vždy shodují. To znamená, že pokud kanál spustíte ve větvi dev
, rozšíří se šablona určená souborem template.yml
ve dev
větvi templates
úložiště.
Nebo můžete zvolit větev úložiště šablony, která se má použít, při sestavování fronty, napsáním následujícího kódu YAML.
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
Teď můžete mít kanál ve větvi rozšíření šablony z větve main
dev
v jednom spuštění a rozšířit šablonu z větve main
v jiném spuštění beze změny kódu kanálu.
Při zadávání výrazu šablony pro ref
vlastnost prostředku úložiště můžete použít parameters
a systémové předdefinované proměnné, ale nemůžete použít proměnné definované uživatelským rozhraním YAML nebo Pipelines.
Výrazy šablony v definici prostředku kontejneru
Přidali jsme podporu výrazů šablon při definování endpoint
volumes
ports
prostředku v kanálu YAML .options
container
To byla vysoce požadovaná funkce naší komunitou vývojářů.
Teď můžete napsat kanály YAML, jako je následující.
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'
Můžete použít parameters.
a variables.
ve výrazech šablony. U proměnných můžete použít pouze ty definované v souboru YAML, ale ne ty, které jsou definované v uživatelském rozhraní Pipelines. Pokud předefinujete proměnnou, například pomocí příkazů protokolu agenta, nebude mít žádný vliv.
Auditování událostí pro změny schválení
Schválení umožňují řídit, kdy se má fáze spustit. To se běžně používá k řízení nasazení do produkčních prostředí. Auditování umožňuje splnit požadavky na dodržování předpisů a monitorovat zabezpečení vaší organizace Azure DevOps.
Když se uživateli zobrazí výzva ke schválení kanálu pro nasazení do konkrétní fáze, může se tento uživatel rozhodnout znovu přiřadit schválení někomu jinému.
Až doteď se tyto akce do protokolů auditu nezaprotokolovaly. Tento problém je opravený.
Protokoly auditu budou obsahovat položku podobnou následující.
[
{
"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"
}
]
Kromě toho se zobrazí v uživatelském rozhraní auditu.
Knihovna úloh zveřejňuje model hostování agenta.
Autoři úloh, kteří chtějí zjistit, jestli je agent spuštěný ve fondech hostovaných Microsoftem nebo nemůže nyní použít funkci getAgentMode()
Knihovna úloh k určení modelu hostování. To je výhodné ve scénářích, kdy úloha chce ovlivnit chování na základě přístupu k síti zákazníka nebo ne. Úloha se může pokusit spojit se službou Azure přes privátní koncový bod, pokud se spustí z agenta v místním prostředí nebo agentů škálovací sady, které se nacházejí v síti zákazníka.
Viz referenční informace k úkolu.
Další kroky
Poznámka:
Tyto funkce se budou zavádět během následujících dvou až tří týdnů.
Přejděte na Azure DevOps a podívejte se na ně.
Jak poskytnout zpětnou vazbu
Rádi bychom slyšeli, co si o těchto funkcích myslíte. Pomocí nabídky nápovědy můžete nahlásit problém nebo poskytnout návrh.
Můžete také získat rady a své otázky zodpovězené komunitou ve službě Stack Overflow.
Díky,
Vijay Machiraju