Dukungan untuk ekspresi templat dalam definisi sumber daya repositori dan kontainer
Dengan pembaruan ini, kami menyertakan dukungan untuk ekspresi templat dalam definisi sumber daya repositori dan kontainer. Sekarang Anda dapat menggunakan ekspresi templat saat menentukan ref
properti repository
sumber daya dalam alur YAML untuk memilih cabang sumber daya repositori. Selain itu, kami telah menambahkan dukungan untuk ekspresi templat saat menentukan endpoint
properti container
, , volumes
ports
, dan options
sumber daya dalam alur YAML.
Lihat catatan rilis untuk detailnya.
Azure Boards
- Edit jenis tautan item kerja
- Membuat titik akhir REST kueri sementara
- API penghapusan batch (Pratinjau Privat)
- @CurrentIteration makro dalam Paket Pengiriman
Azure Pipelines
- Ekspresi Templat dalam Definisi Sumber Daya Repositori
- Ekspresi Templat dalam Definisi Sumber Daya Kontainer
- Peristiwa Audit untuk Perubahan Persetujuan
- Pustaka tugas mengekspos model hosting Agen
Azure Boards
Edit jenis tautan item kerja
Sebelumnya, mengubah tautan item kerja memerlukan setidaknya tiga langkah untuk diselesaikan. Misalnya, untuk mengubah tautan induk ke tautan terkait, Anda perlu menyalin id item kerja, menghapus tautan induk, menambahkan tautan jenis baru yang sudah ada terkait, dan akhirnya menempelkan id yang disalin dan menyimpan. Ini adalah proses yang rumit.
Kami memecahkan masalah dengan memungkinkan Anda mengedit dan mengubah jenis tautan secara langsung. Anda dapat dengan cepat mengubah jenis tautan hanya dalam satu langkah.
Catatan
Fitur ini hanya akan tersedia dengan pratinjau New Boards Hubs.
Membuat titik akhir REST kueri sementara
Kami telah melihat beberapa instans penulis ekstensi yang mencoba menjalankan kueri yang tidak disimpan dengan meneruskan pernyataan Work Item Query Language (WIQL) melalui querystring. Ini berfungsi dengan baik kecuali Anda memiliki pernyataan WIQL besar yang mencapai batas browser pada panjang querystring. Untuk mengatasinya, kami telah membuat titik akhir REST baru untuk memungkinkan penulis alat menghasilkan kueri sementara. Menggunakan id dari respons untuk meneruskan melalui querystring menghilangkan masalah ini.
Pelajari selengkapnya di halaman dokumentasi REST API kueri sementara.
API penghapusan batch (pratinjau privat)
Saat ini, satu-satunya cara untuk menghapus item kerja dari keranjang sampah adalah dengan menggunakan REST API ini untuk menghapus satu per satu. Ini bisa menjadi proses yang lambat dan tunduk pada pembatasan laju ketika mencoba melakukan pembersihan massal apa pun. Sebagai respons, kami telah menambahkan titik akhir REST API baru untuk menghapus dan/atau menghancurkan item kerja dalam batch.
Jika Anda tertarik untuk berpartisipasi dalam pratinjau privat titik akhir baru ini, silakan kirim email kepada kami secara langsung.
@CurrentIteration makro dalam Paket Pengiriman
Dengan pembaruan ini, kami telah menambahkan dukungan untuk @CurrentIteration makro untuk gaya dalam Paket Pengiriman. Makro ini akan memungkinkan Anda mendapatkan iterasi saat ini dari konteks tim dari setiap baris dalam paket Anda.
Azure Pipelines
Ekspresi Templat dalam Definisi Sumber Daya Repositori
Kami telah menambahkan dukungan untuk ekspresi templat saat menentukan ref
properti repository
sumber daya dalam alur YAML. Ini adalah fitur yang sangat diminta oleh Komunitas Pengembang kami.
Ada kasus penggunaan saat Anda ingin alur Anda memeriksa cabang yang berbeda dari sumber daya repositori yang sama.
Misalnya, Anda memiliki alur yang membangun repositorinya sendiri, dan untuk ini, perlu memeriksa pustaka dari repositori sumber daya. Selain itu, katakanlah Anda ingin alur Anda memeriksa cabang pustaka yang sama seperti yang digunakan sendiri. Misalnya, jika alur Anda berjalan di main
cabang, alur harus memeriksa main
cabang repositori pustaka. Jika alur berjalan di dev
cabang, alur harus memeriksa dev
cabang pustaka.
Hingga hari ini, Anda harus secara eksplisit menentukan cabang untuk dicek keluar, dan mengubah kode alur setiap kali cabang berubah.
Sekarang, Anda dapat menggunakan ekspresi templat untuk memilih cabang sumber daya repositori. Lihat contoh kode YAML berikut yang akan digunakan untuk cabang non-utama alur Anda:
resources:
repositories:
- repository: library
type: git
name: FabrikamLibrary
ref: ${{ variables['Build.SourceBranch'] }}
steps:
- checkout: library
- script: echo ./build.sh
- script: echo ./test.sh
Saat menjalankan alur, Anda dapat menentukan cabang yang akan dicek keluar untuk library
repositori.
Tentukan versi templat yang akan diperluas pada waktu antrean build
Templat mewakili cara yang bagus untuk mengurangi duplikasi kode dan meningkatkan keamanan alur Anda.
Salah satu kasus penggunaan populer adalah menampung templat di repositori mereka sendiri. Ini mengurangi kopling antara templat dan alur yang memperluasnya dan membuatnya lebih mudah untuk mengembangkan templat dan alur secara independen.
Pertimbangkan contoh berikut, di mana templat digunakan untuk memantau eksekusi daftar langkah. Kode templat terletak di repositori Templates
.
# template.yml in repository Templates
parameters:
- name: steps
type: stepList
default: []
jobs:
- job:
steps:
- script: ./startMonitoring.sh
- ${{ parameters.steps }}
- script: ./stopMonitoring.sh
Katakanlah Anda memiliki alur YAML yang memperluas templat ini, yang terletak di repositori FabrikamFiber
. Hingga hari ini, tidak mungkin untuk menentukan ref
properti templates
sumber daya repositori secara dinamis saat menggunakan repositori sebagai sumber templat. Ini berarti Anda harus mengubah kode alur jika Anda ingin alur Anda menjadi: memperluas templat dari cabang yang berbeda memperluas templat dari nama cabang yang sama dengan alur Anda, terlepas dari cabang mana Anda menjalankan alur Anda
Dengan pengenalan ekspresi templat dalam definisi sumber daya repositori, Anda dapat menulis alur Anda sebagai berikut:
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
Dengan demikian, alur Anda akan memperluas templat di cabang yang sama dengan cabang tempat alur berjalan, sehingga Anda dapat memastikan cabang alur dan templat Anda selalu cocok. Artinya, jika Anda menjalankan alur Anda di cabang dev
, itu akan memperluas templat yang ditentukan oleh template.yml
file di dev
cabang templates
repositori.
Atau Anda dapat memilih, pada waktu antrean build, cabang repositori templat mana yang akan digunakan, dengan menulis kode YAML berikut.
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
Sekarang, Anda dapat memiliki alur Anda di cabang main
memperluas templat dari cabang dev
dalam satu eksekusi, dan memperluas templat dari cabang main
dalam eksekusi lain, tanpa mengubah kode alur Anda.
Saat menentukan ekspresi templat untuk ref
properti sumber daya repositori, Anda dapat menggunakan parameters
dan variabel yang ditentukan sebelumnya sistem, tetapi Anda tidak dapat menggunakan variabel yang ditentukan UI YAML atau Alur.
Ekspresi Templat dalam Definisi Sumber Daya Kontainer
Kami telah menambahkan dukungan untuk ekspresi templat saat menentukan endpoint
properti container
, , volumes
ports
, dan options
sumber daya dalam alur YAML. Ini adalah fitur yang sangat diminta oleh Komunitas Pengembang kami.
Sekarang, Anda dapat menulis alur YAML seperti berikut ini.
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'
Anda dapat menggunakan parameters.
dan variables.
dalam ekspresi templat Anda. Untuk variabel, Anda hanya dapat menggunakan yang ditentukan dalam file YAML, tetapi bukan yang ditentukan dalam UI Alur. Jika Anda menentukan ulang variabel, misalnya, menggunakan perintah log agen, itu tidak akan berpengaruh apa pun.
Peristiwa Audit untuk Perubahan Persetujuan
Persetujuan memungkinkan Anda mengontrol kapan tahap harus berjalan. Ini biasanya digunakan untuk mengontrol penyebaran ke lingkungan produksi. Audit memungkinkan Anda memenuhi persyaratan kepatuhan dan memantau keamanan organisasi Azure DevOps Anda.
Ketika pengguna diminta untuk menyetujui alur untuk disebarkan ke tahap tertentu, pengguna tersebut dapat memilih untuk menetapkan ulang persetujuan kepada orang lain.
Hingga saat ini, tindakan tersebut tidak dicatat dalam log Audit. Masalah ini sudah diperbaiki sekarang.
Log Audit akan berisi entri yang mirip dengan yang berikut ini.
[
{
"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"
}
]
Selain itu, itu akan muncul di UI Audit.
Pustaka tugas mengekspos model hosting Agen
Penulis Tugas yang ingin menentukan apakah agen berjalan di kumpulan yang dihosting Microsoft atau sekarang tidak dapat menggunakan fungsi getAgentMode()
Pustaka Tugas untuk menentukan model hosting. Ini bermanfaat dalam skenario di mana tugas ingin memengaruhi perilaku berdasarkan memiliki akses ke jaringan pelanggan atau tidak. Tugas dapat mencoba menjangkau layanan Azure melalui titik akhir privat jika dijalankan dari agen yang dihost sendiri atau agen set skala yang berada di jaringan pelanggan.
Lihat referensi tugas.
Langkah berikutnya
Catatan
Fitur-fitur ini akan diluncurkan selama dua hingga tiga minggu ke depan.
Buka Azure DevOps dan lihat.
Cara memberikan umpan balik
Kami akan senang mendengar apa yang Anda pikirkan tentang fitur-fitur ini. Gunakan menu bantuan untuk melaporkan masalah atau memberikan saran.
Anda juga bisa mendapatkan saran dan pertanyaan yang dijawab oleh komunitas di Stack Overflow.
Terima kasih,
Vijay Machiraju