Definizione di jobs.job.strategy
Strategia di esecuzione per questo processo.
Implementazioni
Implementazione | Descrizione |
---|---|
strategia : matrice, maxParallel | Strategia del processo matrice. |
strategia di : parallela | Strategia di processo parallela. |
Osservazioni:
Per accedere alle variabili da un processo in un processo successivo, vedere Impostare una variabile di output multi-processo.
strategia: matrice, maxParallel
L'uso di una matrice genera copie di un processo, ognuna con input diverso. Queste copie sono utili per il test su configurazioni o versioni della piattaforma diverse.
strategy:
matrix: # Matrix defining the job strategy; see the following examples.
{ string1: { string2: string3 }
maxParallel: string # Maximum number of jobs running in parallel.
Proprietà
matrix
{ string1: { string2: string3 }.
Matrice che definisce la strategia del processo; vedere gli esempi seguenti.
maxParallel
stringa.
Numero massimo di processi in esecuzione in parallelo.
Osservazioni:
strategy:
matrix: { string1: { string2: string3 } }
maxParallel: number
Per ogni occorrenza di stringa1 nella matrice, viene generata una copia del processo. Il nome stringa1 è il nome della copia e viene aggiunto al nome del processo. Per ogni occorrenza di string2, è disponibile una variabile denominata string2 con il valore string3.
Nota
I nomi di configurazione della matrice devono contenere solo lettere alfabetici latine di base (A-Z e a-z), cifre (0-9) e caratteri di sottolineatura (_
).
Devono iniziare con una lettera.
Inoltre, la loro lunghezza deve essere di 100 caratteri o meno.
La parola chiave facoltativa maxParallel
specifica il numero massimo di gambe della matrice simultanee da eseguire contemporaneamente.
Se maxParallel
non è specificato o impostato su 0, non viene applicato alcun limite.
Nota
La sintassi matrix
non supporta il ridimensionamento automatico dei processi, ma è possibile implementare funzionalità simili usando la parola chiave each
. Per un esempio, vedere espressioni .
Esempi
Creare su più piattaforme
In questo esempio viene usata una strategia di processo matrix
per la compilazione su più piattaforme.
# 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
Questa pipeline usa script per l'esecuzione in ogni interprete di script integrale della piattaforma: Bash in macOS e Linux, CMD in Windows. Per altre informazioni, vedere script multipiattaforma.
Creare su più piattaforme usando agenti ospitati da Microsoft e self-hosted
L'esempio seguente si basa sia su un agente self-hosted che su un agente ospitato da Microsoft, specificando sia un vmImage
che una variabile Pool
, come nell'esempio seguente. Per l'agente ospitato, specificare Azure Pipelines
come nome del pool e per gli agenti self-hosted, lasciare vmImage
vuoto. Il vmImage
vuoto per l'agente self-hosted può comportare alcune voci insolite nei log, ma non influiscono sulla 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
Compilare con diverse versioni di Python
jobs:
- job: Build
strategy:
matrix:
Python35:
PYTHON_VERSION: '3.5'
Python36:
PYTHON_VERSION: '3.6'
Python37:
PYTHON_VERSION: '3.7'
maxParallel: 2
Questa matrice crea tre processi: "Build Python35", "Build Python36" e "Build Python37". All'interno di ogni processo è disponibile una variabile denominata PYTHON_VERSION. In "Build Python35" la variabile è impostata su "3.5". È analogamente impostato su "3.6" in "Build Python36". Solo due processi vengono eseguiti contemporaneamente.
strategia: parallela
La strategia del processo parallelo specifica il numero di duplicati di un processo da eseguire.
strategy:
parallel: string # Run the job this many times.
Proprietà
parallel
stringa.
Eseguire il processo molte volte.
Osservazioni:
La strategia del processo parallelo è utile per suddividere una matrice di test di grandi dimensioni. L'attività di test di Visual Studio comprende come dividere il carico di test tra il numero di processi pianificati.
Esempi
jobs:
- job: SliceItFourWays
strategy:
parallel: 4