diff --git a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml index c1c20346d78970ac604f7e5bebceee8ca4228eb7..4c7781551070187fbcb084042c8f1b8b729b06fe 100644 --- a/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-maui-apps.yml @@ -157,12 +157,11 @@ steps: pwd chmod -R a+r . ../../../dotnet restore Microsoft.NetConf2021.Maui.csproj - ../../../dotnet publish Microsoft.NetConf2021.Maui.csproj -bl:MauiAndroid.binlog -r android-arm64 --self-contained --no-restore -f net6.0-android -c Release + ../../../dotnet publish Microsoft.NetConf2021.Maui.csproj -bl:MauiPodcastAndroid.binlog -r android-arm64 --self-contained --no-restore -f net6.0-android -c Release mv ./bin/Release/net6.0-android/android-arm64/com.Microsoft.NetConf2021.Maui-Signed.apk $(Build.SourcesDirectory)/MauiTesting/MauiAndroidPodcast.apk - displayName: Build podcast app for MAUI + displayName: Build MAUI Podcast Android workingDirectory: $(Build.SourcesDirectory)/dotnet-podcasts/src/Mobile - # This step pulls the product version from the used Microsoft.Maui.dll file properties and saves it for upload with the maui test counter. # We pull from this file as we did not find another place to reliably get the version information pre or post build. - powershell: | @@ -186,6 +185,20 @@ steps: displayName: Build MAUI iOS workingDirectory: $(Build.SourcesDirectory)/MauiTesting + - script: | + chmod -R a+r . + # remove net6.0-maccatalyst to work around https://github.com/dotnet/sdk/issues/21877 + cp Microsoft.NetConf2021.Maui.csproj Microsoft.NetConf2021.Maui.csproj.bak + sed -i'' -e 's/net6.0-ios;net6.0-maccatalyst/net6.0-ios/g' Microsoft.NetConf2021.Maui.csproj + + ../../../dotnet build ../Web/Components/Podcast.Components.Maui.csproj + ../../../dotnet publish Microsoft.NetConf2021.Maui.csproj -bl:MauiiOSPodcast.binlog -f net6.0-ios --self-contained -r ios-arm64 -c Release /p:_RequireCodeSigning=false + mv ./bin/Release/net6.0-ios/ios-arm64/publish/Microsoft.NetConf2021.Maui.ipa ./MauiiOSPodcast.ipa + + cp Microsoft.NetConf2021.Maui.csproj.bak Microsoft.NetConf2021.Maui.csproj + displayName: Build MAUI Podcast iOS + workingDirectory: $(Build.SourcesDirectory)/dotnet-podcasts/src/Mobile + - script: | chmod -R a+r . ../dotnet publish -bl:MauiMacCatalyst.binlog -f net6.0-maccatalyst -c Release @@ -214,6 +227,13 @@ steps: pathtoPublish: $(Build.SourcesDirectory)/MauiTesting/MauiMacCatalyst.binlog artifactName: ${{ parameters.artifactName }} + - task: PublishBuildArtifacts@1 + displayName: 'Publish MauiiOSPodcast binlog' + condition: always() + inputs: + pathtoPublish: $(Build.SourcesDirectory)/dotnet-podcasts/src/Mobile/MauiiOSPodcast.binlog + artifactName: ${{ parameters.artifactName }} + - template: /eng/pipelines/common/upload-artifact-step.yml parameters: rootFolder: $(Build.SourcesDirectory)/MauiTesting/MauiAndroidDefault.apk @@ -234,7 +254,6 @@ steps: archiveType: tar tarCompression: gz - - template: /eng/pipelines/common/upload-artifact-step.yml parameters: rootFolder: $(Build.SourcesDirectory)/MauiTesting/MauiiOSDefault.ipa @@ -245,6 +264,16 @@ steps: archiveType: tar tarCompression: gz + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.SourcesDirectory)/dotnet-podcasts/src/Mobile/MauiiOSPodcast.ipa + includeRootFolder: true + displayName: Maui iOS Podcast IPA + artifactName: MauiiOSPodcastIPA + archiveExtension: '.tar.gz' + archiveType: tar + tarCompression: gz + - template: /eng/pipelines/common/upload-artifact-step.yml parameters: rootFolder: $(Build.SourcesDirectory)/MauiTesting/MauiMacCatalystDefault.app diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index e6e23c2c8924c23a87d2ff4b8fc8a5744821a8ba..a32d0aab3329f4e7843636a0e406d6a624575b9b 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -216,6 +216,13 @@ jobs: artifactFileName: 'MauiMacCatalystDefault.tar.gz' artifactName: 'MauiMacCatalystDefault' displayName: 'Maui MacCatalyst App' + - template: /eng/pipelines/common/download-artifact-step.yml + parameters: + unpackFolder: $(Build.SourcesDirectory)/MauiiOSPodcastIPA + cleanUnpackFolder: false + artifactFileName: 'MauiiOSPodcastIPA.tar.gz' + artifactName: 'MauiiOSPodcastIPA' + displayName: 'Maui iOS Podcast IPA' # Create Core_Root - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(buildConfig) $(archType) generatelayoutonly $(librariesOverrideArg) diff --git a/eng/testing/performance/ios_scenarios.proj b/eng/testing/performance/ios_scenarios.proj index 6af44c3e9514de4b7dc03661a977c4fbd085d5a5..b22caf0aa1f2fbcda4dee53607d574fb047de3ab 100644 --- a/eng/testing/performance/ios_scenarios.proj +++ b/eng/testing/performance/ios_scenarios.proj @@ -48,5 +48,17 @@ $(Python) test.py sod --scenario-name "%(Identity)" $(Python) post.py + + $(WorkItemDirectory) + cd $(ScenarioDirectory)mauiios;copy %HELIX_CORRELATION_PAYLOAD%\MauiiOSPodcastIPA\MauiiOSPodcast.ipa .;$(Python) pre.py --name MauiiOSPodcast.ipa + $(Python) test.py sod --scenario-name "%(Identity)" + $(Python) post.py + + + $(WorkItemDirectory) + cd $(ScenarioDirectory)mauiios;copy %HELIX_CORRELATION_PAYLOAD%\MauiiOSPodcastIPA\MauiiOSPodcast.ipa .;$(Python) pre.py --unzip --name MauiiOSPodcast.ipa + $(Python) test.py sod --scenario-name "%(Identity)" + $(Python) post.py + diff --git a/eng/testing/performance/performance-setup.ps1 b/eng/testing/performance/performance-setup.ps1 index cf9df4dee77f7d6387b48486cb54524bd4705fbf..96ab8f639b63c2f9df20cf2952925a682be124e3 100644 --- a/eng/testing/performance/performance-setup.ps1 +++ b/eng/testing/performance/performance-setup.ps1 @@ -172,6 +172,7 @@ if ($iOSMono) { Copy-Item -path "$SourceDirectory\iosHelloWorld\nollvm" $PayloadDirectory\iosHelloWorld\nollvm -Recurse Copy-Item -path "$SourceDirectory\MauiiOSDefaultIPA" $PayloadDirectory\MauiiOSDefaultIPA -Recurse Copy-Item -path "$SourceDirectory\MauiMacCatalystDefault\MauiMacCatalystDefault.app" $PayloadDirectory\MauiMacCatalystDefault -Recurse + Copy-Item -path "$SourceDirectory\MauiiOSPodcastIPA" $PayloadDirectory\MauiiOSPodcastIPA -Recurse } $SetupArguments = $SetupArguments -replace $Architecture, 'arm64'