Bagikan melalui


definisi jobs.job.strategy

Strategi eksekusi untuk pekerjaan ini.

Definisi yang mereferensikan definisi ini: alur, jobs.job

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