Skip to content

feat: more targets #384

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 12 commits into
base: staging
Choose a base branch
from
54 changes: 35 additions & 19 deletions .github/workflows/build_and_test_sdk.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
name: The Countly Android SDK Unit Test

env:
EMULATOR_REPO: us-docker.pkg.dev/android-emulator-268719/images/28-playstore-x64:30.1.2
JAVA_V: 11
JAVA_DIST: corretto

Expand All @@ -19,17 +18,15 @@ on:
- master
- staging
jobs:
setup:
test:
runs-on: ubuntu-latest
name: Build and Test the SDK
strategy:
fail-fast: false
matrix:
api-level: [21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]

steps:
- name: Install Docker to the Runner
run: sudo apt-get install containerd.io

- name: Pull Emulator from the Repo
run: docker pull ${{ env.EMULATOR_REPO }}

- name: Checkout SDK code
uses: actions/checkout@v4

Expand All @@ -39,21 +36,36 @@ jobs:
java-version: ${{ env.JAVA_V }}
distribution: ${{ env.JAVA_DIST }}

- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

- name: Setup Android SDK
uses: android-actions/[email protected]
with:
api-level: ${{ matrix.api-level }}
target: 'google-apis'
arch: 'x86_64'
channel: 'stable'

- name: Start ADB Server
run: adb start-server

- name: Run Android Emulator Container
run: docker run -d -e "ADBKEY=$(cat ~/.android/adbkey)" --device /dev/kvm --publish 5555:5555/tcp ${{ env.EMULATOR_REPO }}

- name: Connect to the Emulator
run: adb connect localhost:5555
- name: Set up AVD (Android Virtual Device)
run: |
sudo apt-get update
sudo apt-get install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
sdkmanager --install "system-images;android-${{ matrix.api-level }};default;x86_64" "platform-tools" "emulator"
echo "no" | avdmanager create avd -n test -k "system-images;android-${{ matrix.api-level }};default;x86_64" --force
echo "Emulator path is: $ANDROID_HOME/emulator"
$ANDROID_HOME/emulator/emulator -avd test -no-window -no-audio -no-boot-anim -no-snapshot-load &

- name: Set AAPT2 for android 35
run: echo "android.aapt2FromMavenOverride=/usr/local/lib/android/sdk/build-tools/35.0.0/aapt2" | tee -a ${{ github.workspace }}/gradle.properties

- name: Wait for Emulator to start
run: |
adb wait-for-device

- name: Build the SDK
if: always()
run: ./gradlew sdk:build
Expand All @@ -62,11 +74,15 @@ jobs:
if: always()
run: ./gradlew sdk:connectedAndroidTest

- name: Stop Emulator
if: always()
run: adb emu kill

- name: Publish Test Results to PR
uses: EnricoMi/publish-unit-test-result-action@v2
if: always()
with:
check_name: "Unit Test Results :rocket:"
comment_title: "Unit Test Results :rocket:"
check_name: "Unit Test Results ${{ matrix.api-level }} :rocket:"
comment_title: "Unit Test Results ${{ matrix.api-level }} :rocket:"
files: |
sdk/build/outputs/androidTest-results/**/*.xml
sdk/build/outputs/androidTest-results/**/*.xml
Loading