Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Uitvoeringsstrategie voor deze taak.
Implementaties
Implementatie | Beschrijving |
---|---|
strategie: matrix, maxParallel | Matrixtaakstrategie. |
strategie: parallelle | Parallelle taakstrategie. |
Opmerkingen
Zie Een uitvoervariabele met meerdere taken instellenvoor toegang tot variabelen vanuit een taak in een volgende taak.
strategie: matrix, maxParallel
Met behulp van een matrix worden kopieën van een taak gegenereerd, elk met verschillende invoer. Deze kopieën zijn handig voor het testen op basis van verschillende configuraties of platformversies.
strategy:
matrix: # Matrix defining the job strategy; see the following examples.
{ string1: { string2: string3 }
maxParallel: string # Maximum number of jobs running in parallel.
Eigenschappen
matrix
{ tekenreeks1: { tekenreeks2: string3 }.
Matrix die de taakstrategie definieert; zie de volgende voorbeelden.
maxParallel
tekenreeks.
Maximum aantal taken dat parallel wordt uitgevoerd.
Opmerkingen
strategy:
matrix: { string1: { string2: string3 } }
maxParallel: number
Voor elk exemplaar van tekenreeks1 in de matrix wordt een kopie van de taak gegenereerd. De naam tekenreeks1 is de naam van de kopie en wordt toegevoegd aan de naam van de taak. Voor elk exemplaar van tekenreeks2is een variabele met de naam tekenreeks2 met de waarde tekenreeks3 beschikbaar voor de taak.
Notitie
Matrixconfiguratienamen mogen alleen latijnse letters (A-Z en a-z), cijfers (0-9) en onderstrepingstekens (_
) bevatten.
Ze moeten beginnen met een letter.
De lengte moet ook 100 tekens of minder zijn.
Het optionele maxParallel
trefwoord geeft het maximum aantal gelijktijdige matrixbenen aan dat tegelijk moet worden uitgevoerd.
Als maxParallel
niet is opgegeven of is ingesteld op 0, wordt er geen limiet toegepast.
Notitie
De syntaxis van matrix
biedt geen ondersteuning voor automatisch schalen van taken, maar u kunt vergelijkbare functionaliteit implementeren met behulp van het each
trefwoord. Zie expressiesvoor een voorbeeld.
Voorbeelden
Bouwen op meerdere platforms
In dit voorbeeld wordt een matrix
taakstrategie gebruikt om op meerdere platforms te bouwen.
# 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
Deze pijplijn maakt gebruik van script om te worden uitgevoerd in de integrale script-interpreter van elk platform: Bash op macOS en Linux, CMD in Windows. Zie scripts voor meerdere platforms voor meer informatie.
Bouwen op meerdere platforms met zelf-hostende en door Microsoft gehoste agents
Het volgende voorbeeld is gebaseerd op zowel een zelf-hostende agent als een door Microsoft gehoste agent door zowel een vmImage
als een Pool
variabele op te geven, zoals in het volgende voorbeeld. Geef Azure Pipelines
als de poolnaam op en laat voor zelf-hostende agents de waarde vmImage
leeg. De lege vmImage
voor de zelf-hostende agent kan leiden tot enkele ongebruikelijke vermeldingen in de logboeken, maar deze hebben geen invloed op de pijplijn.
strategy:
matrix:
microsofthosted:
poolName: Azure Pipelines
vmImage: ubuntu-latest
selfhosted:
poolName: FabrikamPool
vmImage:
pool:
name: $(poolName)
vmImage: $(vmImage)
steps:
- checkout: none
- script: echo test
Bouwen met verschillende Python-versies
jobs:
- job: Build
strategy:
matrix:
Python35:
PYTHON_VERSION: '3.5'
Python36:
PYTHON_VERSION: '3.6'
Python37:
PYTHON_VERSION: '3.7'
maxParallel: 2
Met deze matrix worden drie taken gemaakt: 'Build Python35', 'Build Python36' en 'Build Python37'. Binnen elke taak is een variabele met de naam PYTHON_VERSION beschikbaar. In 'Build Python35' wordt de variabele ingesteld op '3.5'. Het is ook ingesteld op '3.6' in 'Build Python36'. Er worden slechts twee taken tegelijk uitgevoerd.
strategie: parallel
De strategie voor parallelle taken geeft aan hoeveel duplicaten van een taak moeten worden uitgevoerd.
strategy:
parallel: string # Run the job this many times.
Eigenschappen
parallel
tekenreeks.
de taak dit vaak uitvoeren.
Opmerkingen
De strategie voor parallelle taken is handig voor het segmenteren van een grote testmatrix. De Visual Studio Test-taak begrijpt hoe u de belasting van de test over het aantal geplande taken kunt verdelen.
Voorbeelden
jobs:
- job: SliceItFourWays
strategy:
parallel: 4