تعريف jobs.job.strategy

استراتيجية التنفيذ لهذه الوظيفة.

التعريفات التي تشير إلى هذا التعريف: البنية الأساسية لبرنامج ربط العمليات التجاريةjobs.job

تطبيقات

تنفيذ الوصف
استراتيجية : مصفوفة، maxParallel استراتيجية وظيفة المصفوفة.
استراتيجية : المتوازية استراتيجية الوظيفة المتوازية.

ملاحظات

للوصول إلى المتغيرات من وظيفة في وظيفة لاحقة، راجع تعيين متغير إخراج متعدد الوظائف.

استراتيجية: مصفوفة، maxParallel

يؤدي استخدام مصفوفة إلى إنشاء نسخ من وظيفة، ولكل منها مدخلات مختلفة. هذه النسخ مفيدة للاختبار مقابل تكوينات مختلفة أو إصدارات النظام الأساسي.

strategy:
  matrix: # Matrix defining the job strategy; see the following examples.
    { string1: { string2: string3 }
  maxParallel: string # Maximum number of jobs running in parallel.

خصائص

matrix { string1: { string2: string3 }.
مصفوفة تحدد استراتيجية العمل؛ راجع الأمثلة التالية.

سلسلة maxParallel.
الحد الأقصى لعدد المهام التي تعمل بالتوازي.

ملاحظات

strategy:
  matrix: { string1: { string2: string3 } }
  maxParallel: number

لكل تكرار string1 في المصفوفة، يتم إنشاء نسخة من المهمة. الاسم string1 هو اسم النسخة ويتم إلحاقه باسم المهمة. لكل تكرار لسلسلة string2، يتوفر متغير يسمى string2 بالقيمة string3 للوظيفة.

إشعار

يجب أن تحتوي أسماء تكوين المصفوفة على أحرف أبجدية لاتينية أساسية فقط (A-Z و a-z) وأرقام (0-9) وتسطير أسفل السطر (_). يجب أن تبدأ بحرف. أيضا، يجب أن يكون طولها 100 حرف أو أقل.

تحدد الكلمة الأساسية الاختيارية maxParallel الحد الأقصى لعدد أرجل المصفوفة المتزامنة لتشغيلها في وقت واحد.

إذا كان maxParallel غير محدد أو تم تعيينه إلى 0، فلن يتم تطبيق أي حد.

إشعار

لا يدعم بناء جملة matrix التحجيم التلقائي للمهمة ولكن يمكنك تنفيذ وظائف مماثلة باستخدام الكلمة الأساسية each. على سبيل المثال، راجع تعبيرات .

امثله

البناء على أنظمة أساسية متعددة

يستخدم هذا المثال استراتيجية وظيفة matrix للبناء على أنظمة أساسية متعددة.

# Build NodeJS Express app using Azure Pipelines
# https://learn.microsoft.com/azure/devops/pipelines/ecosystems/javascript
strategy:
  matrix:
    linux:
      imageName: 'ubuntu-latest'
    mac:
      imageName: 'macOS-latest'
    windows:
      imageName: 'windows-latest'

pool:
  vmImage: $(imageName)

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '8.x'

- script: |
    npm install
    npm test

- task: PublishTestResults@2
  inputs:
    testResultsFiles: '**/TEST-RESULTS.xml'
    testRunTitle: 'Test results for JavaScript'

- task: PublishCodeCoverageResults@1
  inputs: 
    codeCoverageTool: Cobertura
    summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/*coverage.xml'
    reportDirectory: '$(System.DefaultWorkingDirectory)/**/coverage'

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
    includeRootFolder: false

- task: PublishBuildArtifacts@1

يستخدم هذا المسار البرنامج النصي للتشغيل في مترجم البرنامج النصي المتكامل لكل نظام أساسي: Bash على macOS وLinux وCMD على Windows. راجع البرامج النصية متعددة الأنظمة الأساسية لمعرفة المزيد.

البناء على أنظمة أساسية متعددة باستخدام عوامل مستضافة ذاتيا ومستضافة من Microsoft

يعتمد المثال التالي على كل من عامل مستضاف ذاتيا وعامل مستضاف من Microsoft، عن طريق تحديد كل من vmImage ومتغير Pool، مثل المثال التالي. بالنسبة للعامل المستضاف، حدد Azure Pipelines كاسم التجمع، وبالنسبة للوكلاء المستضافين ذاتيا، اترك vmImage فارغا. قد يؤدي vmImage الفارغ للعامل المستضاف ذاتيا إلى بعض الإدخالات غير العادية في السجلات ولكنها لن تؤثر على البنية الأساسية لبرنامج ربط العمليات التجارية.

strategy:
  matrix:
    microsofthosted:
      poolName: Azure Pipelines
      vmImage: ubuntu-latest

    selfhosted:
      poolName: FabrikamPool
      vmImage:

pool:
  name: $(poolName)
  vmImage: $(vmImage)

steps:
- checkout: none
- script: echo test

البناء باستخدام إصدارات Python مختلفة

jobs:
- job: Build
  strategy:
    matrix:
      Python35:
        PYTHON_VERSION: '3.5'
      Python36:
        PYTHON_VERSION: '3.6'
      Python37:
        PYTHON_VERSION: '3.7'
    maxParallel: 2

تنشئ هذه المصفوفة ثلاث وظائف: "Build Python35" و"Build Python36" و"Build Python37". ضمن كل وظيفة، يتوفر متغير يسمى PYTHON_VERSION. في "Build Python35"، يتم تعيين المتغير إلى "3.5". يتم تعيينه بالمثل إلى "3.6" في "Build Python36". يتم تشغيل وظيفتين فقط في وقت واحد.

الاستراتيجية: متوازية

تحدد استراتيجية الوظيفة المتوازية عدد التكرارات التي يجب تشغيلها.

strategy:
  parallel: string # Run the job this many times.

خصائص

سلسلة parallel.
تشغيل المهمة عدة مرات.

ملاحظات

استراتيجية الوظيفة المتوازية مفيدة لتقطيع مصفوفة اختبار كبيرة. يفهم مهمة اختبار Visual Studio كيفية تقسيم تحميل الاختبار عبر عدد المهام المجدولة.

امثله

jobs:
- job: SliceItFourWays
  strategy:
    parallel: 4