jobs.job.strategy の定義
このジョブの実行戦略。
実装
実装 | 説明 |
---|---|
戦略: マトリックス、maxParallel | マトリックス ジョブ戦略。 |
戦略: 並列 | 並列ジョブ戦略。 |
注釈
後続のジョブ内のジョブから変数にアクセスするには、「マルチジョブ出力変数設定する」を参照してください。
strategy: 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
マトリックス内で 文字列 1 が出現するたびに、ジョブのコピーが生成されます。 string1 名前はコピーの名前であり、ジョブの名前に追加されます。 string2が出現するたびに、string2 という名前の変数と、文字列 3 の値をジョブで使用できます。
注
マトリックス構成名には、基本的なラテンアルファベット (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?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
このパイプラインでは、スクリプト を使用して、各プラットフォームの不可欠なスクリプト インタープリターである Bash on macOS および Linux、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
このマトリックスでは、"Build Python35"、"Build Python36"、"Build Python37" の 3 つのジョブが作成されます。各ジョブ内で、PYTHON_VERSIONという名前の変数を使用できます。 "Build Python35" では、変数は "3.5" に設定されています。 同様に、"Build Python36" では "3.6" に設定されます。同時に実行されるジョブは 2 つだけです。
戦略: 並列
並列ジョブ戦略では、実行するジョブの重複の数を指定します。
strategy:
parallel: string # Run the job this many times.
特性
parallel
文字列。
ジョブを何度も実行します。
注釈
並列ジョブ戦略は、大規模なテスト マトリックスをスライスする場合に便利です。 Visual Studio テスト タスク は、スケジュールされたジョブの数にテスト負荷を分割する方法を理解しています。
例示
jobs:
- job: SliceItFourWays
strategy:
parallel: 4