definition jobs.job.strategy
Ausführungsstrategie für diesen Auftrag.
Ausführungen
Implementierung | BESCHREIBUNG |
---|---|
Strategie: Matrix, maxParallel | Matrixauftragsstrategie. |
Strategie: parallele | Parallele Jobstrategie. |
Bemerkungen
Informationen zum Zugreifen auf Variablen aus einem Auftrag in einem nachfolgenden Auftrag finden Sie unter Festlegen einer Ausgabevariable mit mehreren Stellen.
Strategie: Matrix, maxParallel
Die Verwendung einer Matrix generiert Kopien eines Auftrags, jeweils mit unterschiedlichen Eingaben. Diese Kopien eignen sich zum Testen mit unterschiedlichen Konfigurationen oder Plattformversionen.
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
Zeichenfolge.
Maximale Anzahl von Aufträgen, die parallel ausgeführt werden.
Bemerkungen
strategy:
matrix: { string1: { string2: string3 } }
maxParallel: number
Für jedes Vorkommen von Zeichenfolge1 in der Matrix wird eine Kopie des Auftrags generiert. Der Name Zeichenfolge1 ist der Name der Kopie und wird an den Namen des Auftrags angefügt. Für jedes Vorkommen von Zeichenfolge2ist eine Variable mit dem Namen Zeichenfolge2 mit dem Wert Zeichenfolge3 für den Auftrag verfügbar.
Hinweis
Matrixkonfigurationsnamen dürfen nur einfache lateinische Alphabetbuchstaben (A-Z und a-z), Ziffern (0-9) und Unterstriche (_
) enthalten.
Sie müssen mit einem Brief beginnen.
Außerdem muss die Länge maximal 100 Zeichen lang sein.
Das optionale maxParallel
Schlüsselwort gibt die maximale Anzahl gleichzeitiger Matrixbeine an, die gleichzeitig ausgeführt werden sollen.
Wenn maxParallel
nicht angegeben ist oder auf 0 festgelegt ist, wird kein Grenzwert angewendet.
Hinweis
Die matrix
syntax unterstützt keine automatische Auftragsskalierung, Sie können jedoch ähnliche Funktionen mithilfe des schlüsselworts each
implementieren. Ein Beispiel finden Sie unter Ausdrücke.
Beispiele
Erstellen auf mehreren Plattformen
In diesem Beispiel wird eine matrix
Jobstrategie verwendet, um auf mehreren Plattformen aufzubauen.
# 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
Diese Pipeline verwendet Skript- für die Ausführung im integralen Skriptdolmetscher jeder Plattform: Bash unter macOS und Linux, CMD unter Windows. Weitere Informationen finden Sie multiplattformbasierte Skripts.
Erstellen auf mehreren Plattformen mithilfe von selbst gehosteten und von Microsoft gehosteten Agents
Im folgenden Beispiel wird sowohl ein selbst gehosteter Agent als auch ein von Microsoft gehosteter Agent verwendet, 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. Die leere vmImage
für den selbst gehosteten Agent kann zu ungewöhnlichen Einträgen in den Protokollen führen, sie wirken 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". Innerhalb jedes Auftrags ist eine Variable mit dem Namen PYTHON_VERSION verfügbar. In "Build Python35" wird die Variable auf "3.5" festgelegt. Es ist ebenfalls auf "3.6" in "Build Python36" festgelegt. Nur zwei Aufträge werden gleichzeitig ausgeführt.
Strategie: parallel
Die Parallelauftragsstrategie gibt an, wie viele Duplikate eines Auftrags ausgeführt werden sollen.
strategy:
parallel: string # Run the job this many times.
Eigenschaften
parallel
Zeichenfolge.
Führen Sie den Auftrag so oft aus.
Bemerkungen
Die parallele Auftragsstrategie ist nützlich, um eine große Testmatrix zu slicingen. Die Visual Studio Test-Aufgabe versteht, wie die Testlast über die Anzahl der geplanten Aufträge verteilt wird.
Beispiele
jobs:
- job: SliceItFourWays
strategy:
parallel: 4