Acara
Membangun Aplikasi dan Agen AI
17 Mar, 21 - 21 Mar, 10
Bergabunglah dengan seri meetup untuk membangun solusi AI yang dapat diskalakan berdasarkan kasus penggunaan dunia nyata dengan sesama pengembang dan pakar.
Daftar sekarangBrowser ini sudah tidak didukung.
Mutakhirkan ke Microsoft Edge untuk memanfaatkan fitur, pembaruan keamanan, dan dukungan teknis terkini.
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 volumes
, , ports
options
, dan container
sumber daya dalam alur YAML.
Lihat catatan rilis untuk detailnya.
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.
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.
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.
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.
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.
Templat mewakili cara yang bagus untuk mengurangi duplikasi kode danmeningkatkan 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.
Kami telah menambahkan dukungan untuk ekspresi templat saat menentukan endpoint
properti volumes
, , ports
options
, dan container
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.
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.
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.
Catatan
Fitur-fitur ini akan diluncurkan selama dua hingga tiga minggu ke depan.
Buka Azure DevOps dan lihat.
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
Acara
Membangun Aplikasi dan Agen AI
17 Mar, 21 - 21 Mar, 10
Bergabunglah dengan seri meetup untuk membangun solusi AI yang dapat diskalakan berdasarkan kasus penggunaan dunia nyata dengan sesama pengembang dan pakar.
Daftar sekarangPelatihan
Modul
Mengelola agen dan kumpulan Azure Pipeline - Training
Mengelola agen dan kumpulan Azure Pipeline
Sertifikasi
Microsoft Certified: Azure DevOps Engineer Expert - Certifications
Sertifikasi ini mengukur kemampuan Anda untuk menyelesaikan tugas teknis berikut: Merancang dan mengimplementasikan proses dan komunikasi, merancang dan menerapkan strategi kontrol sumber, merancang dan mengimplementasikan alur build dan rilis, mengembangkan rencana keamanan dan kepatuhan, dan menerapkan strategi instrumentasi.
Dokumentasi
definisi resources.repositories
Daftar repositori eksternal.
definisi resources.repositories.repository
Sumber daya repositori digunakan untuk mereferensikan repositori tambahan di alur Anda.
definisi resources.pipelines.pipeline
Sumber daya alur.