definisi stages.stage

Tahapan adalah kumpulan pekerjaan terkait. Secara default, tahapan berjalan secara berurutan. Setiap tahap dimulai hanya setelah tahap sebelumnya selesai kecuali ditentukan lain melalui dependsOn properti .

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: string # 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.

Definisi yang mereferensikan definisi ini: tahapan

Properti

stage String. Diperlukan sebagai properti pertama.
ID tahap.

displayName String.
Nama yang bisa dibaca manusia untuk panggung.

poolkolam renang.
Kumpulan tempat pekerjaan dalam tahap ini akan berjalan kecuali ditentukan lain.

dependsOn string | daftar string.
Setiap tahapan yang harus diselesaikan sebelum tahap ini. Secara default, tahap dijalankan secara berurutan dalam urutan yang ditentukan dalam alur. Tentukan dependsOn: [] untuk tahap jika tidak boleh bergantung pada tahap sebelumnya dalam alur.

condition String.
Evaluasi ekspresi kondisi ini untuk menentukan apakah akan menjalankan tahap ini.

variablesvariabel.
Variabel khusus tahap.

jobspekerjaan.
Pekerjaan yang membentuk panggung.

lockBehavior String.
Permintaan kunci perilaku dari tahap ini harus dipamerkan sehubungan dengan permintaan kunci eksklusif lainnya. berurutan | runLatest.

templateContext templateContext.
Informasi terkait tahapan yang diteruskan dari alur saat memperluas templat. Untuk informasi selengkapnya tentang templateContext, lihat Templat Alur YAML yang Diperluas sekarang dapat diteruskan informasi konteks untuk tahapan, pekerjaan, dan penyebaran dan Templat - Gunakan templateContext untuk meneruskan properti ke templat.

Keterangan

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 mengonsumsi 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 hanya memungkinkan satu eksekusi dari alur yang dilanjutkan. Ketika beberapa eksekusi mencoba menyebarkan ke lingkungan pada saat yang sama, pemeriksaan membatalkan semua eksekusi lama dan mengizinkan eksekusi terbaru untuk disebarkan.

Anda dapat mengonfigurasi perilaku pemeriksaan kunci eksklusif menggunakan lockBehavior properti , yang memiliki dua nilai:

  • runLatest - Hanya eksekusi terbaru yang memperoleh kunci ke sumber daya. Ini adalah nilai default jika tidak lockBehavior ada 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 lockBehavior properti , 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 sequential penyebaran atau runLatest, ikuti langkah-langkah berikut:

  1. Aktifkan pemeriksaan kunci eksklusif pada lingkungan (atau sumber daya lain yang dilindungi).
  2. 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!

Contoh

Contoh ini menjalankan tiga tahapan, satu demi satu. Tahapan 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 keringkasan, pekerjaan dan langkah-langkahnya 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 tahapan, kondisi, dan variabel.