Skip to content

Commit 9022f3a

Browse files
e-kharionJakub Dražka
andauthored
all build jobs used for performance testing are now possible to run individually (#112902)
added possibility to configure maui framework to use perf-build-jobs splitted to multiple templates perf-arm64-builds moved to a different yml and yml files reorganized Co-authored-by: Jakub Dražka <[email protected]>
1 parent e52cfdb commit 9022f3a

File tree

6 files changed

+300
-247
lines changed

6 files changed

+300
-247
lines changed

eng/pipelines/performance/templates/perf-arm64-build-jobs.yml

Lines changed: 8 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -4,74 +4,15 @@ parameters:
44
monoAot: false
55

66
jobs:
7-
- ${{ if eq(parameters.mono, true) }}:
8-
# build mono
9-
- template: /eng/pipelines/common/platform-matrix.yml
10-
parameters:
11-
jobTemplate: /eng/pipelines/common/global-build-job.yml
12-
buildConfig: release
13-
runtimeFlavor: mono
14-
platforms:
15-
- linux_arm64
16-
jobParameters:
17-
nameSuffix: mono
18-
buildArgs: -s mono+clr.iltools+clr.hosts+libs+host+packs -c $(_BuildConfig)
19-
isOfficialBuild: false
20-
postBuildSteps:
21-
- template: /eng/pipelines/common/upload-artifact-step.yml
22-
parameters:
23-
rootFolder: $(Build.SourcesDirectory)/artifacts/bin
24-
includeRootFolder: false
25-
archiveType: $(archiveType)
26-
archiveExtension: $(archiveExtension)
27-
tarCompression: $(tarCompression)
28-
artifactName: BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_mono
29-
displayName: Build Assets
7+
# build mono + monoAot
8+
- template: /eng/pipelines/performance/templates/perf-mono-build-jobs.yml
9+
parameters:
10+
mono_arm64: ${{ parameters.mono }}
11+
monoAot_arm64: ${{ parameters.monoAot }}
3012

3113
- ${{ if eq(parameters.coreclr, true) }}:
3214
# build coreclr and libraries
33-
- template: /eng/pipelines/common/platform-matrix.yml
34-
parameters:
35-
jobTemplate: /eng/pipelines/common/global-build-job.yml
36-
buildConfig: release
37-
platforms:
38-
- linux_arm64
39-
- windows_arm64
40-
jobParameters:
41-
nameSuffix: coreclr
42-
buildArgs: -s clr+libs+host+packs -c $(_BuildConfig)
43-
isOfficialBuild: false
44-
postBuildSteps:
45-
- template: /eng/pipelines/common/upload-artifact-step.yml
46-
parameters:
47-
rootFolder: $(Build.SourcesDirectory)/artifacts/bin
48-
includeRootFolder: false
49-
archiveType: $(archiveType)
50-
archiveExtension: $(archiveExtension)
51-
tarCompression: $(tarCompression)
52-
artifactName: BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_coreclr
53-
displayName: Build Assets
54-
55-
- ${{ if eq(parameters.monoAot, true) }}:
56-
- template: /eng/pipelines/common/platform-matrix.yml
15+
- template: /eng/pipelines/performance/templates/perf-coreclr-build-jobs.yml
5716
parameters:
58-
jobTemplate: /eng/pipelines/common/global-build-job.yml
59-
buildConfig: release
60-
runtimeFlavor: mono
61-
runtimeVariant: 'llvmaot'
62-
platforms:
63-
- linux_arm64
64-
jobParameters:
65-
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoAOTEnableLLVM=true /p:MonoEnableLLVM=true /p:BuildMonoAOTCrossCompiler=true /p:AotHostArchitecture=arm64 /p:AotHostOS=linux
66-
nameSuffix: AOT
67-
isOfficialBuild: false
68-
postBuildSteps:
69-
- template: /eng/pipelines/common/upload-artifact-step.yml
70-
parameters:
71-
rootFolder: '$(Build.SourcesDirectory)/artifacts/'
72-
includeRootFolder: true
73-
displayName: AOT Mono Artifacts
74-
artifactName: LinuxMonoAOTarm64
75-
archiveExtension: '.tar.gz'
76-
archiveType: tar
77-
tarCompression: gz
17+
linux_arm64: true
18+
windows_arm64: true
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
parameters:
2+
perfBranch: 'main' # Currently only used for building the BDN App
3+
mauiFramework: '' # Framework version to get versions for and build for (e.g. net9.0)
4+
5+
jobs:
6+
# build mono for AOT
7+
- template: /eng/pipelines/performance/templates/perf-mono-build-jobs.yml
8+
parameters:
9+
monoAndroidPacks: true
10+
11+
# build PerfBDN app
12+
- template: /eng/pipelines/common/platform-matrix.yml
13+
parameters:
14+
jobTemplate: /eng/pipelines/common/global-build-job.yml
15+
buildConfig: release
16+
runtimeFlavor: mono
17+
platforms:
18+
- ios_arm64
19+
jobParameters:
20+
dependsOn:
21+
- Build_android_arm64_release_Mono_Packs
22+
buildArgs: -s mono -c $(_BuildConfig)
23+
nameSuffix: PerfBDNApp
24+
isOfficialBuild: false
25+
pool:
26+
vmImage: 'macos-13'
27+
postBuildSteps:
28+
- template: /eng/pipelines/performance/templates/build-perf-bdn-app.yml
29+
parameters:
30+
rootFolder: '$(Build.SourcesDirectory)/artifacts/'
31+
includeRootFolder: true
32+
displayName: Android BDN App Artifacts
33+
artifactName: PerfBDNAppArm
34+
archiveExtension: '.tar.gz'
35+
archiveType: tar
36+
tarCompression: gz
37+
perfBranch: ${{ parameters.perfBranch }}
38+
${{ if parameters.mauiFramework }}:
39+
framework: ${{ parameters.mauiFramework }}

eng/pipelines/performance/templates/perf-build-jobs.yml

Lines changed: 13 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -3,144 +3,23 @@ parameters:
33

44
jobs:
55
# build coreclr and libraries
6-
- template: /eng/pipelines/common/platform-matrix.yml
6+
- template: /eng/pipelines/performance/templates/perf-coreclr-build-jobs.yml
77
parameters:
8-
jobTemplate: /eng/pipelines/common/global-build-job.yml
9-
buildConfig: release
10-
platforms:
11-
- linux_x64
12-
- windows_x64
13-
- windows_x86
14-
- linux_musl_x64
15-
jobParameters:
16-
nameSuffix: coreclr
17-
buildArgs: -s clr+libs+host+packs -c $(_BuildConfig)
18-
isOfficialBuild: false
19-
postBuildSteps:
20-
- template: /eng/pipelines/common/upload-artifact-step.yml
21-
parameters:
22-
rootFolder: $(Build.SourcesDirectory)/artifacts/bin
23-
includeRootFolder: false
24-
archiveType: $(archiveType)
25-
archiveExtension: $(archiveExtension)
26-
tarCompression: $(tarCompression)
27-
artifactName: BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_coreclr
28-
displayName: Build Assets
29-
8+
linux_x64: true
9+
windows_x64: true
10+
windows_x86: true
11+
linux_musl_x64: true
12+
3013
# build mono for AOT
31-
- template: /eng/pipelines/common/platform-matrix.yml
32-
parameters:
33-
jobTemplate: /eng/pipelines/common/global-build-job.yml
34-
buildConfig: release
35-
runtimeFlavor: mono
36-
platforms:
37-
- linux_x64
38-
jobParameters:
39-
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) /p:MonoAOTEnableLLVM=true /p:MonoEnableLLVM=true /p:BuildMonoAOTCrossCompiler=true /p:AotHostArchitecture=x64 /p:AotHostOS=linux
40-
nameSuffix: AOT
41-
isOfficialBuild: false
42-
postBuildSteps:
43-
- template: /eng/pipelines/common/upload-artifact-step.yml
44-
parameters:
45-
rootFolder: '$(Build.SourcesDirectory)/artifacts/'
46-
includeRootFolder: true
47-
displayName: AOT Mono Artifacts
48-
artifactName: LinuxMonoAOTx64
49-
archiveExtension: '.tar.gz'
50-
archiveType: tar
51-
tarCompression: gz
52-
53-
# build mono Android scenarios
54-
- template: /eng/pipelines/common/platform-matrix.yml
55-
parameters:
56-
jobTemplate: /eng/pipelines/common/global-build-job.yml
57-
buildConfig: release
58-
runtimeFlavor: mono
59-
platforms:
60-
- android_arm64
61-
jobParameters:
62-
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
63-
nameSuffix: AndroidMono
64-
isOfficialBuild: false
65-
postBuildSteps:
66-
- template: /eng/pipelines/performance/templates/build-perf-sample-apps.yml
67-
parameters:
68-
rootFolder: '$(Build.SourcesDirectory)/artifacts/'
69-
includeRootFolder: true
70-
displayName: Android Mono Artifacts
71-
artifactName: AndroidMonoarm64
72-
archiveExtension: '.tar.gz'
73-
archiveType: tar
74-
tarCompression: gz
75-
76-
# build mono
77-
- template: /eng/pipelines/common/platform-matrix.yml
14+
- template: /eng/pipelines/performance/templates/perf-mono-build-jobs.yml
7815
parameters:
79-
jobTemplate: /eng/pipelines/common/global-build-job.yml
80-
buildConfig: release
81-
runtimeFlavor: mono
82-
platforms:
83-
- linux_x64
84-
jobParameters:
85-
nameSuffix: mono
86-
buildArgs: -s mono+clr.iltools+clr.hosts+libs+host+packs -c $(_BuildConfig)
87-
isOfficialBuild: false
88-
postBuildSteps:
89-
- template: /eng/pipelines/common/upload-artifact-step.yml
90-
parameters:
91-
rootFolder: $(Build.SourcesDirectory)/artifacts/bin
92-
includeRootFolder: false
93-
archiveType: $(archiveType)
94-
archiveExtension: $(archiveExtension)
95-
tarCompression: $(tarCompression)
96-
artifactName: BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_mono
97-
displayName: Build Assets
98-
99-
# build mono runtime packs
16+
mono_x64: true
17+
monoAot_x64: true
18+
monoAndroid: true
19+
10020
# Disabled due to not successfully building at the moment. https://github.com/dotnet/performance/issues/4729
10121
- ${{ if false }}:
102-
- template: /eng/pipelines/common/platform-matrix.yml
103-
parameters:
104-
jobTemplate: /eng/pipelines/common/global-build-job.yml
105-
buildConfig: release
106-
runtimeFlavor: mono
107-
platforms:
108-
- android_arm64
109-
jobParameters:
110-
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
111-
nameSuffix: Mono_Packs
112-
isOfficialBuild: false
113-
postBuildSteps:
114-
- template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
115-
parameters:
116-
name: MonoRuntimePacks
117-
isOfficialBuild: false
118-
119-
# Disabled with the above job
12022
# build PerfBDN app
121-
- template: /eng/pipelines/common/platform-matrix.yml
23+
- template: /eng/pipelines/performance/templates/perf-bdn-build-jobs.yml
12224
parameters:
123-
jobTemplate: /eng/pipelines/common/global-build-job.yml
124-
buildConfig: release
125-
runtimeFlavor: mono
126-
platforms:
127-
- ios_arm64
128-
jobParameters:
129-
dependsOn:
130-
- Build_android_arm64_release_Mono_Packs
131-
buildArgs: -s mono -c $(_BuildConfig)
132-
nameSuffix: PerfBDNApp
133-
isOfficialBuild: false
134-
pool:
135-
vmImage: 'macos-13'
136-
postBuildSteps:
137-
- template: /eng/pipelines/performance/templates/build-perf-bdn-app.yml
138-
parameters:
139-
rootFolder: '$(Build.SourcesDirectory)/artifacts/'
140-
includeRootFolder: true
141-
displayName: Android BDN App Artifacts
142-
artifactName: PerfBDNAppArm
143-
archiveExtension: '.tar.gz'
144-
archiveType: tar
145-
tarCompression: gz
146-
perfBranch: ${{ parameters.perfBranch }}
25+
perfBranch: ${{ parameters.perfBranch }}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
parameters:
2+
linux_x64: false
3+
linux_musl_x64: false
4+
windows_x64: false
5+
windows_x86: false
6+
linux_arm64: false
7+
windows_arm64: false
8+
9+
jobs:
10+
- ${{ if or(eq(parameters.linux_x64, true), eq(parameters.windows_x64, true), eq(parameters.windows_x86, true), eq(parameters.linux_musl_x64, true), eq(parameters.linux_arm64, true), eq(parameters.windows_arm64, true)) }}:
11+
# build coreclr and libraries
12+
- template: /eng/pipelines/common/platform-matrix.yml
13+
parameters:
14+
jobTemplate: /eng/pipelines/common/global-build-job.yml
15+
buildConfig: release
16+
platforms:
17+
- ${{ if eq(parameters.linux_x64, true) }}:
18+
- linux_x64
19+
- ${{ if eq(parameters.windows_x64, true) }}:
20+
- windows_x64
21+
- ${{ if eq(parameters.windows_x86, true) }}:
22+
- windows_x86
23+
- ${{ if eq(parameters.linux_musl_x64, true) }}:
24+
- linux_musl_x64
25+
- ${{ if eq(parameters.linux_arm64, true) }}:
26+
- linux_arm64
27+
- ${{ if eq(parameters.windows_arm64, true) }}:
28+
- windows_arm64
29+
jobParameters:
30+
nameSuffix: coreclr
31+
buildArgs: -s clr+libs+host+packs -c $(_BuildConfig)
32+
isOfficialBuild: false
33+
postBuildSteps:
34+
- template: /eng/pipelines/common/upload-artifact-step.yml
35+
parameters:
36+
rootFolder: $(Build.SourcesDirectory)/artifacts/bin
37+
includeRootFolder: false
38+
archiveType: $(archiveType)
39+
archiveExtension: $(archiveExtension)
40+
tarCompression: $(tarCompression)
41+
artifactName: BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_coreclr
42+
displayName: Build Assets

0 commit comments

Comments
 (0)