jobs.job.strategy tanımı

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

Bu tanıma başvuran tanımlar: pipeline, jobs.job

Uygulamalar

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

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 etmede 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 matris; 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

Dize1'in matristeki her oluşumu için işin bir kopyası oluşturulur. Ad dizesi1 kopyanın adıdır ve işin adına eklenir. Dize2'nin her oluşumu için string2 adlı ve string3 değerini içeren bir değişken iş tarafından kullanılabilir.

Not

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.

Belirtilmemişse veya 0 olarak ayarlandıysa maxParallel , hiçbir sınır uygulanmaz.

Belirtilmemişse maxParallel , hiçbir sınır uygulanmaz.

Not

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

Örnekler

Birden çok platformda derleme

Bu örnekte, birden çok platform üzerinde derleme yapmak için bir matrix iş stratejisi kullanılmaktadır.

# Build NodeJS Express app using Azure Pipelines
# https://learn.microsoft.com/azure/devops/pipelines/ecosystems/javascript?view=azure-devops
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 betiği kullanır: macOS ve Linux üzerinde Bash, Windows'ta CMD. Daha fazla bilgi edinmek için bkz. çok platformlu betikler .

Şirket içi barındırılan ve Microsoft tarafından barındırılan aracıları kullanarak birden çok platformda oluşturma

Aşağıdaki örnek, hem şirket içinde barındırılan aracı hem de Microsoft tarafından barındırılan bir aracı üzerinde, aşağıdaki örnekte olduğu gibi hem bir vmImage hem de bir Pool değişken belirterek 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ğandışı girişlere neden olabilir, ancak bunlar işlem hattını etkilemeyecektir.

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'i derleme" içinde değişkeni "3.5" olarak ayarlanır. Benzer şekilde "Python36 Derleme" içinde "3.6" olarak ayarlanmıştı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 birçok kez çalıştırın.

Açıklamalar

Paralel iş stratejisi, büyük bir test matrisi dilimleme için 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