Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions eng/devices/android.cake
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const string dotnetVersion = "net7.0";

// required
FilePath PROJECT = Argument("project", EnvironmentVariable("ANDROID_TEST_PROJECT") ?? "");
string TEST_DEVICE = Argument("device", EnvironmentVariable("ANDROID_TEST_DEVICE") ?? $"android-emulator-32_{defaultVersion}");
string TEST_DEVICE = Argument("device", EnvironmentVariable("ANDROID_TEST_DEVICE") ?? $"android-emulator-64_{defaultVersion}");
string DEVICE_NAME = Argument("skin", EnvironmentVariable("ANDROID_TEST_SKIN") ?? "Nexus 5X");

// optional
Expand Down Expand Up @@ -82,25 +82,33 @@ Setup(context =>
if (parts[0] != "android")
throw new Exception("Unexpected platform (expected: android) in device: " + TEST_DEVICE);
// device/emulator
Information("Create for: {0}", parts[1]);
if (parts[1] == "device")
emulator = false;
else if (parts[1] != "emulator" && parts[1] != "simulator")
throw new Exception("Unexpected device type (expected: device|emulator) in device: " + TEST_DEVICE);
// arch/bits
Information("Host OS System Arch: {0}", System.Runtime.InteropServices.RuntimeInformation.OSArchitecture);
Information("Host Processor System Arch: {0}", System.Runtime.InteropServices.RuntimeInformation.ProcessArchitecture);
if (parts[2] == "32") {
if (emulator)
DEVICE_ARCH = "x86";
else
DEVICE_ARCH = "armeabi-v7a";
} else if (parts[2] == "64") {
if (emulator)
if (System.Runtime.InteropServices.RuntimeInformation.OSArchitecture == System.Runtime.InteropServices.Architecture.Arm64)
DEVICE_ARCH = "arm64-v8a";
else if (emulator)
DEVICE_ARCH = "x86_64";
else
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we just have the one if (emulator) and then else to arm64?

DEVICE_ARCH = "arm64-v8a";
}
var sdk = api >= 24 ? "google_apis_playstore" : "google_apis";
var sdk = api >= 28 ? "google_apis_playstore" : "google_apis";
if (api == 27 && DEVICE_ARCH == "x86_64")
sdk = "default";
DEVICE_ID = $"system-images;android-{api};{sdk};{DEVICE_ARCH}";

Information("Going to run image: {0}", DEVICE_ID);
// we are not using a virtual device, so quit
if (!emulator)
return;
Expand Down
10 changes: 3 additions & 7 deletions eng/pipelines/common/device-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ parameters:
androidPool: { }
iosPool: { }
catalystPool: { }
windowsPool: { }
androidApiLevels: [ 30 ]
iosVersions: [ 'latest' ]
catalystVersions: [ 'latest' ]
Expand Down Expand Up @@ -36,13 +37,9 @@ stages:
${{ each api in parameters.androidApiLevels }}:
${{ if not(containsValue(project.androidApiLevelsExclude, api)) }}:
${{ replace(coalesce(project.desc, project.name), ' ', '_') }}_API_${{ api }}:
${{ if ge(api, 24) }}:
ANDROID_EMULATORS: "system-images;android-${{ api }};google_apis_playstore;x86"
${{ else }}:
ANDROID_EMULATORS: "system-images;android-${{ api }};google_apis;x86"
REQUIRED_XCODE: $(DEVICETESTS_REQUIRED_XCODE)
PROJECT_PATH: ${{ project.android }}
DEVICE: android-emulator-32_${{ api }}
DEVICE: android-emulator-64_${{ api }}
steps:
- template: device-tests-steps.yml
parameters:
Expand Down Expand Up @@ -139,8 +136,7 @@ stages:
workspace:
clean: all
displayName: "Windows device tests"
pool:
vmImage: windows-latest
pool: ${{ parameters.windowsPool }}
strategy:
matrix:
# create all the variables used for the matrix
Expand Down
12 changes: 2 additions & 10 deletions eng/pipelines/common/ui-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,6 @@ stages:
displayName: ${{ coalesce(project.desc, project.name) }} (API ${{ api }})
pool: ${{ parameters.androidPool }}
variables:
${{ if ge(api, 24) }}:
ANDROID_EMULATORS: "system-images;android-${{ api }};google_apis_playstore;x86"
${{ if lt(api, 24) }}:
ANDROID_EMULATORS: "system-images;android-${{ api }};google_apis;x86"
REQUIRED_XCODE: $(DEVICETESTS_REQUIRED_XCODE)
steps:
- template: ui-tests-steps.yml
Expand All @@ -52,7 +48,7 @@ stages:
version: ${{ api }}
path: ${{ project.android }}
app: ${{ project.app }}
device: android-emulator-32_${{ api }}
device: android-emulator-64_${{ api }}
provisionatorChannel: ${{ parameters.provisionatorChannel }}
agentPoolAccessToken: ${{ parameters.agentPoolAccessToken }}

Expand Down Expand Up @@ -153,10 +149,6 @@ stages:
displayName: ${{ coalesce(project.desc, project.name) }} (API ${{ api }})
pool: ${{ parameters.androidCompatibilityPool }}
variables:
${{ if ge(api, 24) }}:
ANDROID_EMULATORS: "system-images;android-${{ api }};google_apis_playstore;x86"
${{ if lt(api, 24) }}:
ANDROID_EMULATORS: "system-images;android-${{ api }};google_apis;x86"
REQUIRED_XCODE: $(DEVICETESTS_REQUIRED_XCODE)
steps:
- template: ui-tests-compatibility-steps.yml
Expand All @@ -168,7 +160,7 @@ stages:
path: ${{ project.compatibilityAndroidTestProject }}
app: ${{ project.compatibilityAndroidApp }}
targetSample: "dotnet-legacy-controlgallery-android"
device: android-emulator-32_${{ api }}
device: android-emulator-64_${{ api }}
provisionatorChannel: ${{ parameters.provisionatorChannel }}
agentPoolAccessToken: ${{ parameters.agentPoolAccessToken }}

Expand Down
11 changes: 10 additions & 1 deletion eng/pipelines/device-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,25 +56,33 @@ parameters:
- name: BuildEverything
type: boolean
default: false

- name: androidPool
type: object
default:
name: $(androidTestsVmPool)
vmImage: $(androidTestsVmImage)
demands:
- macOS.Name -equals Ventura
- macOS.Architecture -equals x64

- name: iosPool
type: object
default:
name: $(iosTestsVmPool)
vmImage: $(iosTestsVmImage)

- name: catalystPool
type: object
default:
name: $(iosTestsVmPool)
vmImage: $(iosTestsVmImage)

- name: windowsPool
type: object
default:
name: $(windowsTestsVmPool)
vmImage: $(windowsTestsVmImage)

resources:
repositories:
- repository: yaml-templates
Expand All @@ -90,6 +98,7 @@ stages:
androidPool: ${{ parameters.androidPool }}
iosPool: ${{ parameters.iosPool }}
catalystPool: ${{ parameters.catalystPool }}
windowsPool: ${{ parameters.windowsPool }}
agentPoolAccessToken: $(AgentPoolAccessToken)
${{ if or(parameters.BuildEverything, and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['System.TeamProject'], 'devdiv'))) }}:
androidApiLevels: [ 30, 29, 28, 27, 26, 25, 24, 23 ]
Expand Down
4 changes: 0 additions & 4 deletions eng/pipelines/ui-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ parameters:
vmImage: $(androidTestsVmImage)
demands:
- macOS.Name -equals Ventura
- macOS.Architecture -equals x64

- name: iosPool
type: object
Expand All @@ -77,7 +76,6 @@ parameters:
vmImage: $(androidTestsVmImage)
demands:
- macOS.Name -equals Ventura
- macOS.Architecture -equals x64

- name: windowsPool
type: object
Expand All @@ -98,7 +96,6 @@ parameters:
vmImage: $(androidTestsVmImage)
demands:
- macOS.Name -equals Ventura
- macOS.Architecture -equals x64

- name: iosCompatibilityPool
type: object
Expand All @@ -107,7 +104,6 @@ parameters:
vmImage: $(androidTestsVmImage)
demands:
- macOS.Name -equals Ventura
- macOS.Architecture -equals x64


resources:
Expand Down
79 changes: 30 additions & 49 deletions eng/provisioning/provisioning.csx
Original file line number Diff line number Diff line change
Expand Up @@ -24,55 +24,36 @@ if(String.IsNullOrWhiteSpace(ANDROID_API_SDKS))
.ApiLevel((AndroidApiLevel)31)
.ApiLevel((AndroidApiLevel)32)
.ApiLevel((AndroidApiLevel)33)
.VirtualDevice(
"Android_API23",
(AndroidApiLevel)23,
AndroidSystemImageApi.Google,
AndroidSystemImageAbi.x86,
AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice(
"Android_API24",
AndroidApiLevel.Nougat,
AndroidSystemImageApi.GooglePlayStore,
AndroidSystemImageAbi.x86,
AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice(
"Android_API25",
AndroidApiLevel.Nougat_7_1,
AndroidSystemImageApi.GooglePlayStore,
AndroidSystemImageAbi.x86,
AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice(
"Android_API26",
AndroidApiLevel.Oreo,
AndroidSystemImageApi.GooglePlayStore,
AndroidSystemImageAbi.x86,
AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice(
"Android_API27",
AndroidApiLevel.Oreo_8_1 ,
AndroidSystemImageApi.GooglePlayStore,
AndroidSystemImageAbi.x86,
AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice(
"Android_API28",
AndroidApiLevel.P,
AndroidSystemImageApi.GooglePlayStore,
AndroidSystemImageAbi.x86,
AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice(
"Android_API29",
AndroidApiLevel.Q,
AndroidSystemImageApi.GooglePlayStore,
AndroidSystemImageAbi.x86,
AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice(
"Android_API30",
AndroidApiLevel.R,
AndroidSystemImageApi.GooglePlayStore,
AndroidSystemImageAbi.x86,
AndroidVirtualDevice.NEXUS_5X)
.SdkManagerPackage ("build-tools;33.0.0");
.VirtualDevice("Android_x64_API23", (AndroidApiLevel)23, AndroidSystemImageApi.Google, AndroidSystemImageAbi.x86_64, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_x64_API24", (AndroidApiLevel)24, AndroidSystemImageApi.Google, AndroidSystemImageAbi.x86_64, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_x64_API25", (AndroidApiLevel)25, AndroidSystemImageApi.Google, AndroidSystemImageAbi.x86_64, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_x64_API26", (AndroidApiLevel)26, AndroidSystemImageApi.Google, AndroidSystemImageAbi.x86_64, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_x64_API27", (AndroidApiLevel)27, AndroidSystemImageApi.Default, /*!!*/ AndroidSystemImageAbi.x86_64, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_x64_API28", (AndroidApiLevel)28, AndroidSystemImageApi.GooglePlayStore, AndroidSystemImageAbi.x86_64, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_x64_API29", (AndroidApiLevel)29, AndroidSystemImageApi.GooglePlayStore, AndroidSystemImageAbi.x86_64, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_x64_API30", (AndroidApiLevel)30, AndroidSystemImageApi.GooglePlayStore, AndroidSystemImageAbi.x86_64, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_x64_API31", (AndroidApiLevel)31, AndroidSystemImageApi.GooglePlayStore, AndroidSystemImageAbi.x86_64, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_x64_API32", (AndroidApiLevel)32, AndroidSystemImageApi.GooglePlayStore, AndroidSystemImageAbi.x86_64, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_x64_API33", (AndroidApiLevel)33, AndroidSystemImageApi.GooglePlayStore, AndroidSystemImageAbi.x86_64, AndroidVirtualDevice.NEXUS_5X);


if (IsArm64)
{
AndroidSdk()
.VirtualDevice("Android_arm64_API23", (AndroidApiLevel)23, AndroidSystemImageApi.Google, AndroidSystemImageAbi.ARM64_v8a, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_arm64_API24", (AndroidApiLevel)24, AndroidSystemImageApi.Google, AndroidSystemImageAbi.ARM64_v8a, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_arm64_API25", (AndroidApiLevel)25, AndroidSystemImageApi.Google, AndroidSystemImageAbi.ARM64_v8a, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_arm64_API26", (AndroidApiLevel)26, AndroidSystemImageApi.Google, AndroidSystemImageAbi.ARM64_v8a, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_arm64_API27", (AndroidApiLevel)27, AndroidSystemImageApi.Google, AndroidSystemImageAbi.ARM64_v8a, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_arm64_API28", (AndroidApiLevel)28, AndroidSystemImageApi.GooglePlayStore, AndroidSystemImageAbi.ARM64_v8a, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_arm64_API29", (AndroidApiLevel)29, AndroidSystemImageApi.GooglePlayStore, AndroidSystemImageAbi.ARM64_v8a, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_arm64_API30", (AndroidApiLevel)30, AndroidSystemImageApi.GooglePlayStore, AndroidSystemImageAbi.ARM64_v8a, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_arm64_API31", (AndroidApiLevel)31, AndroidSystemImageApi.GooglePlayStore, AndroidSystemImageAbi.ARM64_v8a, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_arm64_API32", (AndroidApiLevel)32, AndroidSystemImageApi.GooglePlayStore, AndroidSystemImageAbi.ARM64_v8a, AndroidVirtualDevice.NEXUS_5X)
.VirtualDevice("Android_arm64_API33", (AndroidApiLevel)33, AndroidSystemImageApi.GooglePlayStore, AndroidSystemImageAbi.ARM64_v8a, AndroidVirtualDevice.NEXUS_5X);
}

AndroidSdk().SdkManagerPackage ("build-tools;33.0.0");
}
else
{
Expand Down