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 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 changes since the last successful scheduled run; the default is false.
Definisi yang mereferensikan definisi ini: jadwal
Properti
cron
String. Diperlukan sebagai properti pertama.
Sintaks Cron menentukan jadwal dalam waktu UTC.
displayName
String.
Nama ramah opsional yang diberikan ke jadwal tertentu.
branches
includeExcludeFilters.
Nama cabang yang akan disertakan atau dikecualikan untuk memicu eksekusi.
batch
boolean.
Apakah akan menjalankan alur jika eksekusi yang dijadwalkan sebelumnya sedang berlangsung; defaultnya adalah false
. Ini terlepas dari versi repositori alur.
Tabel berikut ini menjelaskan cara always
dan batch
berinteraksi.
Selalu | Batch | Aktivitas |
---|---|---|
false |
false |
Alur hanya berjalan jika ada perubahan sehubungan dengan eksekusi alur terjadwal terakhir yang berhasil. |
false |
true |
Alur hanya berjalan jika ada perubahan sehubungan dengan eksekusi alur terjadwal terakhir yang berhasil, dan tidak ada eksekusi alur terjadwal yang sedang berlangsung. |
true |
false |
Alur berjalan sesuai dengan jadwal cron. |
true |
true |
Alur berjalan sesuai dengan jadwal cron. |
Penting
Ketika always
adalah true
, alur berjalan sesuai dengan jadwal cron, bahkan ketika batch
adalah true
.
always
boolean.
Apakah akan selalu menjalankan alur atau hanya jika ada perubahan kode sumber sejak eksekusi terjadwal terakhir yang berhasil; defaultnya adalah false.
Keterangan
Jika Anda menentukan tidak ada pemicu terjadwal, tidak ada build terjadwal yang terjadi.
Catatan
Jika Anda menentukan exclude
klausul tanpa include
klausul untuk branches
, klausul tersebut setara dengan menentukan *
dalam include
klausul .
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 antarmuka pengguna, hanya pemicu terjadwal yang ditentukan antarmuka pengguna yang aka dijalankan. Untuk menjalankan pemicu terjadwal yang ditentukan YAML di alur YAML, Anda harus menghapus pemicu terjadwal yang ditentukan di antarmuka pengguna pengaturan alur. Setelah semua pemicu terjadwal UI dihapus, dorongan harus dilakukan agar pemicu terjadwal YAML mulai dievaluasi.
Untuk menghapus pemicu terjadwal UI dari alur YAML, lihat Pengaturan UI mengambil alih pemicu terjadwal YAML.
Variabel Build.CronSchedule.DisplayName
Ketika alur berjalan karena pemicu terjadwal cron, variabel yang telah ditentukan Build.CronSchedule.DisplayName
sebelumnya berisi displayName
jadwal cron yang memicu eksekusi alur.
Alur YAML Anda mungkin berisi beberapa jadwal cron, dan Anda mungkin ingin alur Anda menjalankan tahap atau pekerjaan yang berbeda berdasarkan jadwal cron mana yang berjalan. Misalnya, Anda memiliki build malam dan build mingguan, dan Anda ingin menjalankan tahap tertentu hanya selama pembangunan malam. Anda dapat menggunakan Build.CronSchedule.DisplayName
variabel dalam kondisi pekerjaan atau tahap 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 releases/*
cabang, kecuali untuk cabang-cabang di bawah releases/ancient/*
.
Jadwal kedua, build Mingguan, menjalankan alur pada siang hari pada hari Minggu untuk semua releases/*
cabang.
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 Build.CronSchedule.DisplayName
variabel dalam kondisi. Dalam contoh ini, stage1
hanya berjalan jika alur dipicu oleh Daily midnight build
jadwal, dan job3
hanya berjalan jika alur dipicu oleh Weekly Sunday build
jadwal.
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.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk