Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Estratégia de execução para este trabalho.
Definições que fazem referência a essa definição: de pipeline, jobs.job
Implementações
Implementação | Descrição |
---|---|
estratégia de : matriz, maxParallel | Estratégia de trabalho de matriz. |
estratégia de : paralela | Estratégia de trabalho paralela. |
Observações
Para acessar variáveis de um trabalho em um trabalho subsequente, consulte Definir uma variável de saída de vários trabalhos.
estratégia: matriz, maxParallel
O uso de uma matriz gera cópias de um trabalho, cada uma com entrada diferente. Essas cópias são úteis para testes em diferentes configurações ou versões de 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 }.
Matrix definindo a estratégia de trabalho; confira os exemplos a seguir.
maxParallel
cadeia de caracteres.
Número máximo de trabalhos em execução em paralelo.
Observações
strategy:
matrix: { string1: { string2: string3 } }
maxParallel: number
Para cada ocorrência de cadeia de caracteres1 na matriz, uma cópia do trabalho é gerada. O nome cadeia de caracteres1 é o nome da cópia e é acrescentado ao nome do trabalho. Para cada ocorrência de string2, uma variável chamada string2 com o valor cadeia de caracteres3 está disponível para o trabalho.
Observação
Os nomes de configuração de matriz devem conter apenas letras básicas do alfabeto latino (A-Z e a z), dígitos (0-9) e sublinhados (_
).
Eles devem começar com uma carta.
Além disso, seu comprimento deve ter 100 caracteres ou menos.
A palavra-chave maxParallel
opcional especifica o número máximo de pernas de matriz simultâneas a serem executadas ao mesmo tempo.
Se maxParallel
não for especificado ou definido como 0, nenhum limite será aplicado.
Observação
A sintaxe matrix
não dá suporte ao dimensionamento automático de trabalhos, mas você pode implementar uma funcionalidade semelhante usando a palavra-chave each
. Para obter um exemplo, consulte expressões.
Exemplos
Criar em várias plataformas
Este exemplo usa uma estratégia de trabalho matrix
para criar em várias plataformas.
# 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
Esse pipeline usa script para ser executado no interpretador de script integral de cada plataforma: Bash no macOS e linux, CMD no Windows. Consulte scripts multiplataforma para saber mais.
Criar em várias plataformas usando agentes auto-hospedados e hospedados pela Microsoft
O exemplo a seguir baseia-se em um agente auto-hospedado e em um agente hospedado pela Microsoft, especificando um vmImage
e uma variável Pool
, como o exemplo a seguir. Para o agente hospedado, especifique Azure Pipelines
como o nome do pool e, para agentes auto-hospedados, deixe o vmImage
em branco. A vmImage
em branco para o agente auto-hospedado pode resultar em algumas entradas incomuns nos logs, mas elas 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
Compilar usando diferentes versões do Python
jobs:
- job: Build
strategy:
matrix:
Python35:
PYTHON_VERSION: '3.5'
Python36:
PYTHON_VERSION: '3.6'
Python37:
PYTHON_VERSION: '3.7'
maxParallel: 2
Essa matriz cria três trabalhos: "Criar Python35", "Criar Python36" e "Criar Python37". Em cada trabalho, uma variável chamada PYTHON_VERSION está disponível. Em "Criar Python35", a variável é definida como "3.5". Ele também está definido como "3.6" em "Criar Python36". Apenas dois trabalhos são executados simultaneamente.
estratégia: paralelo
A estratégia de trabalho paralela especifica quantas duplicatas de um trabalho devem ser executadas.
strategy:
parallel: string # Run the job this many times.
Propriedades
parallel
cadeia de caracteres.
executar o trabalho muitas vezes.
Observações
A estratégia de trabalho paralela é útil para cortar uma matriz de teste grande. A tarefa Teste do Visual Studio entende como dividir a carga de teste entre o número de trabalhos agendados.
Exemplos
jobs:
- job: SliceItFourWays
strategy:
parallel: 4