définition jobs.job.strategy
Stratégie d’exécution pour ce travail.
Implémentations
Implémentation | Description |
---|---|
stratégie : matrice, maxParallel | Stratégie de travail matriciel. |
stratégie : parallèle | Stratégie de travail parallèle. |
stratégie : matrice, maxParallel
L’utilisation d’une matrice génère des copies d’un travail, chacune avec une entrée différente. Ces copies sont utiles pour effectuer des tests sur différentes configurations ou versions de plateforme.
strategy:
matrix: # Matrix defining the job strategy; see the following examples.
{ string1: { string2: string3 }
maxParallel: string # Maximum number of jobs running in parallel.
Propriétés
matrix
{ string1: { string2: string3 }.
Matrice définissant la stratégie de travail ; Consultez les exemples suivants.
maxParallel
String.
Nombre maximal de travaux en cours d’exécution en parallèle.
Notes
strategy:
matrix: { string1: { string2: string3 } }
maxParallel: number
Pour chaque occurrence de string1 dans la matrice, une copie du travail est générée. La chaîne de nom1 est le nom de la copie et est ajoutée au nom du travail. Pour chaque occurrence de string2, une variable appelée string2 avec la valeur string3 est disponible pour le travail.
Notes
Les noms de configuration de matrice doivent contenir uniquement des lettres alphabétiques latines de base (A-Z et a-z), des chiffres (0-9) et des traits de soulignement (_
).
Ils doivent commencer par une lettre.
En outre, leur longueur doit être de 100 caractères ou moins.
Le mot clé facultatif maxParallel
spécifie le nombre maximal de jambes de matrice simultanées à exécuter simultanément.
Si maxParallel
n’est pas spécifié ou défini sur 0, aucune limite n’est appliquée.
Si maxParallel
n’est pas spécifié, aucune limite n’est appliquée.
Notes
La matrix
syntaxe ne prend pas en charge la mise à l’échelle automatique des travaux, mais vous pouvez implémenter des fonctionnalités similaires à l’aide du each
mot clé. Pour obtenir un exemple, consultez expressions.
Exemples
Générer sur plusieurs plateformes
Cet exemple utilise une matrix
stratégie de travail pour créer sur plusieurs plateformes.
# Build NodeJS Express app using Azure Pipelines
# https://video2.skills-academy.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
Ce pipeline utilise un script pour s’exécuter dans l’interpréteur de script intégral de chaque plateforme : Bash sur macOS et Linux, CMD sur Windows. Pour en savoir plus, consultez Scripts multi-plateformes.
Créer sur plusieurs plateformes à l’aide d’agents auto-hébergés et hébergés par Microsoft
L’exemple suivant s’appuie à la fois sur un agent auto-hébergé et un agent hébergé par Microsoft, en spécifiant à la fois une vmImage
variable et une Pool
variable, comme dans l’exemple suivant. Pour l’agent hébergé, spécifiez Azure Pipelines
comme nom de pool et, pour les agents auto-hébergés, laissez le vmImage
vide. Le vide vmImage
de l’agent auto-hébergé peut entraîner des entrées inhabituelles dans les journaux, mais elles n’affectent pas le pipeline.
strategy:
matrix:
microsofthosted:
poolName: Azure Pipelines
vmImage: ubuntu-latest
selfhosted:
poolName: FabrikamPool
vmImage:
pool:
name: $(poolName)
vmImage: $(vmImage)
steps:
- checkout: none
- script: echo test
Générer à l’aide de différentes versions de Python
jobs:
- job: Build
strategy:
matrix:
Python35:
PYTHON_VERSION: '3.5'
Python36:
PYTHON_VERSION: '3.6'
Python37:
PYTHON_VERSION: '3.7'
maxParallel: 2
Cette matrice crée trois travaux : « Build Python35 », « Build Python36 » et « Build Python37 ». Dans chaque travail, une variable nommée PYTHON_VERSION est disponible. Dans « Générer Python35 », la variable est définie sur « 3.5 ». Il est également défini sur « 3.6 » dans « Générer Python36 ». Seules deux tâches s’exécutent simultanément.
stratégie : parallèle
La stratégie de travail parallèle spécifie le nombre de doublons d’un travail à exécuter.
strategy:
parallel: string # Run the job this many times.
Propriétés
parallel
String.
Exécutez le travail plusieurs fois.
Notes
La stratégie de travail parallèle est utile pour découper une grande matrice de test. La tâche de test Visual Studio comprend comment diviser la charge de test sur le nombre de travaux planifiés.
Exemples
jobs:
- job: SliceItFourWays
strategy:
parallel: 4