Skip to content

Commit ced5e7a

Browse files
authored
[MAUI][PERF] Reenable Maui w/o package injection (#65409)
* Reenable stuff for android startup. * Disable package replacement and temporarily most of the perf.yml files. * Reenable full perf.yml for final test.
1 parent e279a17 commit ced5e7a

File tree

6 files changed

+164
-166
lines changed

6 files changed

+164
-166
lines changed

eng/pipelines/coreclr/perf.yml

+33-31
Original file line numberDiff line numberDiff line change
@@ -484,28 +484,29 @@ jobs:
484484
additionalSetupParameters: '--latestdotnet'
485485
logicalmachine: 'perftiger'
486486

487-
# build maui runtime packs
488-
- template: /eng/pipelines/common/platform-matrix.yml
489-
parameters:
490-
jobTemplate: /eng/pipelines/common/global-build-job.yml
491-
buildConfig: release
492-
runtimeFlavor: mono
493-
platforms:
494-
- Android_x86
495-
- Android_x64
496-
- Android_arm
497-
- Android_arm64
498-
- MacCatalyst_x64
499-
- iOSSimulator_x64
500-
- iOS_arm64
501-
- iOS_arm
502-
jobParameters:
503-
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
504-
nameSuffix: Maui_Packs_Mono
505-
isOfficialBuild: false
506-
extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
507-
extraStepsParameters:
508-
name: MonoRuntimePacks
487+
# Uncomment to reenable package replacement
488+
## build maui runtime packs
489+
#- template: /eng/pipelines/common/platform-matrix.yml
490+
# parameters:
491+
# jobTemplate: /eng/pipelines/common/global-build-job.yml
492+
# buildConfig: release
493+
# runtimeFlavor: mono
494+
# platforms:
495+
# - Android_x86
496+
# - Android_x64
497+
# - Android_arm
498+
# - Android_arm64
499+
# - MacCatalyst_x64
500+
# - iOSSimulator_x64
501+
# - iOS_arm64
502+
# - iOS_arm
503+
# jobParameters:
504+
# buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
505+
# nameSuffix: Maui_Packs_Mono
506+
# isOfficialBuild: false
507+
# extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
508+
# extraStepsParameters:
509+
# name: MonoRuntimePacks
509510

510511
# build maui app
511512
- template: /eng/pipelines/common/platform-matrix.yml
@@ -516,15 +517,16 @@ jobs:
516517
platforms:
517518
- iOS_arm64
518519
jobParameters:
519-
dependsOn:
520-
- Build_Android_arm_release_Maui_Packs_Mono
521-
- Build_Android_arm64_release_Maui_Packs_Mono
522-
- Build_Android_x86_release_Maui_Packs_Mono
523-
- Build_Android_x64_release_Maui_Packs_Mono
524-
- Build_MacCatalyst_x64_release_Maui_Packs_Mono
525-
- Build_iOSSimulator_x64_release_Maui_Packs_Mono
526-
- Build_iOS_arm_release_Maui_Packs_Mono
527-
- Build_iOS_arm64_release_Maui_Packs_Mono
520+
# Uncomment to reenable package replacement
521+
#dependsOn:
522+
# - Build_Android_arm_release_Maui_Packs_Mono
523+
# - Build_Android_arm64_release_Maui_Packs_Mono
524+
# - Build_Android_x86_release_Maui_Packs_Mono
525+
# - Build_Android_x64_release_Maui_Packs_Mono
526+
# - Build_MacCatalyst_x64_release_Maui_Packs_Mono
527+
# - Build_iOSSimulator_x64_release_Maui_Packs_Mono
528+
# - Build_iOS_arm_release_Maui_Packs_Mono
529+
# - Build_iOS_arm64_release_Maui_Packs_Mono
528530
buildArgs: -s mono -c $(_BuildConfig)
529531
nameSuffix: MACiOSAndroidMaui
530532
isOfficialBuild: false

eng/pipelines/coreclr/templates/build-perf-maui-apps.yml

+106-109
Original file line numberDiff line numberDiff line change
@@ -19,95 +19,96 @@ parameters:
1919

2020

2121
steps:
22-
- task: DownloadPipelineArtifact@2
23-
displayName: Download runtime packages
24-
inputs:
25-
artifact: 'IntermediateArtifacts'
26-
path: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks
27-
patterns: |
28-
IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.android-!(*.symbols).nupkg
29-
IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.ios-!(*.symbols).nupkg
30-
IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.iossimulator-!(*.symbols).nupkg
31-
IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-!(*.symbols).nupkg
22+
# Uncomment to reenable package replacement
23+
#- task: DownloadPipelineArtifact@2
24+
# displayName: Download runtime packages
25+
# inputs:
26+
# artifact: 'IntermediateArtifacts'
27+
# path: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks
28+
# patterns: |
29+
# IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.android-!(*.symbols).nupkg
30+
# IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.ios-!(*.symbols).nupkg
31+
# IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.iossimulator-!(*.symbols).nupkg
32+
# IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-!(*.symbols).nupkg
3233

33-
# Other artifacts to include once they are being built
34-
# EX. IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-*.nupkg
34+
# # Other artifacts to include once they are being built
35+
# # EX. IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-*.nupkg
3536

36-
- task: CopyFiles@2
37-
displayName: Flatten packages
38-
inputs:
39-
sourceFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks
40-
contents: '*/Shipping/*.nupkg'
41-
cleanTargetFolder: false
42-
targetFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks
43-
flattenFolders: true
37+
#- task: CopyFiles@2
38+
# displayName: Flatten packages
39+
# inputs:
40+
# sourceFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks
41+
# contents: '*/Shipping/*.nupkg'
42+
# cleanTargetFolder: false
43+
# targetFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks
44+
# flattenFolders: true
4445

45-
- script: |
46-
for file in *.nupkg
47-
do
48-
mv -v "$file" "${file%.nupkg}.zip"
49-
done
50-
displayName: Change nupkgs to zips
51-
workingDirectory: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks
46+
#- script: |
47+
# for file in *.nupkg
48+
# do
49+
# mv -v "$file" "${file%.nupkg}.zip"
50+
# done
51+
# displayName: Change nupkgs to zips
52+
# workingDirectory: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks
5253

5354

54-
#Unzip the nuget packages to make the actual runtimes accessible
55-
- task: ExtractFiles@1
56-
displayName: Extract android-arm runtime
57-
inputs:
58-
archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm.*.zip
59-
destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm
60-
overwriteExistingFiles: true
61-
cleanDestinationFolder: false
62-
- task: ExtractFiles@1
63-
displayName: Extract android-arm64 runtime
64-
inputs:
65-
archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm64.*.zip
66-
destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm64
67-
overwriteExistingFiles: true
68-
cleanDestinationFolder: false
69-
- task: ExtractFiles@1
70-
displayName: Extract android-x86 runtime
71-
inputs:
72-
archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x86.*.zip
73-
destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x86
74-
overwriteExistingFiles: true
75-
cleanDestinationFolder: false
76-
- task: ExtractFiles@1
77-
displayName: Extract android-x64 runtime
78-
inputs:
79-
archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x64.*.zip
80-
destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x64
81-
overwriteExistingFiles: true
82-
cleanDestinationFolder: false
83-
- task: ExtractFiles@1
84-
displayName: Extract ios-arm runtime
85-
inputs:
86-
archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.ios-arm.*.zip
87-
destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.ios-arm
88-
overwriteExistingFiles: true
89-
cleanDestinationFolder: false
90-
- task: ExtractFiles@1
91-
displayName: Extract ios-arm64 runtime
92-
inputs:
93-
archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.ios-arm64.*.zip
94-
destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.ios-arm64
95-
overwriteExistingFiles: true
96-
cleanDestinationFolder: false
97-
- task: ExtractFiles@1
98-
displayName: Extract maccatalyst-x64 runtime
99-
inputs:
100-
archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64.*.zip
101-
destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64
102-
overwriteExistingFiles: true
103-
cleanDestinationFolder: false
104-
- task: ExtractFiles@1
105-
displayName: Extract iossimulator-x64 runtime
106-
inputs:
107-
archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64.*.zip
108-
destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64
109-
overwriteExistingFiles: true
110-
cleanDestinationFolder: false
55+
##Unzip the nuget packages to make the actual runtimes accessible
56+
#- task: ExtractFiles@1
57+
# displayName: Extract android-arm runtime
58+
# inputs:
59+
# archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm.*.zip
60+
# destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm
61+
# overwriteExistingFiles: true
62+
# cleanDestinationFolder: false
63+
#- task: ExtractFiles@1
64+
# displayName: Extract android-arm64 runtime
65+
# inputs:
66+
# archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm64.*.zip
67+
# destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-arm64
68+
# overwriteExistingFiles: true
69+
# cleanDestinationFolder: false
70+
#- task: ExtractFiles@1
71+
# displayName: Extract android-x86 runtime
72+
# inputs:
73+
# archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x86.*.zip
74+
# destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x86
75+
# overwriteExistingFiles: true
76+
# cleanDestinationFolder: false
77+
#- task: ExtractFiles@1
78+
# displayName: Extract android-x64 runtime
79+
# inputs:
80+
# archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x64.*.zip
81+
# destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.android-x64
82+
# overwriteExistingFiles: true
83+
# cleanDestinationFolder: false
84+
#- task: ExtractFiles@1
85+
# displayName: Extract ios-arm runtime
86+
# inputs:
87+
# archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.ios-arm.*.zip
88+
# destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.ios-arm
89+
# overwriteExistingFiles: true
90+
# cleanDestinationFolder: false
91+
#- task: ExtractFiles@1
92+
# displayName: Extract ios-arm64 runtime
93+
# inputs:
94+
# archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.ios-arm64.*.zip
95+
# destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.ios-arm64
96+
# overwriteExistingFiles: true
97+
# cleanDestinationFolder: false
98+
#- task: ExtractFiles@1
99+
# displayName: Extract maccatalyst-x64 runtime
100+
# inputs:
101+
# archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64.*.zip
102+
# destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64
103+
# overwriteExistingFiles: true
104+
# cleanDestinationFolder: false
105+
#- task: ExtractFiles@1
106+
# displayName: Extract iossimulator-x64 runtime
107+
# inputs:
108+
# archiveFilePatterns: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64.*.zip
109+
# destinationFolder: $(Build.SourcesDirectory)/MauiTesting/ArtifactPacks/Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64
110+
# overwriteExistingFiles: true
111+
# cleanDestinationFolder: false
111112

112113
- script: |
113114
curl -o dotnet-install.sh 'https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh'
@@ -126,14 +127,12 @@ steps:
126127
displayName: Setup MAUI Project
127128
workingDirectory: $(Build.SourcesDirectory)
128129
129-
#### Commented out to mitigate https://github.com/dotnet/performance/issues/2254 on main
130-
#- script: |
131-
# chmod -R a+r .
132-
# ../dotnet publish -bl:MauiAndroid.binlog -f net6.0-android -c Release -p:RunAOTCompilation=false -p:AndroidEnableProfiledAot=false
133-
# ls -l -R
134-
# mv ./bin/Release/net6.0-android/com.companyname.mauitesting-Signed.apk ./MauiAndroidDefault.apk
135-
# displayName: Build MAUI Android
136-
# workingDirectory: $(Build.SourcesDirectory)/MauiTesting
130+
- script: |
131+
chmod -R a+r .
132+
../dotnet publish -bl:MauiAndroid.binlog -f net6.0-android -c Release
133+
mv ./bin/Release/net6.0-android/com.companyname.MauiTesting-Signed.apk ./MauiAndroidDefault.apk
134+
displayName: Build MAUI Android
135+
workingDirectory: $(Build.SourcesDirectory)/MauiTesting
137136
138137
- script: |
139138
chmod -R a+r .
@@ -149,13 +148,12 @@ steps:
149148
displayName: Build MAUI MacCatalyst
150149
workingDirectory: $(Build.SourcesDirectory)/MauiTesting
151150
152-
#### Commented out to mitigate https://github.com/dotnet/performance/issues/2254 on main
153-
#- task: PublishBuildArtifacts@1
154-
# displayName: 'Publish MauiAndroid binlog'
155-
# condition: always()
156-
# inputs:
157-
# pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiAndroid.binlog
158-
# artifactName: ${{ parameters.artifactName }}
151+
- task: PublishBuildArtifacts@1
152+
displayName: 'Publish MauiAndroid binlog'
153+
condition: always()
154+
inputs:
155+
pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiAndroid.binlog
156+
artifactName: ${{ parameters.artifactName }}
159157

160158
- task: PublishBuildArtifacts@1
161159
displayName: 'Publish MauiiOS binlog'
@@ -171,16 +169,15 @@ steps:
171169
pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiMacCatalyst.binlog
172170
artifactName: ${{ parameters.artifactName }}
173171

174-
#### Commented out to mitigate https://github.com/dotnet/performance/issues/2254 on main
175-
#- template: /eng/pipelines/common/upload-artifact-step.yml
176-
# parameters:
177-
# rootFolder: $(Build.SourcesDirectory)/MauiTesting/MauiAndroidDefault.apk
178-
# includeRootFolder: true
179-
# displayName: Maui Android App
180-
# artifactName: MauiAndroidApp
181-
# archiveExtension: '.tar.gz'
182-
# archiveType: tar
183-
# tarCompression: gz
172+
- template: /eng/pipelines/common/upload-artifact-step.yml
173+
parameters:
174+
rootFolder: $(Build.SourcesDirectory)/MauiTesting/MauiAndroidDefault.apk
175+
includeRootFolder: true
176+
displayName: Maui Android App
177+
artifactName: MauiAndroidApp
178+
archiveExtension: '.tar.gz'
179+
archiveType: tar
180+
tarCompression: gz
184181

185182
- template: /eng/pipelines/common/upload-artifact-step.yml
186183
parameters:

eng/pipelines/coreclr/templates/perf-job.yml

+7-8
Original file line numberDiff line numberDiff line change
@@ -159,14 +159,13 @@ jobs:
159159
artifactFileName: 'AndroidMonoarm64.tar.gz'
160160
artifactName: 'AndroidMonoarm64'
161161
displayName: 'Mono Android HelloWorld'
162-
#### Commented out to mitigate https://github.com/dotnet/performance/issues/2254 on main
163-
#- template: /eng/pipelines/common/download-artifact-step.yml
164-
# parameters:
165-
# unpackFolder: $(Build.SourcesDirectory)
166-
# cleanUnpackFolder: false
167-
# artifactFileName: 'MauiAndroidApp.tar.gz'
168-
# artifactName: 'MauiAndroidApp'
169-
# displayName: 'Maui Android App'
162+
- template: /eng/pipelines/common/download-artifact-step.yml
163+
parameters:
164+
unpackFolder: $(Build.SourcesDirectory)
165+
cleanUnpackFolder: false
166+
artifactFileName: 'MauiAndroidApp.tar.gz'
167+
artifactName: 'MauiAndroidApp'
168+
displayName: 'Maui Android App'
170169

171170
# Download iOSMono tests and MauiiOS/MacCatalyst
172171
- ${{ if eq(parameters.runtimeType, 'iOSMono') }}:

0 commit comments

Comments
 (0)