getsentry / getsentry/sentry-dotnet
CI: run Android integration tests on ARM64
- Dominant language
- C#
- Stars
- 770
- Forks
- 248
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 49
Description
### Description
There are minor differences in Mono and native crash handling between `x86_64` vs. `arm64`. Currently, we only run Android integration tests on `ubuntu-latest-4-cores`, which is `x86_64`. We should add `arm64` if/when possible.
Failed attempts:
macos-xxx: M1/M2 do not support nested virtualization :x:
```
HVF error: HV_UNSUPPORTED
qemu-system-aarch64-headless: failed to initialize HVF: Invalid argument
WARNING | QEMU main loop exits abnormally with code 1
```
ubuntu-xxx: Doesn't work with QEMU (qemu-system-arm) :x:
```
Avd's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host. System image must match the host architecture.
```
ubuntu-xxx-arm: Android Emulator not available on Linux ARM64 :x:
```
Install Android SDK
/usr/bin/sh -c \yes | sdkmanager --licenses > /dev/null
Installing latest build tools, platform tools, and platform.
/usr/bin/sh -c \sdkmanager --install 'build-tools;35.0.0' platform-tools 'platforms;android-34'> /dev/null
Installing latest emulator.
/usr/bin/sh -c \sdkmanager --install emulator --channel=0 > /dev/null
Warning: Failed to find package 'emulator'
```
Potential options:
- Mac M3: While the current `macos-15` and `macos-26` runners are M1, and some "large" runners are M2. Neither of them supports nested virtualization, but it should work starting with M3. So maybe this becomes feasible in the future, when GitHub adds M3+ runners...?
- Linux ARM64: A [gist](https://gist.github.com/atyachin/2f7c6054c4cd6945397165a23623987d) found by random search suggests it might be possible to manually download AOSP emulators from [ci.android.com](https://ci.android.com/builds/branches/aosp-emu-master-dev/grid?legacy=1).
Contributor guide
Assessment
This issue has not been assessed yet.