Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Strategie provádění pro tuto úlohu
Implementace
Implementace | Popis |
---|---|
strategie : matice, maxParallel | Strategie maticových úloh. |
strategie : paralelní | Strategie paralelních úloh |
Poznámky
Informace o přístupu k proměnným z úlohy v následující úloze najdete v tématu Nastavení výstupní proměnné s více úlohami.
strategie: matice, maxParallel
Použití matice generuje kopie úlohy, z nichž každá má jiný vstup. Tyto kopie jsou užitečné pro testování v různých konfiguracích nebo verzích 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 }.
Matrix definující strategii úlohy; podívejte se na následující příklady.
maxParallel
řetězec.
Maximální počet úloh spuštěných paralelně.
Poznámky
strategy:
matrix: { string1: { string2: string3 } }
maxParallel: number
Pro každý výskyt řetězec1 v matici se vygeneruje kopie úlohy. Název řetězec1 je název kopie a připojí se k názvu úlohy. Pro každý výskyt řetězec2je pro úlohu k dispozici proměnná s názvem string2 s hodnotou řetězec3.
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.
Jejich délka musí být také 100 znaků nebo menší.
Volitelné klíčové slovo maxParallel
určuje maximální počet souběžných maticových nohou, které se mají spustit najednou.
Pokud maxParallel
není zadána nebo je nastavena na hodnotu 0, 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 slova each
. Příklad najdete v tématu výrazy.
Příklady
Vytváření na více platformách
Tento příklad používá strategii úlohy matrix
k sestavení na více platformách.
# 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
Tento kanál používá skript ke spuštění v integrálním interpretu skriptů jednotlivých platforem: Bash v systému macOS a Linux, CMD ve Windows. Další informace najdete v tématu skripty pro více platforem.
Sestavování na několika platformách s využitím agentů hostovaných v místním prostředí a agentů microsoftu
Následující příklad vychází z agenta v místním prostředí i agenta hostovaného Microsoftem zadáním vmImage
i proměnné Pool
, podobně 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. Prázdná vmImage
pro agenta v místním prostředí může vést k neobvyklým položkám v protokolech, ale nebudou mít 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 využ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: Build Python35, Build Python36 a Build 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 buildu Python36. Současně běží jenom dvě úlohy.
strategie: paralelní
Strategie paralelní úlohy určuje, kolik duplicit úlohy se má spustit.
strategy:
parallel: string # Run the job this many times.
Vlastnosti
parallel
řetězec.
tuto úlohu spusťte mnohokrát.
Poznámky
Strategie paralelních úloh je užitečná pro vytvoření řezu rozsáhlé testovací matice. Úloha Visual Studio Test rozumí tomu, jak rozdělit zátěž testu mezi počet naplánovaných úloh.
Příklady
jobs:
- job: SliceItFourWays
strategy:
parallel: 4