Compartilhar via


definição de jobs.job.strategy

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