definição jobs.job.strategy
Estratégia de execução para esta tarefa.
Implementações
Implementação | Descrição |
---|---|
estratégia: matriz, maxParallel | Estratégia de tarefas de matriz. |
estratégia: paralela | Estratégia de tarefa paralela. |
estratégia: matriz, maxParallel
A utilização de uma matriz gera cópias de uma tarefa, cada uma com entradas diferentes. Estas cópias são úteis para testar diferentes configurações ou versões da plataforma.
strategy:
matrix: # Matrix defining the job strategy; see the following examples.
{ string1: { string2: string3 }
maxParallel: string # Maximum number of jobs running in parallel.
Propriedades
matrix
{ string1: { string2: string3 }.
Matriz que define a estratégia de trabalho; veja os exemplos seguintes.
maxParallel
cadeia.
Número máximo de tarefas em execução em paralelo.
Observações
strategy:
matrix: { string1: { string2: string3 } }
maxParallel: number
Para cada ocorrência de string1 na matriz, é gerada uma cópia da tarefa. A cadeia de nome1 é o nome da cópia e é anexada ao nome da tarefa. Para cada ocorrência de cadeia2, uma variável chamada string2 com a cadeia de valor3 está disponível para a tarefa.
Nota
Os nomes de configuração da matriz têm de conter apenas letras básicas do alfabeto latino (A-Z e a-z), dígitos (0-9) e carateres de sublinhado (_
).
O nome tem de começar por uma letra.
Além disso, o seu comprimento tem de ter 100 carateres ou menos.
A palavra-chave opcional maxParallel
especifica o número máximo de pernas de matriz simultâneas a executar ao mesmo tempo.
Se maxParallel
não for especificado ou definido como 0, não é aplicado qualquer limite.
Se maxParallel
não for especificado, não é aplicado nenhum limite.
Nota
A matrix
sintaxe não suporta o dimensionamento automático de tarefas, mas pode implementar funcionalidades semelhantes com a each
palavra-chave. Por exemplo, veja expressões.
Exemplos
Criar em várias plataformas
Este exemplo utiliza uma estratégia de matrix
trabalho para criar em várias plataformas.
# 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
Este pipeline utiliza script para ser executado no interpretador de script integral de cada plataforma: Bash no macOS e Linux, CMD no Windows. Veja scripts de várias plataformas para saber mais.
Criar em várias plataformas com agentes autoalojados e alojados na Microsoft
O exemplo seguinte baseia-se num agente autoalojado e num agente alojado pela Microsoft, ao especificar uma vmImage
variável e uma Pool
variável, como no exemplo seguinte. Para o agente alojado, especifique Azure Pipelines
como o nome do conjunto. Para agentes autoalojados, deixe vmImage
em branco. O espaço em branco vmImage
para o agente autoalojado pode resultar em algumas entradas invulgares nos registos, mas não afetarão o 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
Criar com versões diferentes do Python
jobs:
- job: Build
strategy:
matrix:
Python35:
PYTHON_VERSION: '3.5'
Python36:
PYTHON_VERSION: '3.6'
Python37:
PYTHON_VERSION: '3.7'
maxParallel: 2
Esta matriz cria três tarefas: "Compilar Python35", "Compilar Python36" e "Compilar Python37". Em cada tarefa, está disponível uma variável com o nome PYTHON_VERSION. Em "Build Python35", a variável está definida como "3.5". Também está definido como "3.6" em "Compilar Python36". Apenas duas tarefas são executadas em simultâneo.
estratégia: paralela
A estratégia de tarefa paralela especifica quantos duplicados de uma tarefa devem ser executados.
strategy:
parallel: string # Run the job this many times.
Propriedades
parallel
cadeia.
Execute a tarefa várias vezes.
Observações
A estratégia de tarefa paralela é útil para cortar uma matriz de teste grande. A tarefa de Teste do Visual Studio compreende como dividir a carga de teste pelo número de tarefas agendadas.
Exemplos
jobs:
- job: SliceItFourWays
strategy:
parallel: 4