jobs.job.strategy definition
Strategia wykonywania dla tego zadania.
Implementacje
Implementacja | Opis |
---|---|
strategia : macierz, maxParallel | Strategia zadania macierzy. |
strategia : równoległe | Strategia zadań równoległych. |
Uwagi
Aby uzyskać dostęp do zmiennych z zadania w kolejnym zadaniu, zobacz Set a multi-job output variable.
strategia: macierz, maxParallel
Użycie macierzy generuje kopie zadania, z których każda ma inne dane wejściowe. 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ągu 1 w macierzy jest generowana kopia zadania. Nazwa ciągu 1 jest nazwą kopii i jest dołączana do nazwy zadania. Dla każdego wystąpienia ciągu 2zmienna o nazwie string2 z wartością string3 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 być 100 znaków lub mniejsza.
Opcjonalne słowo kluczowe maxParallel
określa maksymalną liczbę równoczesnych nóg macierzy do uruchomienia jednocześnie.
Jeśli maxParallel
nie jest określona lub ustawiona na 0, 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 expressions.
Przykłady
Tworzenie na wielu platformach
W tym przykładzie użyto strategii zadań matrix
do tworzenia na wielu platformach.
# 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
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. Aby dowiedzieć się więcej, zobacz skrypty wieloplatformowe.
Tworzenie na wielu platformach przy użyciu własnych agentów i hostowanych przez firmę Microsoft
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 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
. Puste vmImage
dla własnego agenta mogą spowodować nietypowe wpisy w dziennikach, ale nie będą 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: "Kompilowanie języka Python35", "Kompilowanie języka Python36" i "Kompilowanie języka Python37". W każdym zadaniu dostępna jest zmienna o nazwie PYTHON_VERSION. W obszarze "Build Python35" zmienna jest ustawiona na "3.5". Podobnie jest ustawiona na wartość "3.6" w obszarze "Build Python36" (Kompilacja języka Python36). Jednocześnie są uruchamiane tylko dwa zadania.
strategia: równoległa
Strategia zadań równoległych 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.
wielokrotnie uruchamiać zadanie.
Uwagi
Strategia zadań równoległych jest przydatna do fragmentowania dużej macierzy testowej. Zadanie Test programu Visual Studio rozumie, jak podzielić obciążenie testowe na liczbę zaplanowanych zadań.
Przykłady
jobs:
- job: SliceItFourWays
strategy:
parallel: 4