definisi jobs.job.strategy
Strategi eksekusi untuk pekerjaan ini.
Implementasi
Penerapan | Deskripsi |
---|---|
strategi: matriks, maxParallel | Strategi pekerjaan matriks. |
strategi: paralel | Strategi pekerjaan paralel. |
strategi: matriks, maxParallel
Penggunaan matriks menghasilkan salinan pekerjaan, masing-masing dengan input yang berbeda. Salinan ini berguna untuk pengujian terhadap konfigurasi atau versi platform yang berbeda.
strategy:
matrix: # Matrix defining the job strategy; see the following examples.
{ string1: { string2: string3 }
maxParallel: string # Maximum number of jobs running in parallel.
Properti
matrix
{ string1: { string2: string3 }.
Matriks mendefinisikan strategi pekerjaan; lihat contoh berikut.
maxParallel
String.
Jumlah maksimum pekerjaan yang berjalan secara paralel.
Keterangan
strategy:
matrix: { string1: { string2: string3 } }
maxParallel: number
Untuk setiap kemunculan string1 dalam matriks, salinan pekerjaan dihasilkan. Nama string1 adalah nama salinan dan ditambahkan ke nama pekerjaan. Untuk setiap kemunculan string2, variabel yang disebut string2 dengan string nilai3 tersedia untuk pekerjaan.
Catatan
Nama konfigurasi matriks hanya boleh berisi huruf alfabet Latin dasar (A-Z dan a-z), digit (0-9), dan garis bawah (_
).
Nama kolom harus diawali dengan huruf.
Selain itu, panjangnya harus 100 karakter atau kurang.
Kata kunci opsional maxParallel
menentukan jumlah maksimum kaki matriks simultan untuk dijalankan sekaligus.
Jika maxParallel
tidak ditentukan atau diatur ke 0, tidak ada batas yang diterapkan.
Jika maxParallel
tidak ditentukan, tidak ada batas yang diterapkan.
Catatan
Sintaks matrix
tidak mendukung penskalakan pekerjaan otomatis tetapi Anda dapat menerapkan fungsionalitas serupa menggunakan each
kata kunci . Misalnya, lihat ekspresi.
Contoh
Membangun di beberapa platform
Contoh ini menggunakan matrix
strategi pekerjaan untuk dibangun di beberapa platform.
# 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
Alur ini menggunakan skrip untuk berjalan di setiap penerjemah skrip integral platform: Bash di macOS dan Linux, CMD di Windows. Lihat skrip multi-platform untuk mempelajari selengkapnya.
Bangun di beberapa platform menggunakan agen yang dihost sendiri dan dihosting Microsoft
Contoh berikut dibangun pada agen yang dihost sendiri dan agen yang dihosting vmImage
Microsoft, dengan menentukan variabel dan Pool
, seperti contoh berikut. Untuk agen yang dihosting, tentukan Azure Pipelines
sebagai nama kumpulan, dan untuk agen yang dihost sendiri, biarkan vmImage
kosong.
vmImage
yang kosong untuk agen yang dihost sendiri dapat mengakibatkan beberapa entri menjadi tidak biasa dalam log tetapi hal ini tidak akan memengaruhi alur.
strategy:
matrix:
microsofthosted:
poolName: Azure Pipelines
vmImage: ubuntu-latest
selfhosted:
poolName: FabrikamPool
vmImage:
pool:
name: $(poolName)
vmImage: $(vmImage)
steps:
- checkout: none
- script: echo test
Membangun menggunakan versi Python yang berbeda
jobs:
- job: Build
strategy:
matrix:
Python35:
PYTHON_VERSION: '3.5'
Python36:
PYTHON_VERSION: '3.6'
Python37:
PYTHON_VERSION: '3.7'
maxParallel: 2
Matriks ini membuat tiga pekerjaan: "Build Python35," "Build Python36," dan "Build Python37." Dalam setiap pekerjaan, variabel bernama PYTHON_VERSION tersedia. Dalam "Build Python35," variabel diatur ke "3.5". Ini juga diatur ke "3.6" di "Build Python36." Hanya dua pekerjaan yang berjalan secara bersamaan.
strategi: paralel
Strategi pekerjaan paralel menentukan berapa banyak duplikat pekerjaan yang harus dijalankan.
strategy:
parallel: string # Run the job this many times.
Properti
parallel
String.
Jalankan pekerjaan berkali-kali.
Keterangan
Strategi pekerjaan paralel berguna untuk mengiris matriks pengujian besar. Tugas Uji Visual Studio memahami cara membagi beban pengujian di seluruh jumlah pekerjaan terjadwal.
Contoh
jobs:
- job: SliceItFourWays
strategy:
parallel: 4