مشاركة عبر


تعريف stages.stage

المراحل هي مجموعة من الوظائف ذات الصلة. بشكل افتراضي، يتم تشغيل المراحل بشكل تسلسلي. تبدأ كل مرحلة فقط بعد اكتمال المرحلة السابقة ما لم يتم تحديد خلاف ذلك عبر خاصية 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.

التعريفات التي تشير إلى هذا التعريف: مراحل

خصائص

سلسلة stage. مطلوب كخاصية أولى.
معرف للمرحلة.

سلسلة displayName.
اسم يمكن للبشر قراءته للمرحلة.

تجمع pool.
Pool حيث سيتم تشغيل الوظائف في هذه المرحلة ما لم يتم تحديد خلاف ذلك.

سلسلة dependsOn | قائمة السلاسل.
أي مراحل يجب أن تكتمل قبل هذه المرحلة. بشكل افتراضي، يتم تشغيل المراحل بشكل تسلسلي بالترتيب المحدد في المسار. حدد dependsOn: [] لمرحلة إذا كان لا يجب أن تعتمد على المرحلة السابقة في المسار.

سلسلة condition.
تقييم تعبير الشرط هذا لتحديد ما إذا كان سيتم تشغيل هذه المرحلة أم لا.

المتغيرات variables.
المتغيرات الخاصة بالمرحلة.

الوظائف jobs.
الوظائف التي تشكل المرحلة.

سلسلة lockBehavior.
يجب أن تظهر طلبات تأمين السلوك من هذه المرحلة فيما يتعلق بطلبات التأمين الحصرية الأخرى. تسلسلي | runLatest.

سلسلة trigger.
مشغل المرحلة يدويا أو تلقائيا (افتراضي). يدوي | تلقائي.

isSkippable المنطقية .
الإعداد خطأ يمنع تخطي المرحلة. بشكل افتراضي، يكون دائما صحيحا.

templateContext templateContext.
المعلومات المتعلقة بالمرحلة التي تم تمريرها من البنية الأساسية لبرنامج ربط العمليات التجارية عند توسيع قالب. لمزيد من المعلومات حول templateContext، راجع يمكن الآن تمرير قوالب مسارات YAML الموسعة معلومات السياق للمراحل والمهام والنشرات وقوالب - استخدم templateContext لتمرير الخصائص إلى القوالب.

ملاحظات

لمزيد من المعلومات حول templateContext، راجع يمكن الآن تمرير قوالب مسارات YAML الموسعة معلومات السياق للمراحل والمهام والنشرات وقوالب - استخدم templateContext لتمرير الخصائص إلى القوالب.

استخدم التحقق من الموافقة للتحكم يدويا في وقت تشغيل المرحلة. تستخدم هذه الفحوصات عادة للتحكم في عمليات النشر إلى بيئات الإنتاج.

الفحوصات هي آلية متاحة لمالك المورد . وهي تتحكم عندما تستهلك مرحلة في مسار مورد. بصفتك مالك مورد مثل بيئة، يمكنك تحديد عمليات التحقق المطلوبة قبل أن تبدأ المرحلة التي تستهلك المورد.

حاليا، يتم دعم عمليات التحقق من الموافقة اليدوية على بيئات . لمزيد من المعلومات، راجع الموافقات.

تأمين حصري

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

يمكنك تكوين سلوك التحقق من التأمين الحصري باستخدام خاصية lockBehavior، والتي تحتوي على قيمتين:

  • runLatest - فقط أحدث تشغيل يحصل على التأمين للمورد. هذه هي القيمة الافتراضية إذا لم يتم تحديد lockBehavior.
  • sequential - تحصل جميع عمليات التشغيل على التأمين بشكل تسلسلي إلى المورد المحمي.

يعد إلغاء عمليات التشغيل القديمة نهجا جيدا عندما تكون الإصدارات تراكمية وتحتوي على جميع تغييرات التعليمات البرمجية من عمليات التشغيل السابقة. ومع ذلك، هناك بعض المسارات التي لا تكون فيها تغييرات التعليمات البرمجية تراكمية. من خلال تكوين خاصية lockBehavior، يمكنك اختيار السماح لجميع عمليات التشغيل بالمتابعة والتوزيع بشكل تسلسلي إلى بيئة ما، أو الاحتفاظ بالسلوك السابق لإلغاء عمليات التشغيل القديمة والسماح بأحدثها فقط. تعني قيمة sequential أن جميع عمليات التشغيل تحصل على التأمين بشكل تسلسلي إلى المورد المحمي. تعني قيمة runLatest أن أحدث تشغيل فقط يكتسب التأمين على المورد.

لاستخدام التحقق من التأمين الحصري مع عمليات نشر sequential أو runLatest، اتبع الخطوات التالية:

  1. تمكين التحقق من التأمين الحصري على البيئة (أو مورد محمي آخر).
  2. في ملف YAML للبنية الأساسية لبرنامج ربط العمليات التجارية، حدد خاصية جديدة تسمى lockBehavior. يمكن تحديد هذا للبنية الأساسية لبرنامج ربط العمليات التجارية بأكملها أو لمرحلة معينة:

تعيين على مرحلة:

stages:
- stage: A
  lockBehavior: sequential
  jobs:
  - job: Job
    steps:
    - script: Hey!

تعيين على البنية الأساسية لبرنامج ربط العمليات التجارية:

lockBehavior: runLatest
stages:
- stage: A
  jobs:
  - job: Job
    steps:
    - script: Hey!

تأمين حصري على مستوى المرحلة

تتطلب بعض حالات الاستخدام البنية الأساسية لبرنامج ربط العمليات التجارية للوصول إلى مورد معين مرة واحدة فقط في أي وقت. لدعم هذه الحالة، لدينا فحص التأمين الحصري الموضح في القسم السابق..

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

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

امثله

يعمل هذا المثال على ثلاث مراحل، واحدة تلو الأخرى. تقوم المرحلة الوسطى بتشغيل وظيفتين بالتوازي.

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!

يعمل هذا المثال على مرحلتين بالتوازي. للإيجاز، يتم حذف الوظائف والخطوات.

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

راجع أيضًا

تعرف على المزيد حول مراحل وشروط ومتغيرات .