1
0
Fork 0
mirror of https://github.com/VSadov/Satori.git synced 2025-06-11 18:20:26 +09:00

[nativeaot][tests] Update bundle zip path for NativeAOT sample app (#87049)

* Update bundle zip path for NativeAOT sample app

* Add shared path for Mono and Native AOT
This commit is contained in:
Milos Kotlar 2023-06-05 22:43:21 +02:00 committed by GitHub
parent 1b0eb4d988
commit 578f8ac039
Signed by: github
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 54 additions and 211 deletions

View file

@ -228,7 +228,7 @@ jobs:
jobParameters:
testGroup: perf
runtimeType: iOSNativeAOT
projectFile: ios_nativeaot_scenarios.proj
projectFile: ios_scenarios.proj
runKind: ios_scenarios
runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
logicalmachine: 'perfiphone12mini'
@ -244,7 +244,7 @@ jobs:
jobParameters:
testGroup: perf
runtimeType: iOSNativeAOT
projectFile: ios_nativeaot_scenarios.proj
projectFile: ios_scenarios.proj
runKind: ios_scenarios
runJobTemplate: /eng/pipelines/coreclr/templates/run-scenarios-job.yml
logicalmachine: 'perfiphone12mini'

View file

@ -228,113 +228,51 @@ jobs:
artifactName: 'AndroidBDNApk'
displayName: 'Mono Android BDN Apk'
# Download iOSMono tests
- ${{ if eq(parameters.runtimeType, 'iOSMono') }}:
- ${{ if and(eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'False')) }}:
- template: /eng/pipelines/common/download-artifact-step.yml
parameters:
unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld/nollvmsymbols
cleanUnpackFolder: false
# Download iOSMono and Native AOT tests
- ${{ if or(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.runtimeType, 'iOSNativeAOT')) }}:
- template: /eng/pipelines/common/download-artifact-step.yml
parameters:
unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld
cleanUnpackFolder: false
${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'False')) }}:
artifactName: 'iOSSampleAppNoLLVMSymbols'
artifactFileName: 'iOSSampleAppNoLLVMSymbols.zip'
artifactName: 'iOSSampleAppNoLLVMSymbols'
displayName: 'iOS Sample App NoLLVM Symbols'
# same artifact as above but don't extract .zip
- task: DownloadBuildArtifacts@0
displayName: 'Download iOS Sample App NoLLVM Symbols'
inputs:
buildType: current
downloadType: single
downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/nollvmsymbolszip'
artifactName: 'iOSSampleAppNoLLVMSymbols'
checkDownloadedFiles: true
- ${{ if and(eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'False')) }}:
- template: /eng/pipelines/common/download-artifact-step.yml
parameters:
unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld/llvmsymbols
cleanUnpackFolder: false
artifactFileName: 'iOSSampleAppLLVMSymbols.zip'
artifactName: 'iOSSampleAppLLVMSymbols'
displayName: 'iOS Sample App LLVM Symbols'
# same artifact as above but don't extract .zip
- task: DownloadBuildArtifacts@0
displayName: 'Download iOS Sample App LLVM Symbols'
inputs:
buildType: current
downloadType: single
downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/llvmsymbolszip'
artifactName: 'iOSSampleAppLLVMSymbols'
checkDownloadedFiles: true
- ${{ if and(eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'True')) }}:
- template: /eng/pipelines/common/download-artifact-step.yml
parameters:
unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld/nollvmnosymbols
cleanUnpackFolder: false
${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'True')) }}:
artifactName: 'iOSSampleAppNoLLVMNoSymbols'
artifactFileName: 'iOSSampleAppNoLLVMNoSymbols.zip'
artifactName: 'iOSSampleAppNoLLVMNoSymbols'
displayName: 'iOS Sample App NoLLVM NoSymbols'
# same artifact as above but don't extract .zip
- task: DownloadBuildArtifacts@0
displayName: 'Download iOS Sample App NoLLVM NoSymbols'
inputs:
buildType: current
downloadType: single
downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/nollvmnosymbolszip'
artifactName: 'iOSSampleAppNoLLVMNoSymbols'
checkDownloadedFiles: true
- ${{ if and(eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'True')) }}:
- template: /eng/pipelines/common/download-artifact-step.yml
parameters:
unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld/llvmnosymbols
cleanUnpackFolder: false
${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'False')) }}:
artifactName: 'iOSSampleAppLLVMSymbols'
artifactFileName: 'iOSSampleAppLLVMSymbols.zip'
${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'True')) }}:
artifactName: 'iOSSampleAppLLVMNoSymbols'
artifactFileName: 'iOSSampleAppLLVMNoSymbols.zip'
artifactName: 'iOSSampleAppLLVMNoSymbols'
displayName: 'iOS Sample App LLVM NoSymbols'
# same artifact as above but don't extract .zip
- task: DownloadBuildArtifacts@0
displayName: 'Download iOS Sample App LLVM NoSymbols'
inputs:
buildType: current
downloadType: single
downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/llvmnosymbolszip'
artifactName: 'iOSSampleAppLLVMNoSymbols'
checkDownloadedFiles: true
# Download iOSNativeAOT tests
- ${{ if eq(parameters.runtimeType, 'iOSNativeAOT') }}:
- ${{ if eq(parameters.iOSStripSymbols, 'False') }}:
- template: /eng/pipelines/common/download-artifact-step.yml
parameters:
unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld/symbols
cleanUnpackFolder: false
artifactFileName: 'iOSSampleAppSymbols.zip'
${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'False')) }}:
artifactName: 'iOSSampleAppSymbols'
displayName: 'iOS Sample App Symbols'
artifactFileName: 'iOSSampleAppSymbols.zip'
${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'True')) }}:
artifactName: 'iOSSampleAppNoSymbols'
artifactFileName: 'iOSSampleAppNoSymbols.zip'
displayName: 'iOS Sample App'
# same artifact as above but don't extract .zip
- task: DownloadBuildArtifacts@0
displayName: 'Download iOS Sample App Symbols'
displayName: 'Download iOS Sample App'
inputs:
buildType: current
downloadType: single
downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/symbols'
artifactName: 'iOSSampleAppSymbols'
downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip'
${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'False')) }}:
artifactName: 'iOSSampleAppNoLLVMSymbols'
${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'False'), eq(parameters.iOSStripSymbols, 'True')) }}:
artifactName: 'iOSSampleAppNoLLVMNoSymbols'
${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'False')) }}:
artifactName: 'iOSSampleAppLLVMSymbols'
${{ if and(eq(parameters.runtimeType, 'iOSMono'), eq(parameters.iOSLlvmBuild, 'True'), eq(parameters.iOSStripSymbols, 'True')) }}:
artifactName: 'iOSSampleAppLLVMNoSymbols'
${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'False')) }}:
artifactName: 'iOSSampleAppSymbols'
${{ if and(eq(parameters.runtimeType, 'iOSNativeAOT'), eq(parameters.iOSStripSymbols, 'True')) }}:
artifactName: 'iOSSampleAppNoSymbols'
checkDownloadedFiles: true
- ${{ if eq(parameters.iOSStripSymbols, 'True') }}:
- template: /eng/pipelines/common/download-artifact-step.yml
parameters:
unpackFolder: $(Build.SourcesDirectory)/iosHelloWorld/nosymbols
cleanUnpackFolder: false
artifactFileName: 'iOSSampleAppNoSymbols.zip'
artifactName: 'iOSSampleAppNoSymbols'
displayName: 'iOS Sample App NoSymbols'
# same artifact as above but don't extract .zip
- task: DownloadBuildArtifacts@0
displayName: 'Download iOS Sample App NoSymbols'
inputs:
buildType: current
downloadType: single
downloadPath: '$(Build.SourcesDirectory)/iosHelloWorldZip/nosymbols'
artifactName: 'iOSSampleAppNoSymbols'
checkDownloadedFiles: true
# Create Core_Root
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(buildConfig) $(archType) generatelayoutonly $(librariesOverrideArg) $(_crossBuildPropertyArg)

View file

@ -1,70 +0,0 @@
<Project Sdk="Microsoft.DotNet.Helix.Sdk" DefaultTargets="Test">
<PropertyGroup>
<IncludeXHarnessCli>true</IncludeXHarnessCli>
</PropertyGroup>
<PropertyGroup Condition="'$(AGENT_OS)' != 'Windows_NT'">
<Python>python3</Python>
<HelixPreCommands>$(HelixPreCommands);chmod +x $HELIX_WORKITEM_PAYLOAD/SOD/SizeOnDisk</HelixPreCommands>
<HelixPreCommands>$(HelixPreCommands);chmod +x $HELIX_WORKITEM_PAYLOAD/startup/Startup</HelixPreCommands>
</PropertyGroup>
<ItemGroup>
<HelixCorrelationPayload Include="$(CorrelationPayloadDirectory)">
<PayloadDirectory>%(Identity)</PayloadDirectory>
</HelixCorrelationPayload>
</ItemGroup>
<PropertyGroup>
<SymbolsPath>symbols</SymbolsPath>
<SymbolsPath Condition="'$(iOSStripSymbols)' == 'True'">nosymbols</SymbolsPath>
</PropertyGroup>
<PropertyGroup Condition="'$(AGENT_OS)' == 'Windows_NT'">
<ScenarioDirectory>%HELIX_CORRELATION_PAYLOAD%\performance\src\scenarios\</ScenarioDirectory>
</PropertyGroup>
<PropertyGroup Condition="'$(AGENT_OS)' != 'Windows_NT'">
<ScenarioDirectory>$HELIX_CORRELATION_PAYLOAD/performance/src/scenarios/</ScenarioDirectory>
</PropertyGroup>
<ItemGroup>
<HelixWorkItem Include="SOD - iOS HelloWorld Native AOT .app Size $(SymbolsPath)">
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
<PreCommands>cd $(ScenarioDirectory)helloios;cp -rf $HELIX_CORRELATION_PAYLOAD/iosHelloWorld/$(SymbolsPath) ./app;$(Python) pre.py --name app</PreCommands>
<Command>$(Python) test.py sod --scenario-name &quot;%(Identity)&quot;</Command>
<PostCommands>$(Python) post.py</PostCommands>
</HelixWorkItem>
<HelixWorkItem Include="SOD - iOS HelloWorld Native AOT Zip Size $(SymbolsPath)">
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
<PreCommands>cd $(ScenarioDirectory)helloios;cp -v $HELIX_CORRELATION_PAYLOAD/iosHelloWorldZip/$(SymbolsPath)zip/iOSSampleApp$(SymbolsPath)/iOSSampleApp$(SymbolsPath).zip .;$(Python) pre.py --name iOSSampleApp$(SymbolsPath).zip</PreCommands>
<Command>$(Python) test.py sod --scenario-name &quot;%(Identity)&quot;</Command>
<PostCommands>$(Python) post.py</PostCommands>
</HelixWorkItem>
<XHarnessAppBundleToTest Include="Device Startup - iOS Native AOT HelloWorld $(SymbolsPath)">
<AppBundlePath>$(WorkItemDirectory).zip</AppBundlePath>
<WorkItemTimeout>00:15:00</WorkItemTimeout>
<TestTarget>ios-device</TestTarget>
<CustomCommands>
<![CDATA[
# PreCommands
export XHARNESSPATH=$XHARNESS_CLI_PATH
cp -r $HELIX_CORRELATION_PAYLOAD/iosHelloWorld/$(SymbolsPath)/HelloiOS.app $(ScenarioDirectory)helloios/HelloiOS.app
cp -f embedded.mobileprovision $(ScenarioDirectory)helloios/HelloiOS.app
cd $(ScenarioDirectory)helloios
sign HelloiOS.app
$(Python) pre.py --name HelloiOS.app
# Testing commands
$(Python) test.py devicestartup --device-type ios --package-path HelloiOS.app --package-name net.dot.HelloiOS --scenario-name "%(Identity)"
((result=$?))
# Post commands
$(Python) post.py
exit $result
]]>
</CustomCommands>
</XHarnessAppBundleToTest>
</ItemGroup>
</Project>

View file

@ -30,19 +30,19 @@
</PropertyGroup>
<ItemGroup>
<HelixWorkItem Include="SOD - iOS HelloWorld Mono .app Size $(LlvmPath) $(SymbolsPath)">
<HelixWorkItem Include="SOD - iOS HelloWorld $(RuntimeType) .app Size $(LlvmPath) $(SymbolsPath)">
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
<PreCommands>cd $(ScenarioDirectory)helloios;cp -rf $HELIX_CORRELATION_PAYLOAD/iosHelloWorld/$(LlvmPath)$(SymbolsPath) ./app;$(Python) pre.py --name app</PreCommands>
<PreCommands>cd $(ScenarioDirectory)helloios;cp -rf $HELIX_CORRELATION_PAYLOAD/iosHelloWorld ./app;$(Python) pre.py --name app</PreCommands>
<Command>$(Python) test.py sod --scenario-name &quot;%(Identity)&quot;</Command>
<PostCommands>$(Python) post.py</PostCommands>
</HelixWorkItem>
<HelixWorkItem Include="SOD - iOS HelloWorld Mono Zip Size $(LlvmPath) $(SymbolsPath)">
<HelixWorkItem Include="SOD - iOS HelloWorld $(RuntimeType) Zip Size $(LlvmPath) $(SymbolsPath)">
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
<PreCommands>cd $(ScenarioDirectory)helloios;cp -v $HELIX_CORRELATION_PAYLOAD/iosHelloWorldZip/$(LlvmPath)$(SymbolsPath)zip/iOSSampleApp$(LlvmPath)$(SymbolsPath)/iOSSampleApp$(LlvmPath)$(SymbolsPath).zip .;$(Python) pre.py --name iOSSampleApp$(LlvmPath)$(SymbolsPath).zip</PreCommands>
<PreCommands>cd $(ScenarioDirectory)helloios;cp -v $HELIX_CORRELATION_PAYLOAD/iosHelloWorldZip/iOSSampleApp.zip .;$(Python) pre.py --name iOSSampleApp.zip</PreCommands>
<Command>$(Python) test.py sod --scenario-name &quot;%(Identity)&quot;</Command>
<PostCommands>$(Python) post.py</PostCommands>
</HelixWorkItem>
<XHarnessAppBundleToTest Include="Device Startup - iOS Mono HelloWorld $(LlvmPath) $(SymbolsPath)">
<XHarnessAppBundleToTest Include="Device Startup - iOS $(RuntimeType) HelloWorld $(LlvmPath) $(SymbolsPath)">
<AppBundlePath>$(WorkItemDirectory).zip</AppBundlePath>
<WorkItemTimeout>00:15:00</WorkItemTimeout>
<TestTarget>ios-device</TestTarget>
@ -51,7 +51,7 @@
# PreCommands
export XHARNESSPATH=$XHARNESS_CLI_PATH
cp -r $HELIX_CORRELATION_PAYLOAD/iosHelloWorld/$(LlvmPath)$(SymbolsPath)/HelloiOS.app $(ScenarioDirectory)helloios/HelloiOS.app
cp -r $HELIX_CORRELATION_PAYLOAD/iosHelloWorld/iosHelloWorld/HelloiOS.app $(ScenarioDirectory)helloios/HelloiOS.app
cp -f embedded.mobileprovision $(ScenarioDirectory)helloios/HelloiOS.app
cd $(ScenarioDirectory)helloios
sign HelloiOS.app

View file

@ -36,9 +36,10 @@ use_latest_dotnet=false
logical_machine=
javascript_engine="v8"
iosmono=false
iosnativeaot=false
runtimetype=""
iosllvmbuild=""
iosstripsymbols=""
iosnativeaot=false
maui_version=""
use_local_commit_time=false
only_sanity=false
@ -341,12 +342,14 @@ if [[ "$monoaot" == "true" ]]; then
fi
if [[ "$iosmono" == "true" ]]; then
configurations="$configurations iOSLlvmBuild=$iosllvmbuild iOSStripSymbols=$iosstripsymbols"
runtimetype="Mono"
configurations="$configurations iOSLlvmBuild=$iosllvmbuild iOSStripSymbols=$iosstripsymbols RuntimeType=$runtimetype"
extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments"
fi
if [[ "$iosnativeaot" == "true" ]]; then
configurations="$configurations iOSStripSymbols=$iosstripsymbols"
runtimetype="NativeAOT"
configurations="$configurations iOSStripSymbols=$iosstripsymbols RuntimeType=$runtimetype"
extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments"
fi
@ -453,40 +456,11 @@ if [[ "$use_baseline_core_run" == true ]]; then
mv $baseline_core_root_directory $new_baseline_core_root
fi
if [[ "$iosmono" == "true" ]]; then
if [[ "$iosllvmbuild" == "True" ]]; then
if [[ "$iosstripsymbols" == "True" ]]; then
# LLVM NoSymbols Mono .app
mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/llvmnosymbols $payload_directory/iosHelloWorld
mkdir -p $payload_directory/iosHelloWorldZip/llvmnosymbolszip && cp -rv $source_directory/iosHelloWorldZip/llvmnosymbolszip $payload_directory/iosHelloWorldZip
else
# LLVM Symbols Mono .app
mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/llvmsymbols $payload_directory/iosHelloWorld
mkdir -p $payload_directory/iosHelloWorldZip/llvmsymbolszip && cp -rv $source_directory/iosHelloWorldZip/llvmsymbolszip $payload_directory/iosHelloWorldZip
fi
else
if [[ "$iosstripsymbols" == "True" ]]; then
# NoLLVM NoSymbols Mono .app
mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/nollvmnosymbols $payload_directory/iosHelloWorld
mkdir -p $payload_directory/iosHelloWorldZip/nollvmnosymbolszip && cp -rv $source_directory/iosHelloWorldZip/nollvmnosymbolszip $payload_directory/iosHelloWorldZip
else
# NoLLVM Symbols Mono .app
mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/nollvmsymbols $payload_directory/iosHelloWorld
mkdir -p $payload_directory/iosHelloWorldZip/nollvmsymbolszip && cp -rv $source_directory/iosHelloWorldZip/nollvmsymbolszip $payload_directory/iosHelloWorldZip
fi
fi
fi
if [[ "$iosmono" == "true" || "$iosnativeaot" == "true" ]]; then
mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld $payload_directory/iosHelloWorld
mkdir -p $payload_directory/iosHelloWorldZip && cp -rv $source_directory/iosHelloWorldZip $payload_directory/iosHelloWorldZip
if [[ "$iosnativeaot" == "true" ]]; then
if [[ "$iosstripsymbols" == "True" ]]; then
# NoSymbols Mono .app
mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/nosymbols $payload_directory/iosHelloWorld
mkdir -p $payload_directory/iosHelloWorldZip/nosymbolszip && cp -rv $source_directory/iosHelloWorldZip/nosymbolszip $payload_directory/iosHelloWorldZip
else
# NoSymbols Mono .app
mkdir -p $payload_directory/iosHelloWorld && cp -rv $source_directory/iosHelloWorld/symbols $payload_directory/iosHelloWorld
mkdir -p $payload_directory/iosHelloWorldZip/symbolszip && cp -rv $source_directory/iosHelloWorldZip/symbolszip $payload_directory/iosHelloWorldZip
fi
find "$payload_directory/iosHelloWorldZip/" -type f -name "*.zip" -execdir mv {} "$payload_directory/iosHelloWorldZip/iOSSampleApp.zip" \;
fi
ci=true
@ -521,6 +495,7 @@ Write-PipelineSetVariable -name "MonoDotnet" -value "$using_mono" -is_multi_job_
Write-PipelineSetVariable -name "WasmDotnet" -value "$using_wasm" -is_multi_job_variable false
Write-PipelineSetVariable -Name 'iOSLlvmBuild' -Value "$iosllvmbuild" -is_multi_job_variable false
Write-PipelineSetVariable -Name 'iOSStripSymbols' -Value "$iosstripsymbols" -is_multi_job_variable false
Write-PipelineSetVariable -Name 'RuntimeType' -Value "$runtimetype" -is_multi_job_variable false
Write-PipelineSetVariable -name "OnlySanityCheck" -value "$only_sanity" -is_multi_job_variable false
# Put it back to what was set on top of this script