Share via


jobs.job.strategy definition

Körningsstrategi för det här jobbet.

Definitioner som refererar till den här definitionen: pipeline, jobs.job

Implementeringar

Implementering Description
strategy: matrix, maxParallel Strategi för matrisjobb.
strategi: parallell Parallell jobbstrategi.

strategy: matrix, maxParallel

Användning av en matris genererar kopior av ett jobb, var och en med olika indata. Dessa kopior är användbara för testning mot olika konfigurationer eller plattformsversioner.

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

Egenskaper

matrix { string1: { string2: string3 }.
Matris som definierar jobbstrategin; se följande exempel.

maxParallel Sträng.
Maximalt antal jobb som körs parallellt.

Kommentarer

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

För varje förekomst av sträng1 i matrisen genereras en kopia av jobbet. Namnsträng1 är kopians namn och läggs till i namnet på jobbet. För varje förekomst av string2 är en variabel med namnet string2 med värdet string3 tillgänglig för jobbet.

Anteckning

Matriskonfigurationsnamn får endast innehålla grundläggande latinska alfabetsbeteckningar (A-Z och a-z), siffror (0–9) och understreck (_). De måste börja med en bokstav. Deras längd måste också vara 100 tecken eller färre.

Det valfria maxParallel nyckelordet anger det maximala antalet samtidiga matrisben som ska köras samtidigt.

Om maxParallel är ospecificerad eller inställd på 0 tillämpas ingen gräns.

Om maxParallel är ospecificerad tillämpas ingen gräns.

Anteckning

Syntaxen matrix stöder inte automatisk jobbskalning, men du kan implementera liknande funktioner med hjälp av nyckelordet each . Ett exempel finns i uttryck.

Exempel

Skapa på flera plattformar

I det här exemplet används en matrix jobbstrategi för att bygga på flera plattformar.

# 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

Den här pipelinen använder skript för att köras i varje plattforms integralskripttolkare: Bash på macOS och Linux, CMD på Windows. Mer information finns i skript för flera plattformar .

Skapa på flera plattformar med lokalt installerade agenter och Microsoft-värdbaserade agenter

Följande exempel bygger på både en lokalt installerad agent och en Microsoft-värdbaserad agent genom att ange både en vmImage och en Pool variabel, som i följande exempel. För den värdbaserade agenten anger du Azure Pipelines som poolnamn och du lämnar fältet vmImage tomt för lokalt installerade agenter. Det tomma vmImage-fältet för den lokalt installerade agenten kan resultera i ovanliga poster i loggarna, men de påverkar inte pipelinen.

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

    selfhosted:
      poolName: FabrikamPool
      vmImage:

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

steps:
- checkout: none
- script: echo test

Skapa med olika Python-versioner

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

Den här matrisen skapar tre jobb: "Skapa Python35", "Skapa Python36" och "Skapa Python37". I varje jobb är en variabel med namnet PYTHON_VERSION tillgänglig. I "Build Python35" anges variabeln till "3.5". Det är också inställt på "3.6" i "Skapa Python36". Endast två jobb körs samtidigt.

strategi: parallell

Strategin för parallella jobb anger hur många dubbletter av ett jobb som ska köras.

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

Egenskaper

parallel Sträng.
Kör jobbet så här många gånger.

Kommentarer

Den parallella jobbstrategin är användbar för att dela upp en stor testmatris. Visual Studio-testuppgiften beskriver hur du delar upp testbelastningen över antalet schemalagda jobb.

Exempel

jobs:
- job: SliceItFourWays
  strategy:
    parallel: 4