Skip to content

Commit

Permalink
Dev: try public macos runner for Android CI
Browse files Browse the repository at this point in the history
  • Loading branch information
lxbndr committed Jul 31, 2024
1 parent 4363fa4 commit ad31080
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 62 deletions.
33 changes: 25 additions & 8 deletions .github/workflows/pull-request-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,31 @@ jobs:

Android:
name: "mailcore2 - Android"
runs-on: [self-hosted, macOS, ARM64, Android]
timeout-minutes: 60

runs-on: macos-13

steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run android tests
run: ./build-scripts/test-android.sh
- uses: actions/checkout@v4
- name: Select XCode 14.2
run: sudo xcode-select --switch /Applications/Xcode_14.2.app
- name: Install NDK
run: $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --install "ndk;25.2.9519653"
- name: Install Swift Android Toolchain
run: wget https://github.com/readdle/swift-android-toolchain/releases/latest/download/swift-android.zip;
unzip swift-android.zip;
swift-android/bin/swift-android tools --update;
- name: Install Android Emulator
run: $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --install "system-images;android-29;google_apis;x86_64"
- name: Create Android Emulator
run: $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager create avd -n ci-test -k "system-images;android-29;google_apis;x86_64" -d "pixel" --force
- name: Start Android Emulator
run: $ANDROID_HOME/emulator/emulator -no-window -avd ci-test -noaudio > /dev/null &
- name: Run connected android tests
run: export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/25.2.9519653;
export SWIFT_ANDROID_HOME=$(pwd)/swift-android;
export PATH=$ANDROID_NDK_HOME:$PATH;
export PATH=$SWIFT_ANDROID_HOME/bin:$SWIFT_ANDROID_HOME/build-tools/current:$PATH;
adb wait-for-device;
./build-scripts/test-android.sh
- name: Publish Report
uses: mikepenz/action-junit-report@v3
if: failure()
Expand All @@ -30,7 +47,7 @@ jobs:
check_name: mailcore2-android
detailed_summary: true
include_passed: true

macOS:
name: "mailcore2 - macOS"
runs-on: macos-latest
Expand Down
54 changes: 0 additions & 54 deletions build-scripts/test-android.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,67 +2,13 @@

set -ex

# Create variables
export SWIFT_ANDROID_HOME=$SWIFT_ANDROID_HOME_5_7
export SWIFT_ANDROID_API_LEVEL=26
export SWIFT_ANDROID_ICU_VERSION=73
export ANDROID_NDK=$ANDROID_NDK_ROOT_25C
export ANDROID_NDK_ROOT=$ANDROID_NDK
export ANDROID_NDK_HOME=$ANDROID_NDK

# Update PATH
export PATH=$ANDROID_NDK:$PATH
export PATH=$SWIFT_ANDROID_HOME/bin:$SWIFT_ANDROID_HOME/build-tools/current:$PATH

# Emulator
export BUILD_ANDROID=1
export EMULATOR_PORT=5558
export EMULATOR_SDK_VERSION=29
export EMULATOR_NAME=ci-test-$EMULATOR_SDK_VERSION-$EMULATOR_PORT
export ANDROID_SERIAL=emulator-$EMULATOR_PORT
if [[ $(uname -m) == 'arm64' ]]; then
export SWIFT_ANDROID_ARCH=aarch64
export EMULATOR_ARCH=arm64-v8a
else
export SWIFT_ANDROID_ARCH=x86_64
export EMULATOR_ARCH=x86_64
fi
export EMULATOR_PACKAGE="system-images;android-$EMULATOR_SDK_VERSION;google_apis;$EMULATOR_ARCH"
export EMULATOR_ABI=google_apis/$EMULATOR_ARCH

# Select Xcode 14.2
sudo xcode-select --switch /Applications/Xcode14.2.app;

function finish {
exit_code=$?
adb -s $ANDROID_SERIAL emu kill
exit $exit_code
}
trap finish EXIT

# Delete emulator if needed
if $ANDROID_HOME/emulator/emulator -list-avds | grep -q $EMULATOR_NAME
then
avdmanager delete avd --name $EMULATOR_NAME
fi

# Just in case
rm -rf ~/.android/avd/$EMULATOR_NAME.avd

avdmanager create avd -n $EMULATOR_NAME -k "$EMULATOR_PACKAGE" -d "pixel" --abi $EMULATOR_ABI

# Start adb server
adb start-server

# Start emulator
$ANDROID_HOME/emulator/emulator -no-window -avd $EMULATOR_NAME -noaudio -port $EMULATOR_PORT -timezone America/Los_Angeles -partition-size 4000 > /dev/null &

# Wait until enmulator actually started with timeout 60 sec
timeout 120 adb -s emulator-$EMULATOR_PORT wait-for-any-device;

# Clear logcat from previous sessions
timeout 30 bash -c "adb logcat -c || true"

# Create reports folder
mkdir -p .build/reports

Expand Down

0 comments on commit ad31080

Please sign in to comment.