다음을 통해 공유


jobs.job.strategy 정의

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

이 정의를 참조하는 정의: 파이프라인, jobs.job

구현

이행 설명
전략: 행렬, 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 키워드는 한 번에 실행할 최대 동시 행렬 다리 수를 지정합니다.

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

비고

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

예시

여러 플랫폼에서 빌드

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

# 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

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

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

다음 예제에서는 다음 예제와 같이 vmImagePool 변수를 모두 지정하여 자체 호스팅 에이전트와 Microsoft 호스팅 에이전트를 모두 빌드합니다. 호스트된 에이전트의 경우 풀 이름으로 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