definición de jobs.job.strategy
Estrategia de ejecución para este trabajo.
Definiciones que hacen referencia a esta definición: canalización, jobs.job
Implementaciones
Implementación | Descripción |
---|---|
strategy: matrix, maxParallel | Estrategia de trabajo de matriz. |
estrategia: paralela | Estrategia de trabajo en paralelo. |
strategy: matrix, maxParallel
El uso de una matriz genera copias de un trabajo, cada una con una entrada diferente. Estas copias son útiles para las pruebas en diferentes configuraciones o versiones 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.
Propiedades
matrix
{ string1: { string2: string3 }.
Matriz que define la estrategia de trabajo; consulte los ejemplos siguientes.
maxParallel
Cadena.
Número máximo de trabajos que se ejecutan en paralelo.
Comentarios
strategy:
matrix: { string1: { string2: string3 } }
maxParallel: number
Para cada aparición de string1 en la matriz, se genera una copia del trabajo. El nombre string1 es el nombre de la copia y se anexa al nombre del trabajo. Para cada aparición de string2, una variable denominada string2 con el valor string3 está disponible para el trabajo.
Nota:
Los nombres de configuración de matriz solo deben contener letras alfabéticas latinas básicas (A-Z y a-z), dígitos (0-9) y caracteres de subrayado (_
).
Deben empezar con una letra.
Además, su longitud debe tener 100 caracteres o menos.
La palabra clave opcional maxParallel
especifica el número máximo de segmentos de matriz simultáneos que se ejecutarán a la vez.
Si maxParallel
no se especifica o se establece en 0, no se aplica ningún límite.
Si maxParallel
no se especifica, no se aplica ningún límite.
Nota:
La sintaxis matrix
no admite el escalado automático de trabajos, pero puede implementar una funcionalidad similar mediante la palabra clave each
. Para obtener un ejemplo, vea expresiones.
Ejemplos
Compilar en varias plataformas
En este ejemplo se usa una matrix
estrategia de trabajo para crear en varias 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
Esta canalización usa script para ejecutarse en el intérprete de scripts integrales de cada plataforma: Bash en macOS y Linux, CMD en Windows. Para más información, consulte Scripts de varias plataformas.
Compilación en varias plataformas mediante agentes autohospedados y hospedados por Microsoft
En el ejemplo siguiente se basa tanto en un agente autohospedado como en un agente hospedado por Microsoft, especificando una vmImage
variable y , Pool
como en el ejemplo siguiente. Para el agente hospedado, especifique Azure Pipelines
como nombre del grupo y, para los agentes autohospedados, deje vmImage
en blanco. La opción de vmImage
en blanco para el agente autohospedado puede dar lugar a algunas entradas inusuales en los registros, pero no afectará a la canalización.
strategy:
matrix:
microsofthosted:
poolName: Azure Pipelines
vmImage: ubuntu-latest
selfhosted:
poolName: FabrikamPool
vmImage:
pool:
name: $(poolName)
vmImage: $(vmImage)
steps:
- checkout: none
- script: echo test
Compilación con diferentes versiones de 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 crea tres trabajos: "Build Python35", "Build Python36" y "Build Python37". Dentro de cada trabajo, hay disponible una variable denominada PYTHON_VERSION. En "Build Python35", la variable se establece en "3.5". También se establece en "3.6" en "Build Python36". Solo se ejecutan dos trabajos simultáneamente.
estrategia: paralela
La estrategia de trabajo en paralelo especifica cuántos duplicados de un trabajo se deben ejecutar.
strategy:
parallel: string # Run the job this many times.
Propiedades
parallel
Cadena.
Ejecute el trabajo muchas veces.
Comentarios
La estrategia de trabajo en paralelo es útil para segmentar una matriz de prueba grande. La tarea de prueba de Visual Studio entiende cómo dividir la carga de pruebas en el número de trabajos programados.
Ejemplos
jobs:
- job: SliceItFourWays
strategy:
parallel: 4