Skip to content

PR check - Android Emulator #44

PR check - Android Emulator

PR check - Android Emulator #44

Workflow file for this run

name: Run UI Tests
on:
push:
branches:
- develop
workflow_dispatch:
jobs:
run_tests:
name: Run UI tests
runs-on: [ self-hosted, X64 ]
steps:
- name: Clean workspace
run: |
echo "Cleaning workspace: $(pwd)"
rm -rf ./* .[^.]* .??*
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
token: ${{ secrets.GH_MOBILE_PAT }}
fetch-depth: 0
- name: Build Docker image
run: |
docker build --platform linux/x86_64 -t tangem_ci_android_environment_x86_64 -f tangem-android-tools/CI/dockerfiles/Dockerfile.android.x64 .
- name: Run UI tests
id: tests
env:
GITHUB_TOKEN: ${{ secrets.GH_MOBILE_PAT }}
GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
run: |
env > .env
docker run --rm \
--user ubuntu \
--env-file .env \
--device /dev/kvm \
--volume ~/.gradle:/home/ubuntu/.gradle \
--volume ${{ github.workspace }}:/workspace \
tangem_ci_android_environment_x86_64 \
bash -c '
export PATH=$PATH:/opt/android-sdk/platform-tools
cd /workspace
cp app/src/main/assets/tangem-app-config/android/google-services/dev/google-services.json app
cp tangem-android-tools/CI/gradle_properties/ui_tests_ci_gradle.properties gradle.properties
cat gradle.properties
export HOME=/home/ubuntu
export ANDROID_AVD_HOME=$HOME/.android/avd
mkdir -p $ANDROID_AVD_HOME
echo "no" | $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager create avd \
--force \
--name "android_35_x86_64" \
--package "system-images;android-35;aosp_atd;x86_64" \
--device "pixel_5"
$ANDROID_HOME/emulator/emulator -list-avds
echo "Starting emulator..."
$ANDROID_HOME/emulator/emulator -avd android_35_x86_64 -no-window -no-audio -no-boot-anim -gpu swiftshader_indirect &
EMU_PID=$!
for i in {1..10}; do
if adb shell getprop sys.boot_completed | grep -m 1 "1"; then
echo "Emulator booted!"
break
fi
echo "Waiting for emulator to boot..."
sleep 5
done
if ! adb shell getprop sys.boot_completed | grep -m 1 "1"; then
echo "Emulator failed to boot!"
exit 1
fi
adb devices
./gradlew :app:connectedMockedAndroidTest
kill $EMU_PID
'