Skip to content

Try to get Android to run on CI #6

Try to get Android to run on CI

Try to get Android to run on CI #6

name: XHarness Android Test
on:
pull_request:
push:
branches: [ main, 'releases/**' ]
release:
types: [ published ]
jobs:
android:
name: Android
runs-on: ubuntu-22.04
env:
TEST_TARGET_FRAMEWORK: net8.0-android
TEST_RUNTIME_IDENTIFIER: android-x64
TEST_CONFIGURATION: Release
TEST_EMULATOR_IMAGE: system-images;android-34;google_apis;x86_64
TEST_EMULATOR_DEVICE: pixel_5
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Required Tools
uses: ./.github/workflows/setup-tools
- name: Install Android SDK Packages
run: |
dotnet android sdk install --package "cmdline-tools;latest"
dotnet android sdk install --package "emulator"
dotnet android sdk install --package "${{ env.TEST_EMULATOR_IMAGE }}"
dotnet android sdk list --installed
dotnet android sdk info
- name: Create the Emulator
run: dotnet android avd create --name TestRunnerEmulator --sdk "${{ env.TEST_EMULATOR_IMAGE }}" --device "${{ env.TEST_EMULATOR_DEVICE }}"
- name: Boot the Emulator
run: dotnet android avd start --name TestRunnerEmulator
# run: dotnet android avd start --name TestRunnerEmulator --wait-boot
- name: WAIT WAIT WAIT
shell: pwsh
run: |
while ($true) {
echo "getting props..."
dotnet android device list
dotnet android device info --property sys.boot_completed
dotnet android device info --property dev.bootcomplete
dotnet android device info
sleep 15
}
- name: Publish App
run: |
dotnet publish sample/SampleMauiApp/SampleMauiApp.csproj \
-f ${{ env.TEST_TARGET_FRAMEWORK }} \
-r ${{ env.TEST_RUNTIME_IDENTIFIER }} \
-c ${{ env.TEST_CONFIGURATION }} \
-p:TestingMode=XHarness \
/bl:./artifacts/logs/msbuild-publish.binlog
- name: Run Tests
run: |
xharness android test \
--package-name com.companyname.samplemauiapp \
--instrumentation devicerunners.xharness.maui.XHarnessInstrumentation \
--app sample/SampleMauiApp/bin/${{ env.TEST_CONFIGURATION }}/${{ env.TEST_TARGET_FRAMEWORK }}/${{ env.TEST_RUNTIME_IDENTIFIER }}/publish/com.companyname.samplemauiapp-Signed.apk
--output-directory artifacts
- name: Shutdown the Emulator
run: dotnet xharness android adb -- emu kill
- name: Upload Artifacts
uses: actions/upload-artifact@v1
if: ${{ always() }}
with:
name: Test Results - Android
path: ./artifacts