jobs.job.strategy tanımı
Bu iş için yürütme stratejisi.
Uygulamalar
Uygulama | Açıklama |
---|---|
strateji: matris, maxParallel | Matris iş stratejisi. |
strateji: paralel | Paralel iş stratejisi. |
strateji: matris, maxParallel
Matris kullanımı, her biri farklı girişe sahip bir işin kopyalarını oluşturur. Bu kopyalar, farklı yapılandırmalara veya platform sürümlerine göre test etmede kullanışlıdır.
strategy:
matrix: # Matrix defining the job strategy; see the following examples.
{ string1: { string2: string3 }
maxParallel: string # Maximum number of jobs running in parallel.
Özellikler
matrix
{ string1: { string2: string3 }.
İş stratejisini tanımlayan matris; aşağıdaki örneklere bakın.
maxParallel
Dize.
Paralel çalışan iş sayısı üst sınırı.
Açıklamalar
strategy:
matrix: { string1: { string2: string3 } }
maxParallel: number
Dize1'in matristeki her oluşumu için işin bir kopyası oluşturulur. Ad dizesi1 kopyanın adıdır ve işin adına eklenir. Dize2'nin her oluşumu için string2 adlı ve string3 değerini içeren bir değişken iş tarafından kullanılabilir.
Not
Matris yapılandırma adları yalnızca temel Latin alfabesi harflerini (A-Z ve a-z), basamakları (0-9) ve alt çizgilerini (_
) içermelidir.
Bunlar bir harf ile başlamalıdır.
Ayrıca uzunlukları 100 karakter veya daha az olmalıdır.
İsteğe bağlı maxParallel
anahtar sözcüğü, aynı anda çalıştırılacak en fazla eş zamanlı matris bacak sayısını belirtir.
Belirtilmemişse veya 0 olarak ayarlandıysa maxParallel
, hiçbir sınır uygulanmaz.
Belirtilmemişse maxParallel
, hiçbir sınır uygulanmaz.
Not
Söz matrix
dizimi otomatik iş ölçeklendirmeyi desteklemez, ancak anahtar sözcüğünü each
kullanarak benzer işlevleri uygulayabilirsiniz. Bir örnek için bkz. ifadeler.
Örnekler
Birden çok platformda derleme
Bu örnekte, birden çok platform üzerinde derleme yapmak için bir matrix
iş stratejisi kullanılmaktadır.
# 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
Bu işlem hattı, her platformun integral betik yorumlayıcısında çalıştırmak için betiği kullanır: macOS ve Linux üzerinde Bash, Windows'ta CMD. Daha fazla bilgi edinmek için bkz. çok platformlu betikler .
Şirket içi barındırılan ve Microsoft tarafından barındırılan aracıları kullanarak birden çok platformda oluşturma
Aşağıdaki örnek, hem şirket içinde barındırılan aracı hem de Microsoft tarafından barındırılan bir aracı üzerinde, aşağıdaki örnekte olduğu gibi hem bir vmImage
hem de bir Pool
değişken belirterek derlenmektedir. Barındırılan aracı için havuz adı olarak Azure Pipelines
belirtin ve şirket içinde barındırılan aracılar için vmImage
'yi boş bırakın. Şirket içinde barındırılan aracı için boş vmImage
günlüklerde bazı olağandışı girişlere neden olabilir, ancak bunlar işlem hattını etkilemeyecektir.
strategy:
matrix:
microsofthosted:
poolName: Azure Pipelines
vmImage: ubuntu-latest
selfhosted:
poolName: FabrikamPool
vmImage:
pool:
name: $(poolName)
vmImage: $(vmImage)
steps:
- checkout: none
- script: echo test
Farklı Python sürümleri kullanarak derleme
jobs:
- job: Build
strategy:
matrix:
Python35:
PYTHON_VERSION: '3.5'
Python36:
PYTHON_VERSION: '3.6'
Python37:
PYTHON_VERSION: '3.7'
maxParallel: 2
Bu matris üç iş oluşturur: "Python35'i derleme", "Python36'yı derleme" ve "Python37'yi derleme." Her işin içinde PYTHON_VERSION adlı bir değişken kullanılabilir. "Python35'i derleme" içinde değişkeni "3.5" olarak ayarlanır. Benzer şekilde "Python36 Derleme" içinde "3.6" olarak ayarlanmıştır. Aynı anda yalnızca iki iş çalışır.
strateji: paralel
Paralel iş stratejisi, bir işin kaç yinelemesinin çalıştırılması gerektiğini belirtir.
strategy:
parallel: string # Run the job this many times.
Özellikler
parallel
Dize.
İşi birçok kez çalıştırın.
Açıklamalar
Paralel iş stratejisi, büyük bir test matrisi dilimleme için kullanışlıdır. Visual Studio Test görevi, test yükünün zamanlanmış iş sayısına nasıl bölüneceğini anlar.
Örnekler
jobs:
- job: SliceItFourWays
strategy:
parallel: 4