이 작업에 대한 실행 전략입니다.
구현
| 이행 | 설명 |
|---|---|
| 전략: 행렬, 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 작업 전략을 사용하여 여러 플랫폼에서 빌드합니다.
# 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 호스팅 에이전트를 사용하여 여러 플랫폼에서 빌드
다음 예제에서는 다음 예제와 같이 vmImage 및 Pool 변수를 모두 지정하여 자체 호스팅 에이전트와 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