jobs.job.strategy definition
Ausführungsstrategie für diesen Auftrag.
Implementierungen
Implementierung | Beschreibung |
---|---|
Strategie: matrix, maxParallel | Matrixauftragsstrategie. |
Strategie: parallel | Strategie für parallele Aufträge. |
Strategie: matrix, maxParallel
Die Verwendung einer Matrix generiert Kopien eines Auftrags mit jeweils unterschiedlichen Eingaben. Diese Kopien sind nützlich, um mit verschiedenen Konfigurationen oder Plattformversionen zu testen.
strategy:
matrix: # Matrix defining the job strategy; see the following examples.
{ string1: { string2: string3 }
maxParallel: string # Maximum number of jobs running in parallel.
Eigenschaften
matrix
{ string1: { string2: string3 }.
Matrix, die die Jobstrategie definiert; Sehen Sie sich die folgenden Beispiele an.
maxParallel
Schnur.
Maximale Anzahl parallel ausgeführter Aufträge.
Hinweise
strategy:
matrix: { string1: { string2: string3 } }
maxParallel: number
Für jedes Vorkommen von string1 in der Matrix wird eine Kopie des Auftrags generiert. Der Name string1 ist der Name der Kopie und wird dem Namen des Auftrags angefügt. Für jedes Vorkommen von string2 steht dem Auftrag eine Variable namens string2 mit dem Wert string3 zur Verfügung.
Hinweis
Namen von Matrixkonfigurationen dürfen nur Buchstaben des lateinischen Alphabets (A-Z und a-z), Ziffern (0-9) und Unterstriche (_
) enthalten.
Der Name muss mit einem Buchstaben beginnen.
Außerdem muss ihre Länge mindestens 100 Zeichen betragen.
Das optionale maxParallel
-Schlüsselwort gibt die maximale Anzahl gleichzeitig auszuführender Matrixschenkel an.
Wenn maxParallel
nicht angegeben oder auf 0 festgelegt ist, wird kein Grenzwert angewendet.
Wenn maxParallel
nicht angegeben ist, wird kein Grenzwert angewendet.
Hinweis
Die matrix
-Syntax unterstützt keine automatische Auftragsskalierung, Sie können jedoch ähnliche Funktionen mithilfe des each
-Schlüsselworts implementieren. Ein Beispiel finden Sie unter Ausdrücke.
Beispiele
Erstellen auf mehreren Plattformen
In diesem Beispiel wird eine matrix
Auftragsstrategie verwendet, um auf mehreren Plattformen aufzubauen.
# 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
Diese Pipeline verwendet Skripts , um im integralen Skriptinterpreter jeder Plattform auszuführen: Bash unter macOS und Linux, CMD unter Windows. Weitere Informationen finden Sie unter Skripts mit mehreren Plattformen .
Erstellen auf mehreren Plattformen mit selbstgehosteten und von Microsoft gehosteten Agents
Das folgende Beispiel baut sowohl auf einem selbstgehosteten Agent als auch auf einem von Microsoft gehosteten Agent auf, indem sowohl eine vmImage
als auch eine Pool
Variable angegeben werden, wie im folgenden Beispiel. Geben Sie Azure Pipelines
für den gehosteten Agent als Poolnamen an, und lassen Sie vmImage
für selbstgehostete Agents leer. Das leere vmImage
für den selbstgehosteten Agent kann zu einigen ungewöhnlichen Einträgen in den Protokollen führen, wirkt sich jedoch nicht auf die Pipeline aus.
strategy:
matrix:
microsofthosted:
poolName: Azure Pipelines
vmImage: ubuntu-latest
selfhosted:
poolName: FabrikamPool
vmImage:
pool:
name: $(poolName)
vmImage: $(vmImage)
steps:
- checkout: none
- script: echo test
Erstellen mit verschiedenen Python-Versionen
jobs:
- job: Build
strategy:
matrix:
Python35:
PYTHON_VERSION: '3.5'
Python36:
PYTHON_VERSION: '3.6'
Python37:
PYTHON_VERSION: '3.7'
maxParallel: 2
Diese Matrix erstellt drei Aufträge: „Build Python35“, „Build Python36“ und „Build Python37“. In jedem Auftrag ist eine Variable mit dem Namen PYTHON_VERSION verfügbar. In „Build Python35“ ist die Variable auf „3.5“ festgelegt. Sie ist in „Build Python36“ entsprechend auf „3.6“ festgelegt. Nur zwei Aufträge werden gleichzeitig ausgeführt.
Strategie: parallel
Die Strategie für parallele Aufträge gibt an, wie viele Duplikate eines Auftrags ausgeführt werden sollen.
strategy:
parallel: string # Run the job this many times.
Eigenschaften
parallel
Schnur.
Führen Sie den Auftrag so oft aus.
Hinweise
Die Strategie für parallele Aufträge ist nützlich, um eine große Testmatrix aufzuteilen. Die Visual Studio Test-Aufgabe versteht, wie die Testlast auf die Anzahl geplanter Aufträge aufgeteilt wird.
Beispiele
jobs:
- job: SliceItFourWays
strategy:
parallel: 4