jobs.job.strategy tanımı

Bu iş için yürütme stratejisi.

Bu tanıma başvuran tanımlar: işlem hattı, jobs.job

Uygulamalar

Uygulama Açıklama
stratejisi: matris, maxParallel Matris iş stratejisi.
stratejisi: paralel Paralel iş stratejisi.

Açıklamalar

Sonraki bir işteki bir işten değişkenlere erişmek için bkz. çok işli bir çıkış değişkeni ayarlama.

strateji: matris, maxParallel

Matris kullanımı, her biri farklı girişe sahip bir işin kopyalarını oluşturur. Bu kopyalar, farklı yapılandırmalara veya platform sürümlerine göre test için kullanışlıdır.

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

Özellikler

matrix { string1: { string2: string3 }.
İş stratejisini tanımlayan Matrisi; aşağıdaki örneklere bakın.

maxParallel dize.
Paralel çalışan iş sayısı üst sınırı.

Açıklamalar

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

matriste dize1 her oluşumu için işin bir kopyası oluşturulur. Dize1 adı kopyanın adıdır ve işin adına eklenir. dizesi2her oluşumu için, dize3 değeriyle string2 adlı bir değişken iş tarafından kullanılabilir.

Uyarı

Matris yapılandırma adları yalnızca temel Latin alfabesi harflerini (A-Z ve a-z), basamakları (0-9) ve alt çizgilerini (_) içermelidir. Bunlar bir harf ile başlamalıdır. Ayrıca uzunlukları 100 karakter veya daha az olmalıdır.

İsteğe bağlı maxParallel anahtar sözcüğü, aynı anda çalıştırılacak en fazla eş zamanlı matris bacak sayısını belirtir.

maxParallel belirtilmezse veya 0 olarak ayarlanırsa, hiçbir sınır uygulanmaz.

Uyarı

matrix söz dizimi otomatik iş ölçeklendirmeyi desteklemez, ancak each anahtar sözcüğünü kullanarak benzer işlevleri uygulayabilirsiniz. Bir örnek için bkz. ifadeleri.

Örnekler

Birden çok platformda derleme

Bu örnekte, birden çok platformda derlemek için matrix bir iş stratejisi kullanılmaktadır.

# 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

Bu işlem hattı, her platformun integral betik yorumlayıcısında çalıştırmak için betik kullanır: macOS ve Linux üzerinde Bash, Windows'ta CMD. Daha fazla bilgi edinmek için bkz. çok platformlu betikler .

Şirket içinde barındırılan ve Microsoft tarafından barındırılan aracıları kullanarak birden çok platformda derleme

Aşağıdaki örnek, aşağıdaki örnekte olduğu gibi hem bir vmImage hem de Pool değişkeni belirterek hem şirket içinde barındırılan aracı hem de Microsoft tarafından barındırılan aracı üzerinde derlenmektedir. Barındırılan aracı için havuz adı olarak Azure Pipelines belirtin ve şirket içinde barındırılan aracılar için vmImage'yi boş bırakın. Şirket içinde barındırılan aracı için boş vmImage günlüklerde bazı olağan dışı girişlere neden olabilir, ancak işlem hattını etkilemez.

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

    selfhosted:
      poolName: FabrikamPool
      vmImage:

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

steps:
- checkout: none
- script: echo test

Farklı Python sürümleri kullanarak derleme

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

Bu matris üç iş oluşturur: "Python35'i derleme", "Python36'yı derleme" ve "Python37'yi derleme." Her işin içinde PYTHON_VERSION adlı bir değişken kullanılabilir. "Python35 derleme" içinde değişken "3.5" olarak ayarlanır. Benzer şekilde "Python36 Derleme" içinde "3.6" olarak ayarlanır. Aynı anda yalnızca iki iş çalışır.

strateji: paralel

Paralel iş stratejisi, bir işin kaç yinelemesinin çalıştırılması gerektiğini belirtir.

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

Özellikler

parallel dize.
İşi bu kadar çok kez çalıştırın.

Açıklamalar

Paralel iş stratejisi, büyük bir test matrisini dilimlemede kullanışlıdır. Visual Studio Test görevi test yükünün zamanlanmış iş sayısına nasıl bölüneceğini anlar.

Örnekler

jobs:
- job: SliceItFourWays
  strategy:
    parallel: 4