definice jobs.job.strategy
Strategie provádění pro tuto úlohu
Implementace
Implementace | Popis |
---|---|
strategie: matrix, maxParallel | Strategie maticových úloh. |
strategie: paralelní | Strategie paralelních úloh. |
strategie: matrix, maxParallel
Použití matice generuje kopie úlohy, z nichž každá má jiný vstup. Tyto kopie jsou užitečné pro testování s různými konfiguracemi nebo verzemi platformy.
strategy:
matrix: # Matrix defining the job strategy; see the following examples.
{ string1: { string2: string3 }
maxParallel: string # Maximum number of jobs running in parallel.
Vlastnosti
matrix
{ string1: { string2: string3 }.
matice definující strategii pracovních míst; projděte si následující příklady.
maxParallel
Řetězec.
Maximální počet paralelně spuštěných úloh
Poznámky
strategy:
matrix: { string1: { string2: string3 } }
maxParallel: number
Pro každý výskyt řetězce string1 v matici se vygeneruje kopie úlohy. Název string1 je název kopie a je připojen k názvu úlohy. Pro každý výskyt řetězce string2 je pro úlohu k dispozici proměnná s názvem string2 s hodnotou string3 .
Poznámka
Názvy konfigurací matice musí obsahovat pouze základní písmena latinky (A–Z a a–z), číslice (0–9) a podtržítka (_
).
Musí začínat písmenem.
Musí mít také délku 100 znaků nebo méně.
Volitelné maxParallel
klíčové slovo určuje maximální počet souběžných částí matice, které se mají spustit najednou.
Pokud maxParallel
je hodnota 0 nezadaná nebo nastavená na hodnotu 0, nepoužije se žádný limit.
Pokud maxParallel
není zadaný, nepoužije se žádný limit.
Poznámka
Syntaxe matrix
nepodporuje automatické škálování úloh, ale podobné funkce můžete implementovat pomocí klíčového each
slova . Příklad najdete v tématu výrazy.
Příklady
Vytváření na různých platformách
Tento příklad používá matrix
strategii úloh k vytvoření na více platformách.
# 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
Tento kanál používá skript ke spuštění v interpretu integrálních skriptů každé platformy: Bash v macOS a Linuxu, CMD ve Windows. Další informace najdete v tématu Skripty pro více platforem .
Sestavování na různých platformách s využitím agentů v místním prostředí a agentů hostovaných Microsoftem
Následující příklad vychází z agenta v místním prostředí i agenta hostovaného Microsoftem tím, že zadá proměnnou vmImage
Pool
i jako v následujícím příkladu. V případě hostovaného agenta jako název fondu zadejte Azure Pipelines
a v případě agentů v místním prostředí ponechte proměnnou vmImage
prázdnou. V případě agenta v místním prostředí může prázdná proměnná vmImage
vést k neobvyklým záznamům v protokolech, které však nemají vliv na kanál.
strategy:
matrix:
microsofthosted:
poolName: Azure Pipelines
vmImage: ubuntu-latest
selfhosted:
poolName: FabrikamPool
vmImage:
pool:
name: $(poolName)
vmImage: $(vmImage)
steps:
- checkout: none
- script: echo test
Sestavení s použitím různých verzí Pythonu
jobs:
- job: Build
strategy:
matrix:
Python35:
PYTHON_VERSION: '3.5'
Python36:
PYTHON_VERSION: '3.6'
Python37:
PYTHON_VERSION: '3.7'
maxParallel: 2
Tato matice vytvoří tři úlohy: Sestavení Python35, Sestavení Python36 a Sestavení Python37. V rámci každé úlohy je k dispozici proměnná s názvem PYTHON_VERSION. V buildu Python35 je proměnná nastavená na 3.5. Podobně je nastavený na "3.6" v "Build Python36". Současně se spouštějí pouze dvě úlohy.
strategie: paralelní
Strategie paralelních úloh určuje, kolik duplicit úlohy se má spustit.
strategy:
parallel: string # Run the job this many times.
Vlastnosti
parallel
Řetězec.
Spusťte úlohu tolikrát.
Poznámky
Strategie paralelních úloh je užitečná pro vytvoření řezu velké testovací matice. Úloha Visual Studio Test rozumí rozdělení testovací zátěže mezi počet naplánovaných úloh.
Příklady
jobs:
- job: SliceItFourWays
strategy:
parallel: 4