Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tahapan adalah kumpulan pekerjaan terkait. Secara default, tahapan berjalan secara berurutan. Setiap tahap dimulai hanya setelah tahap sebelumnya selesai kecuali ditentukan lain melalui properti dependsOn
.
stages:
- stage: string # Required as first property. ID of the stage.
displayName: string # Human-readable name for the stage.
pool: string | pool # Pool where jobs in this stage will run unless otherwise specified.
dependsOn: string | [ string ] # Any stages which must complete before this one.
condition: string # Evaluate this condition expression to determine whether to run this stage.
variables: variables | [ variable ] # Stage-specific variables.
jobs: [ job | deployment | template ] # Jobs which make up the stage.
lockBehavior: sequential | runLatest # Behavior lock requests from this stage should exhibit in relation to other exclusive lock requests.
trigger: manual | automatic # Stage trigger manual or automatic (default).
isSkippable: boolean # Setting false prevents the stage from being skipped. By default it's always true.
templateContext: # Stage related information passed from a pipeline when extending a template.
stages:
- stage: string # Required as first property. ID of the stage.
displayName: string # Human-readable name for the stage.
pool: string | pool # Pool where jobs in this stage will run unless otherwise specified.
dependsOn: string | [ string ] # Any stages which must complete before this one.
condition: string # Evaluate this condition expression to determine whether to run this stage.
variables: variables | [ variable ] # Stage-specific variables.
jobs: [ job | deployment | template ] # Jobs which make up the stage.
lockBehavior: sequential | runLatest # Behavior lock requests from this stage should exhibit in relation to other exclusive lock requests.
templateContext: # Stage related information passed from a pipeline when extending a template.
stages:
- stage: string # Required as first property. ID of the stage.
displayName: string # Human-readable name for the stage.
pool: string | pool # Pool where jobs in this stage will run unless otherwise specified.
dependsOn: string | [ string ] # Any stages which must complete before this one.
condition: string # Evaluate this condition expression to determine whether to run this stage.
variables: variables | [ variable ] # Stage-specific variables.
jobs: [ job | deployment | template ] # Jobs which make up the stage.
Sifat
stage
tali. Diperlukan sebagai properti pertama.
ID panggung.
displayName
tali.
Nama yang dapat dibaca manusia untuk panggung.
string dependsOn
| daftar string.
Tahap apa pun yang harus diselesaikan sebelum tahap ini. Secara default tahap dijalankan secara berurutan dalam urutan yang ditentukan dalam alur. Tentukan dependsOn: []
untuk tahap jika seharusnya tidak bergantung pada tahap sebelumnya dalam alur.
condition
tali.
Evaluasi ekspresi kondisi ini untuk menentukan apakah akan menjalankan tahap ini.
variables
variabel.
Variabel khusus tahapan.
jobs
pekerjaan.
Pekerjaan yang membentuk panggung.
lockBehavior
tali.
Permintaan penguncian perilaku dari tahap ini harus dipamerkan sehubungan dengan permintaan kunci eksklusif lainnya. berurutan | runLatest.
trigger
tali.
Tahap pemicu manual atau otomatis (default). manual | otomatis.
templateContext
templateContext.
Tahap informasi terkait yang diteruskan dari alur saat memperluas templat. Untuk informasi selengkapnya tentang templateContext
, lihat templat Extended YAML Pipelines sekarang dapat diteruskan informasi konteks untuk tahapan, pekerjaan, dan penyebaran dan templat - Gunakan templateContext untuk meneruskan properti ke templat.
Komentar
Untuk informasi selengkapnya tentang templateContext
, lihat templat Extended YAML Pipelines sekarang dapat diteruskan informasi konteks untuk tahapan, pekerjaan, dan penyebaran dan templat - Gunakan templateContext untuk meneruskan properti ke templat.
Gunakan pemeriksaan persetujuan untuk mengontrol secara manual kapan tahap harus berjalan. Pemeriksaan ini biasanya digunakan untuk mengontrol penyebaran ke lingkungan produksi.
Pemeriksaan adalah mekanisme yang tersedia untuk pemilik sumber daya . Pemeriksaan mengontrol saat tahapan dalam alur menggunakan sumber daya. Sebagai pemilik sumber daya seperti lingkungan, Anda dapat menentukan pemeriksaan yang diperlukan sebelum tahap yang menggunakan sumber daya dapat dimulai.
Saat ini, pemeriksaan persetujuan manual didukung pada lingkungan . Untuk informasi selengkapnya, lihat Persetujuan.
Kunci eksklusif
Dalam alur YAML, pemeriksaan digunakan untuk mengontrol eksekusi tahapan pada sumber daya yang dilindungi . Salah satu pemeriksaan umum yang dapat Anda gunakan adalah pemeriksaan kunci eksklusif . Pemeriksaan ini memungkinkan hanya satu eksekusi dari alur yang dilanjutkan. Ketika beberapa eksekusi mencoba menyebarkan ke lingkungan secara bersamaan, pemeriksaan membatalkan semua eksekusi lama dan mengizinkan eksekusi terbaru untuk disebarkan.
Anda dapat mengonfigurasi perilaku pemeriksaan kunci eksklusif menggunakan properti lockBehavior
, yang memiliki dua nilai:
-
runLatest
- Hanya eksekusi terbaru yang memperoleh kunci ke sumber daya. Ini adalah nilai default jika tidak adalockBehavior
yang ditentukan. -
sequential
- Semua eksekusi memperoleh kunci secara berurutan ke sumber daya yang dilindungi.
Membatalkan eksekusi lama adalah pendekatan yang baik ketika rilis Anda bersifat kumulatif dan berisi semua perubahan kode dari eksekusi sebelumnya. Namun, ada beberapa alur di mana perubahan kode tidak kumulatif. Dengan mengonfigurasi properti lockBehavior
, Anda dapat memilih untuk mengizinkan semua eksekusi untuk melanjutkan dan menyebarkan secara berurutan ke lingkungan, atau mempertahankan perilaku sebelumnya untuk membatalkan eksekusi lama dan hanya mengizinkan yang terbaru. Nilai sequential
menyiratkan bahwa semua eksekusi memperoleh kunci secara berurutan ke sumber daya yang dilindungi. Nilai runLatest
menyiratkan bahwa hanya eksekusi terbaru yang memperoleh kunci ke sumber daya.
Untuk menggunakan pemeriksaan kunci eksklusif dengan penyebaran sequential
atau runLatest
, ikuti langkah-langkah berikut:
- Aktifkan pemeriksaan kunci eksklusif pada lingkungan (atau sumber daya lain yang dilindungi).
- Dalam file YAML untuk alur, tentukan properti baru yang disebut
lockBehavior
. Ini dapat ditentukan untuk seluruh alur atau untuk tahap tertentu:
Atur pada panggung:
stages:
- stage: A
lockBehavior: sequential
jobs:
- job: Job
steps:
- script: Hey!
Atur pada alur:
lockBehavior: runLatest
stages:
- stage: A
jobs:
- job: Job
steps:
- script: Hey!
Kunci eksklusif pada tingkat tahap
Beberapa kasus penggunaan memerlukan alur untuk mengakses sumber daya tertentu hanya sekali pada waktu tertentu. Untuk mendukung kasus ini, kami memiliki pemeriksaan kunci eksklusif yang dijelaskan di bagian sebelumnya..
Situasi serupa muncul ketika hanya satu eksekusi alur yang harus mengakses tahap kapan saja. Misalnya, jika Anda memiliki tahap yang disebarkan ke grup sumber daya Azure, Anda mungkin ingin mencegah beberapa eksekusi alur memperbarui grup sumber daya yang sama secara bersamaan. Saat ini, mencapai hal ini memerlukan penggunaan sumber daya proksi, seperti lingkungan, dan menempatkan pemeriksaan kunci eksklusif pada lingkungan tersebut. Pendekatan ini dapat memakan waktu, menambah kompleksitas, dan meningkatkan upaya pemeliharaan.
Jika Anda hanya perlu memastikan satu eksekusi alur pada satu waktu yang dapat mengakses tahap, Anda dapat menentukan kunci eksklusif pada tingkat tahap. Jika Anda memiliki tahap dengan ID dan menentukan properti lockBehavior
, kunci secara otomatis dibuat untuk tahap tersebut. Perilaku berurutan tetap konsisten untuk kunci tingkat sumber daya dan tingkat tahap. Namun, perilaku runLatest
berbeda, karena hanya membatalkan runLatest
build untuk cabang yang sama, bukan untuk semua cabang alur.
Contoh
Contoh ini menjalankan tiga tahapan, satu demi satu. Tahap tengah menjalankan dua pekerjaan secara paralel.
stages:
- stage: Build
jobs:
- job: BuildJob
steps:
- script: echo Building!
- stage: Test
jobs:
- job: TestOnWindows
steps:
- script: echo Testing on Windows!
- job: TestOnLinux
steps:
- script: echo Testing on Linux!
- stage: Deploy
jobs:
- job: Deploy
steps:
- script: echo Deploying the code!
Contoh ini menjalankan dua tahap secara paralel. Untuk brevity, pekerjaan dan langkah-langkah dihilangkan.
stages:
- stage: BuildWin
displayName: Build for Windows
- stage: BuildMac
displayName: Build for Mac
dependsOn: [] # by specifying an empty array, this stage doesn't depend on the stage before it
Lihat juga
Pelajari selengkapnya tentang tahap , kondisi variabel , dan .