jobs.job.strategy definition
Strategia wykonywania dla tego zadania.
Implementacje
Implementacja | Opis |
---|---|
strategia: macierz, maxParallel | Strategia zadania macierzy. |
strategia: równoległa | Strategia równoległego zadania. |
strategia: macierz, maxParallel
Użycie macierzy generuje kopie zadania z różnymi danymi wejściowymi. Te kopie są przydatne do testowania pod kątem różnych konfiguracji lub wersji platformy.
strategy:
matrix: # Matrix defining the job strategy; see the following examples.
{ string1: { string2: string3 }
maxParallel: string # Maximum number of jobs running in parallel.
Właściwości
matrix
{ string1: { string2: string3 }.
Macierz definiująca strategię zadania; zapoznaj się z poniższymi przykładami.
maxParallel
Ciąg.
Maksymalna liczba zadań uruchomionych równolegle.
Uwagi
strategy:
matrix: { string1: { string2: string3 } }
maxParallel: number
Dla każdego wystąpienia ciągu1 w macierzy jest generowana kopia zadania. Ciąg nazwy1 jest nazwą kopii i jest dołączany do nazwy zadania. Dla każdego wystąpienia ciągu2 zmienna o nazwie string2 z ciągiem wartości3 jest dostępna dla zadania.
Uwaga
Nazwy konfiguracji macierzy muszą zawierać tylko podstawowe litery alfabetu łacińskiego (A-Z i a-z), cyfry (0–9) i podkreślenia (_
).
Muszą zaczynać się od litery.
Ponadto ich długość musi wynosić 100 znaków lub mniej.
Opcjonalne maxParallel
słowo kluczowe określa maksymalną liczbę równoczesnych nóg macierzy do uruchomienia jednocześnie.
Jeśli maxParallel
wartość jest nieokreślona lub ustawiona na 0, nie zastosowano żadnego limitu.
Jeśli maxParallel
nie określono żadnego limitu, nie zostanie zastosowany żaden limit.
Uwaga
Składnia matrix
nie obsługuje automatycznego skalowania zadań, ale można zaimplementować podobne funkcje przy użyciu słowa kluczowego each
. Aby zapoznać się z przykładem, zobacz wyrażenia.
Przykłady
Tworzenie na wielu platformach
W tym przykładzie użyto matrix
strategii zadania do budowy na wielu platformach.
# 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
Ten potok używa skryptu do uruchamiania w interpreterze skryptów całkowitych każdej platformy: Bash w systemach macOS i Linux, CMD w systemie Windows. Zobacz skrypty wieloplatformowe , aby dowiedzieć się więcej.
Tworzenie na wielu platformach przy użyciu własnych i hostowanych przez firmę Microsoft agentów
Poniższy przykład opiera się zarówno na własnym agencie, jak i na agencie hostowanym przez firmę Microsoft, określając zarówno zmienną, vmImage
jak i zmienną Pool
, jak w poniższym przykładzie. W przypadku hostowanego agenta określ wartość Azure Pipelines
jako nazwę puli, a dla własnych agentów pozostaw pustą wartość vmImage
. Pusta wartość vmImage
dla własnego agenta może spowodować nietypowe wpisy w dziennikach, ale nie będą one miały wpływu na potok.
strategy:
matrix:
microsofthosted:
poolName: Azure Pipelines
vmImage: ubuntu-latest
selfhosted:
poolName: FabrikamPool
vmImage:
pool:
name: $(poolName)
vmImage: $(vmImage)
steps:
- checkout: none
- script: echo test
Kompilowanie przy użyciu różnych wersji języka Python
jobs:
- job: Build
strategy:
matrix:
Python35:
PYTHON_VERSION: '3.5'
Python36:
PYTHON_VERSION: '3.6'
Python37:
PYTHON_VERSION: '3.7'
maxParallel: 2
Ta macierz tworzy trzy zadania: "Build Python35", "Build Python36" (Kompilowanie języka Python36) i "Build Python37". W każdym zadaniu dostępna jest zmienna o nazwie PYTHON_VERSION. W obszarze "Build Python35" zmienna jest ustawiona na "3.5". Jest ona również ustawiona na "3.6" w sekcji "Build Python36" (Kompilowanie języka Python36). Jednocześnie są uruchamiane tylko dwa zadania.
strategia: równoległa
Strategia równoległego zadania określa liczbę duplikatów zadania, które należy uruchomić.
strategy:
parallel: string # Run the job this many times.
Właściwości
parallel
Ciąg.
Uruchom to zadanie wiele razy.
Uwagi
Strategia zadań równoległych jest przydatna do fragmentowania dużej macierzy testowej. Zadanie testowe programu Visual Studio rozumie, jak podzielić obciążenie testowe na liczbę zaplanowanych zadań.
Przykłady
jobs:
- job: SliceItFourWays
strategy:
parallel: 4