diff --git a/.github/workflows/android_ci_upgrade.yml b/.github/workflows/android_ci_upgrade.yml new file mode 100644 index 00000000..8a4f1589 --- /dev/null +++ b/.github/workflows/android_ci_upgrade.yml @@ -0,0 +1,88 @@ +name: CI + +on: + push: + branches: + - main + - develop + - release/* + pull_request: + branches: + - main + - develop + - release/* + + workflow_dispatch: + +jobs: + build-macos-android-23: + name: Flutter Run test on android 23 + runs-on: macos-12 + env: + FLUTTER_VERSION: "3.0.3" + ANDROID_SDK_ROOT: "/Users/runner/android-sdk" + ANDROID_HOME: "~/.android" + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v3 + with: + persist-credentials: false + - name: Checkout submodules + run: git submodule update --init --recursive + - name: Set up Java + uses: actions/setup-java@v2 + with: + java-version: 17 + distribution: 'zulu' + - name: Set up Flutter version 🔧 + uses: ./.github/actions/flutter-action + with: + flutter-version: $FLUTTER_VERSION + - name: Fetch dependencies + run: | + flutter pub get + - name: Set up android enviroment + run: | + ./scripts/macos_setup_android_env.sh + - name: Configure sdkmanager + run: | + ./scripts/macos_configure-sdkmanager.sh 32 32.0.0 "android-23;default;x86" + - name: Run android integration tests + run: | + ./scripts/run-mocked-integration-tests-android.sh "android-23;default;x86" + + build-macos-android-27: + name: Flutter Run test on android 27 + runs-on: macos-12 + env: + FLUTTER_VERSION: "3.0.3" + ANDROID_SDK_ROOT: "/Users/runner/android-sdk" + ANDROID_HOME: "~/.android" + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v3 + with: + persist-credentials: false + - name: Checkout submodules + run: git submodule update --init --recursive + - name: Set up Java + uses: actions/setup-java@v2 + with: + java-version: 17 + distribution: 'zulu' + - name: Set up Flutter version 🔧 + uses: ./.github/actions/flutter-action + with: + flutter-version: $FLUTTER_VERSION + - name: Fetch dependencies + run: | + flutter pub get + - name: Set up android enviroment + run: | + ./scripts/macos_setup_android_env.sh + - name: Configure sdkmanager + run: | + ./scripts/macos_configure-sdkmanager.sh 32 32.0.0 "android-23;default;x86" + - name: Run android integration tests + run: | + ./scripts/run-mocked-integration-tests-android.sh "android-23;default;x86" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 98440bc7..1f96b6a9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,8 +54,8 @@ jobs: run: | flutter analyze - build-macos-android: - name: flutter build macos android + build-macos-android-21: + name: flutter build macos android 21 runs-on: macos-12 env: FLUTTER_VERSION: "3.0.3" @@ -71,7 +71,7 @@ jobs: - name: Set up Java uses: actions/setup-java@v2 with: - java-version: 15 + java-version: 17 distribution: 'zulu' - name: Set up Flutter version 🔧 uses: ./.github/actions/flutter-action @@ -85,10 +85,10 @@ jobs: ./scripts/macos_setup_android_env.sh - name: Configure sdkmanager run: | - ./scripts/macos_configure-sdkmanager.sh + ./scripts/macos_configure-sdkmanager.sh 32 32.0.0 "android-21;default;x86" - name: Run android integration tests run: | - ./scripts/run-mocked-integration-tests-android.sh + ./scripts/run-mocked-integration-tests-android.sh "android-21;default;x86" build-macos-ios: name: flutter build macos ios diff --git a/scripts/configure-sdkmanager.sh b/scripts/configure-sdkmanager.sh index 1aedb1c6..5ed57f13 100755 --- a/scripts/configure-sdkmanager.sh +++ b/scripts/configure-sdkmanager.sh @@ -2,7 +2,7 @@ build_tools_version="build-tools;32.0.0" platform_version="platforms;android-32" -system_image="system-images;androidsdk-29;default;x86" +system_image="system-images;android-29;default;x86" sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils sudo systemctl enable libvirt-bin diff --git a/scripts/macos_configure-sdkmanager.sh b/scripts/macos_configure-sdkmanager.sh index d20050aa..d6bac6b0 100755 --- a/scripts/macos_configure-sdkmanager.sh +++ b/scripts/macos_configure-sdkmanager.sh @@ -1,8 +1,29 @@ #! /usr/bin/env bash -build_tools_version="build-tools;32.0.0" -platform_version="platforms;android-32" -system_image="system-images;android-29;default;x86" +ANDROID_VERSION="32" +if [ "$2" ] + then ANDROID_TOOLS=$1 +fi + +ANDROID_TOOLS="$ANDROID_VERSION" +if [ "$2" ] + then ANDROID_TOOLS=$2 +fi + +ANDROID_IMAGE="android-29;default;x86" +if [ "$3" ] + then ANDROID_IMAGE=$3 +fi + +echo $ANDROID_VERSION + +build_tools_version="build-tools;$ANDROID_TOOLS" +platform_version="platforms;android-$ANDROID_VERSION" +system_image="system-images;$ANDROID_IMAGE" + +echo $platform_version +echo $build_tools_version +echo $system_image export ANDROID_SDK_ROOT=~/android-sdk diff --git a/scripts/macos_setup_android_env.sh b/scripts/macos_setup_android_env.sh index 461568f2..0d57b521 100755 --- a/scripts/macos_setup_android_env.sh +++ b/scripts/macos_setup_android_env.sh @@ -2,9 +2,12 @@ echo "Setup android" -wget https://dl.google.com/android/repository/commandlinetools-mac-9123335_latest.zip +#TOOLS_VERSION=9123335 +TOOLS_VERSION=10406996 -unzip commandlinetools-mac-9123335_latest.zip +wget "https://dl.google.com/android/repository/commandlinetools-mac-${TOOLS_VERSION}_latest.zip" + +unzip "commandlinetools-mac-${TOOLS_VERSION}_latest.zip" mkdir ~/android-sdk/ mkdir ~/android-sdk/cmdline-tools diff --git a/scripts/run-mocked-integration-tests-android.sh b/scripts/run-mocked-integration-tests-android.sh index 426a18d7..4226a0de 100755 --- a/scripts/run-mocked-integration-tests-android.sh +++ b/scripts/run-mocked-integration-tests-android.sh @@ -1,10 +1,16 @@ #! /usr/bin/env bash +ANDROID_IMAGE="android-29;default;x86" +if [ "$1" ] + then ANDROID_IMAGE=$1 +fi + device_name="testAVD" -system_image="system-images;android-29;default;x86" +system_image="system-images;$ANDROID_IMAGE" device_port="5554" serial_no="emulator-$device_port" gpu_mode="swiftshader_indirect" +#gpu_mode="guest" export ANDROID_HOME=~/.android/ @@ -21,8 +27,8 @@ avdmanager list avd echo "Create system image: $system_image" echo "no" | avdmanager --verbose create avd --force --name $device_name --abi "default/x86" --package "$system_image" -echo "disk.dataPartition.size=8G" >> ~/.android/avd/$device_name.avd/config.ini -echo "hw.ramSize = 3.072MB" >> ~/.android/avd/$device_name.avd/config.ini +echo "disk.dataPartition.size=5G" >> ~/.android/avd/$device_name.avd/config.ini +echo "hw.ramSize = 3072MB" >> ~/.android/avd/$device_name.avd/config.ini touch ~/.android/emu-update-last-check.ini ls -la ~/.android/ @@ -31,14 +37,18 @@ adb start-server sleep 5 -echo "accel check: " -emulator -accel-check +#echo "accel check: " +#emulator -accel-check echo "check emulator list:" emulator -list-avds +adb devices & + +sleep 5 + echo "start: $device_name" -$ANDROID_SDK_ROOT/emulator/emulator -avd $device_name -port $device_port -noaudio -no-window -no-snapshot -no-boot-anim & +$ANDROID_SDK_ROOT/emulator/emulator -avd $device_name -port $device_port -noaudio -no-window -no-snapshot -no-boot-anim -no-snapshot-load & echo "Device name: $device_name" @@ -65,7 +75,7 @@ currentFolder=`pwd` cd test_app -USE_SDK_MOCK=true flutter test integration_tests/mocked/master_test.dart -d $serial_no +USE_SDK_MOCK=true flutter test integration_tests/mocked/master_test.dart -d $serial_no -r expanded test_exit_code=$? cd $currentFolder