jobs.job.strategy 정의
이 작업에 대한 실행 전략입니다.
구현
구현 | 설명 |
---|---|
전략: 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