jobs.job.strategy definition
Körningsstrategi för det här jobbet.
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