Bagikan melalui


definisi schedules.cron

Pemicu terjadwal menentukan jadwal di mana cabang dibangun.

schedules:
- cron: string # Required as first property. Cron syntax defining a schedule in UTC time.
  displayName: string # Optional friendly name given to a specific schedule.
  branches: # Branch names to include or exclude for triggering a run.
    include: [ string ] # List of items to include.
    exclude: [ string ] # List of items to exclude.
  batch: boolean # Whether to run the pipeline if the previously scheduled run is in-progress; the default is false.
  always: boolean # Whether to always run the pipeline or only if there have been source code or pipeline settings changes since the last successful scheduled run. The default is false.
schedules:
- cron: string # Required as first property. Cron syntax defining a schedule in UTC time.
  displayName: string # Optional friendly name given to a specific schedule.
  branches: # Branch names to include or exclude for triggering a run.
    include: [ string ] # List of items to include.
    exclude: [ string ] # List of items to exclude.
  always: boolean # Whether to always run the pipeline or only if there have been source code or pipeline settings changes since the last successful scheduled run. The default is false.

Definisi yang mereferensikan definisi ini: menjadwalkan

Sifat

cron string. Diperlukan sebagai properti pertama.
sintaks Cron yang menentukan jadwal dalam waktu UTC.

displayName string.
Nama ramah opsional yang diberikan untuk jadwal tertentu.

branches termasukExcludeFilters.
Nama cabang untuk disertakan atau dikecualikan untuk memicu eksekusi.

batch boolean.
Properti batch mengonfigurasi apakah akan menjalankan alur jika eksekusi yang dijadwalkan sebelumnya sedang berlangsung. Saat batchtrue, eksekusi alur baru tidak akan dimulai karena jadwal jika eksekusi alur sebelumnya masih berjalan. Defaultnya adalah false.

Properti batch dipengaruhi oleh pengaturan properti always. Ketika alwaystruealur berjalan sesuai dengan jadwal cron, bahkan ketika batchtrue dan ada eksekusi yang sedang berlangsung.

Selalu Sekumpulan Perilaku
false false Alur berjalan hanya jika ada perubahan sehubungan dengan eksekusi alur terjadwal terakhir yang berhasil.
false true Proses alur hanya berjalan jika terdapat pembaruan terkait eksekusi alur terjadwal terakhir yang berhasil, dan tidak ada proses alur terjadwal yang sedang berlangsung.
true false Alur berjalan sesuai dengan jadwal cron.
true true Pipeline berjalan sesuai dengan jadwal cron meskipun ada eksekusi yang sedang berlangsung.

always boolean.
Apakah akan selalu menjalankan alur atau hanya jika ada perubahan kode sumber sejak eksekusi terjadwal terakhir yang berhasil; defaultnya adalah false.

Komentar

Jika Anda menentukan tidak ada pemicu terjadwal, tidak ada build terjadwal yang terjadi.

Nota

Jika Anda menentukan klausa exclude tanpa klausa include untuk branches, setara dengan menentukan * dalam klausa include.

Penting

Pemicu terjadwal yang ditentukan menggunakan antarmuka pengguna pengaturan alur lebih diutamakan daripada pemicu terjadwal YAML.

Jika alur YAML Anda memiliki pemicu terjadwal YAML dan pemicu terjadwal yang ditentukan UI, hanya pemicu terjadwal yang ditentukan UI yang dijalankan. Untuk menjalankan pemicu terjadwal yang ditentukan YAML di alur YAML, Anda harus menghapus pemicu terjadwal yang ditentukan dalam antarmuka pengguna pengaturan alur. Setelah semua pemicu terjadwal UI dihapus, pendorongan harus dilakukan agar pemicu terjadwal YAML mulai dievaluasi.

Untuk menghapus pemicu terjadwal UI dari alur YAML, lihat pengaturan UI menggantikan pemicu terjadwal YAML.

Variabel Build.CronSchedule.DisplayName

Saat alur berjalan karena pemicu terjadwal cron, variabel Build.CronSchedule.DisplayName yang telah ditentukan sebelumnya berisi displayName jadwal cron yang memicu eksekusi alur.

Alur YAML Anda mungkin berisi beberapa jadwal cron, dan Anda mungkin ingin alur Anda menjalankan berbagai tahap atau pekerjaan berdasarkan jadwal cron mana yang berjalan. Misalnya, Anda memiliki pengembangan malam dan pengembangan mingguan, dan Anda ingin menjalankan langkah tertentu hanya selama pengembangan malam. Anda dapat menggunakan variabel Build.CronSchedule.DisplayName dalam kondisi pekerjaan atau tahapan untuk menentukan apakah akan menjalankan pekerjaan atau tahap tersebut.

- stage: stage1
  # Run this stage only when the pipeline is triggered by the 
  # "Daily midnight build" cron schedule
  condition: eq(variables['Build.CronSchedule.DisplayName'], 'Daily midnight build')

Untuk contoh selengkapnya, lihat bagian Contoh berikut ini.

Contoh

Contoh berikut mendefinisikan dua jadwal.

Jadwal pertama, Build tengah malam hari, menjalankan alur pada tengah malam setiap hari hanya jika kode telah berubah sejak eksekusi terjadwal terakhir yang berhasil. Ini menjalankan alur untuk main dan semua cabang releases/*, kecuali untuk cabang-cabang di bawah releases/ancient/*.

Jadwal kedua, build Mingguan, menjalankan alur pada siang hari pada hari Minggu untuk semua cabang releases/*. Ini melakukannya terlepas dari apakah kode telah berubah sejak eksekusi terakhir.

schedules:
- cron: '0 0 * * *'
  displayName: Daily midnight build
  branches:
    include:
    - main
    - releases/*
    exclude:
    - releases/ancient/*
- cron: '0 12 * * 0'
  displayName: Weekly Sunday build
  branches:
    include:
    - releases/*
  always: true

Untuk menjalankan tahap atau pekerjaan secara kondisional berdasarkan apakah itu dijadwalkan oleh pemicu terjadwal, gunakan variabel Build.CronSchedule.DisplayName dalam kondisi. Dalam contoh ini, stage1 hanya berjalan jika alur dipicu oleh jadwal Daily midnight build, dan job3 hanya berjalan jika alur dipicu oleh jadwal Weekly Sunday build.

stages:
- stage: stage1
  # Run this stage only when the pipeline is triggered by the 
  # "Daily midnight build" cron schedule
  condition: eq(variables['Build.CronSchedule.DisplayName'], 'Daily midnight build')
  jobs:
  - job: job1
    steps:
    - script: echo Hello from Stage 1 Job 1

- stage: stage2
  dependsOn: [] # Indicate this stage does not depend on the previous stage
  jobs:
  - job: job2
    steps:
    - script: echo Hello from Stage 2 Job 2
  - job: job3 
    # Run this job only when the pipeline is triggered by the 
    # "Weekly Sunday build" cron schedule
    condition: eq(variables['Build.CronSchedule.DisplayName'], 'Weekly Sunday build')
    steps:
    - script: echo Hello from Stage 2 Job 3

Lihat juga

  • Pelajari selengkapnya tentang pemicu terjadwal .
  • Pelajari selengkapnya tentang pemicu secara umum dan cara menentukannya.