Sdílet prostřednictvím


definice jobs.job.strategy

Strategie provádění pro tuto úlohu

Definice, které odkazují na tuto definici: pipeline, jobs.job

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 vmImagePool 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