jobs.job.strategy definíció

Végrehajtási stratégia ehhez a feladathoz.

A definícióra hivatkozó definíciók: folyamat, jobs.job

Megvalósítások

Implementálás Description
stratégia: mátrix, maxParallel Mátrixfeladat-stratégia.
stratégia: párhuzamos Párhuzamos feladatstratégia.

stratégia: mátrix, maxParallel

A mátrix használata egy feladat másolatait hozza létre, mindegyik különböző bemenettel. Ezek a példányok különböző konfigurációk vagy platformverziók teszteléséhez hasznosak.

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

Tulajdonságok

matrix { string1: { string2: string3 }.
A feladatstratégiát meghatározó mátrix; lásd az alábbi példákat.

maxParallel Karakterlánc.
Párhuzamosan futó feladatok maximális száma.

Megjegyzések

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

A mátrixban a sztring1 minden előfordulásához létre kell hozni a feladat másolatát. A sztring1 név a másolat neve, és hozzá van fűzve a feladat nevéhez. A karakterlánc2 minden előfordulásához elérhető a feladat számára egy string2 nevű, karakterlánc3 értékű változó.

Megjegyzés

A mátrixkonfigurációs nevek csak egyszerű latin betűs betűket (A-Z és a-z), számjegyeket (0-9) és aláhúzásjeleket (_) tartalmazhatnak. Az oszlopok nevének betűvel kell kezdődnie. Emellett a hosszuknak legalább 100 karakternek kell lennie.

Az opcionális maxParallel kulcsszó az egyidejűleg futtatható mátrixlábak maximális számát határozza meg.

Ha maxParallel nincs meghatározva, vagy 0-ra van állítva, a rendszer nem alkalmaz korlátot.

Ha maxParallel nincs meghatározva, a rendszer nem alkalmaz korlátot.

Megjegyzés

A matrix szintaxis nem támogatja az automatikus feladatskálázást, de a kulcsszó használatával each hasonló funkciókat valósíthat meg. Példa: kifejezések.

Példák

Több platformra való buildelés

Ez a példa egy feladatstratégiát matrix használ, amely több platformra épít.

# 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

Ez a folyamat szkriptet használ az egyes platformok integrált szkript-értelmezőjében való futtatáshoz: Bash macOS és Linux rendszeren, CMD Windows rendszeren. További információt a többplatformos szkriptek című témakörben talál.

Több platformra építhet saját üzemeltetésű és Microsoft által üzemeltetett ügynökök használatával

Az alábbi példa egy saját üzemeltetésű ügynökre és egy Microsoft által üzemeltetett ügynökre is épül egy és egy Pool változó megadásávalvmImage, például az alábbi példában. A bérelt ügynök esetében adja meg az Azure Pipelines készletnevet, és a saját üzemeltetésű ügynökök esetében hagyja üresen a vmImage mezőt. A saját üzemeltetésű ügynök üres vmImage mezője miatt néhány szokatlan bejegyzés jelenhet meg a naplókban, de ezek nem lesznek hatással a folyamatra.

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

    selfhosted:
      poolName: FabrikamPool
      vmImage:

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

steps:
- checkout: none
- script: echo test

Buildelés különböző Python-verziók használatával

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

Ez a mátrix három feladatot hoz létre: "Python35-build", "Python36-build" és "Python37-build". Minden feladaton belül elérhető egy PYTHON_VERSION nevű változó. A "Build Python35" (Python35 buildelése) változó értéke "3.5". Hasonlóképpen a "3.6" értékre van állítva a "Python36-buildben". Egyszerre csak két feladat fut.

stratégia: párhuzamos

A párhuzamos feladatstratégia határozza meg, hogy egy feladat hány duplikátumát kell futtatni.

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

Tulajdonságok

parallel Karakterlánc.
Futtassa a feladatot ennyiszer.

Megjegyzések

A párhuzamos feladatstratégia nagy tesztmátrixok szeletelése esetén hasznos. A Visual Studio tesztfeladata bemutatja, hogyan oszthatja el a tesztterhelést az ütemezett feladatok száma között.

Példák

jobs:
- job: SliceItFourWays
  strategy:
    parallel: 4