تعريف schedules.cron

يحدد المشغل المجدول جدولا يتم بناء الفروع عليه.

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.

التعريفات التي تشير إلى هذا التعريف: الجداول

الخصائص

cron سلسله. مطلوب كخاصية أولى.
بناء جملة Cron الذي يحدد جدولا زمنيا في التوقيت العالمي المتفق عليه.

displayName سلسله.
اسم مألوف اختياري معطا لجدول زمني محدد.

branchesincludeExcludeFilters.
أسماء الفروع المراد تضمينها أو استبعادها لتشغيل تشغيل.

batchمنطقي.
ما إذا كان سيتم تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية إذا كان التشغيل المجدول مسبقا قيد التقدم؛ الافتراضي هو false. هذا بغض النظر عن إصدار مستودع البنية الأساسية لبرنامج ربط العمليات التجارية.

يصف الجدول التالي كيفية always التفاعل.batch

دائماً دُفعة السلوك
false false يتم تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية فقط إذا كان هناك تغيير فيما يتعلق بآخر تشغيل ناجح للبنية الأساسية لبرنامج ربط العمليات التجارية المجدولة.
false true يتم تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية فقط إذا كان هناك تغيير فيما يتعلق بآخر تشغيل ناجح للبنية الأساسية لبرنامج ربط العمليات التجارية المجدولة، ولا يوجد تشغيل مسار مجدول قيد التقدم.
true false تعمل البنية الأساسية لبرنامج ربط العمليات التجارية وفقا لجدول cron.
true true تعمل البنية الأساسية لبرنامج ربط العمليات التجارية وفقا لجدول cron.

هام

عندما always يكون ، trueيتم تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية وفقا لجدول cron، حتى عندما batch يكون true.

alwaysمنطقي.
ما إذا كنت تريد دائما تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية أو فقط إذا كانت هناك تغييرات في التعليمات البرمجية المصدر منذ آخر تشغيل مجدول ناجح؛ الافتراضي هو خطأ.

الملاحظات

إذا قمت بتحديد أي مشغل مجدول، فلن تحدث أي بنيات مجدولة.

ملاحظة

إذا قمت بتحديد عبارة exclude بدون عبارة ل branches، فهذا يعادل التحديد * في العبارة includeinclude .

هام

المشغلات المجدولة المعرفة باستخدام إعدادات البنية الأساسية لبرنامج ربط العمليات التجارية لها الأسبقية على المشغلات المجدولة YAML.

إذا كان مسار YAML يحتوي على كل من مشغلات YAML المجدولة والمشغلات المجدولة المعرفة من واجهة المستخدم، يتم تشغيل المشغلات المجدولة المعرفة بواسطة واجهة المستخدم فقط. لتشغيل المشغلات المجدولة المعرفة من YAML في البنية الأساسية لبرنامج ربط العمليات التجارية YAML، يجب إزالة المشغلات المجدولة المحددة في واجهة مستخدم إعدادات البنية الأساسية لبرنامج ربط العمليات التجارية. بمجرد إزالة جميع المشغلات المجدولة لواجهة المستخدم، يجب إجراء دفع من أجل بدء تقييم المشغلات المجدولة YAML.

لحذف المشغلات المجدولة لواجهة المستخدم من مسار YAML، راجع تجاوز إعدادات واجهة المستخدم للمشغلات المجدولة YAML.

متغير Build.CronSchedule.DisplayName

عند تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية بسبب مشغل مجدول cron، يحتوي المتغير المحدد Build.CronSchedule.DisplayName مسبقا على displayName جدول cron الذي أدى إلى تشغيل المسار.

قد يحتوي مسار YAML الخاص بك على جداول cron متعددة، وقد ترغب في تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك لمراحل أو مهام مختلفة بناء على جدول cron الذي يتم تشغيله. على سبيل المثال، لديك بناء ليلي وبناء أسبوعي، وتريد تشغيل مرحلة معينة فقط أثناء الإنشاء الليلي. يمكنك استخدام Build.CronSchedule.DisplayName المتغير في حالة مهمة أو مرحلة لتحديد ما إذا كنت تريد تشغيل هذه المهمة أو المرحلة.

- 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')

لمزيد من الأمثلة، راجع قسم الأمثلة التالية.

أمثلة

يحدد المثال التالي جدولين.

يقوم الجدول الأول، بناء منتصف الليل اليومي، بتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية في منتصف الليل كل يوم فقط إذا تغيرت التعليمات البرمجية منذ آخر تشغيل مجدول ناجح. يقوم بتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية لجميع mainreleases/* الفروع، باستثناء تلك الفروع ضمن releases/ancient/*.

يقوم الجدول الثاني، إصدار الأحد الأسبوعي، بتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية في ظهر أيام الأحد لجميع releases/* الفروع. يقوم بذلك بغض النظر عما إذا كانت التعليمات البرمجية قد تغيرت منذ آخر تشغيل.

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

لتشغيل مرحلة أو مهمة بشكل مشروط استنادا إلى ما إذا كان قد تمت جدولتها بواسطة مشغل مجدول، استخدم Build.CronSchedule.DisplayName المتغير في شرط. في هذا المثال، stage1 يتم تشغيل فقط إذا تم تشغيل المسار بواسطة Daily midnight build الجدول الزمني، ويتم job3 تشغيله فقط إذا تم تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية بواسطة 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

راجع أيضًا