다음을 통해 공유


jobs.job.strategy 정의

이 작업에 대한 실행 전략입니다.

이 정의를 참조하는 정의: pipeline, jobs.job

구현

구현 설명
전략: matrix, maxParallel 행렬 작업 전략.
전략: 병렬 병렬 작업 전략.

전략: matrix, maxParallel

행렬을 사용하면 각각 다른 입력이 있는 작업의 복사본이 생성됩니다. 이러한 복사본은 다양한 구성 또는 플랫폼 버전에 대해 테스트하는 데 유용합니다.

strategy:
  matrix: # Matrix defining the job strategy; see the following examples.
    { string1: { string2: string3 }
  maxParallel: string # Maximum number of jobs running in parallel.

속성

matrix { string1: { string2: string3 }.
작업 전략을 정의하는 행렬입니다. 다음 예제를 참조하세요.

maxParallel 문자열.
병렬로 실행되는 최대 작업 수입니다.

설명

strategy:
  matrix: { string1: { string2: string3 } }
  maxParallel: number

행렬에서 string1 이 발생할 때마다 작업의 복사본이 생성됩니다. string1 이름은 복사본의 이름이며 작업 이름에 추가됩니다. string2가 발생할 때마다 string3 값이 있는 string2라는 변수를 작업에 사용할 수 있습니다.

참고

행렬 구성 이름은 기본 라틴 문자 문자(A-Z 및 a-z), 숫자(0-9) 및 밑줄(_)만 포함해야 합니다. 열 이름은 문자로 시작해야 합니다. 또한 길이는 100자 이하여야 합니다.

선택적 maxParallel 키워드(keyword) 한 번에 실행할 최대 동시 행렬 다리 수를 지정합니다.

가 지정되지 않거나 0으로 설정된 경우 maxParallel 제한이 적용되지 않습니다.

가 지정되지 않은 경우 maxParallel 제한이 적용되지 않습니다.

참고

구문은 matrix 자동 작업 크기 조정을 지원하지 않지만 키워드(keyword) 사용하여 유사한 기능을 구현할 each 수 있습니다. 예제는 식을 참조하세요.

예제

여러 플랫폼에서 빌드

이 예제에서는 matrix 작업 전략을 사용하여 여러 플랫폼에서 빌드합니다.

# 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

이 파이프라인은 스크립트 를 사용하여 각 플랫폼의 정수 스크립트 인터프리터인 macOS 및 Linux의 Bash, Windows의 CMD에서 실행됩니다. 자세한 내용은 다중 플랫폼 스크립트 를 참조하세요.

자체 호스팅 및 Microsoft 호스팅 에이전트를 사용하여 여러 플랫폼에서 빌드

다음 예제에서는 다음 예제와 같이 와 변수를 모두 지정하여 자체 호스팅 에이전트와 Pool Microsoft 호스팅 에이전트를 모두 vmImage 빌드합니다. 호스트된 에이전트의 경우 풀 이름으로 Azure Pipelines를 지정하고 자체 호스팅 에이전트의 경우 vmImage를 비워 둡니다. 자체 호스팅 에이전트의 빈 vmImage로 인해 로그에 비정상적인 항목이 발생할 수 있지만 파이프라인에는 영향을 미치지 않습니다.

strategy:
  matrix:
    microsofthosted:
      poolName: Azure Pipelines
      vmImage: ubuntu-latest

    selfhosted:
      poolName: FabrikamPool
      vmImage:

pool:
  name: $(poolName)
  vmImage: $(vmImage)

steps:
- checkout: none
- script: echo test

다른 Python 버전을 사용하여 빌드

jobs:
- job: Build
  strategy:
    matrix:
      Python35:
        PYTHON_VERSION: '3.5'
      Python36:
        PYTHON_VERSION: '3.6'
      Python37:
        PYTHON_VERSION: '3.7'
    maxParallel: 2

이 행렬은 "Python35 빌드", "Python36 빌드" 및 "Python37 빌드"의 세 가지 작업을 만듭니다. 각 작업 내에서 PYTHON_VERSION 변수를 사용할 수 있습니다. "Python35 빌드"에서 변수는 "3.5"로 설정됩니다. 마찬가지로 "Python36 빌드"에서 "3.6"으로 설정됩니다. 두 개의 작업만 동시에 실행됩니다.

전략: 병렬

병렬 작업 전략은 실행해야 하는 작업의 중복 수를 지정합니다.

strategy:
  parallel: string # Run the job this many times.

속성

parallel 문자열.
이 작업을 여러 번 실행합니다.

설명

병렬 작업 전략은 대규모 테스트 매트릭스를 조각화할 때 유용합니다. Visual Studio 테스트 태스크는 예약된 작업 수에 테스트 부하를 나누는 방법을 이해합니다.

jobs:
- job: SliceItFourWays
  strategy:
    parallel: 4