name: Eatvio App Android Test on: [ pull_request ] env: flutter_version: "3.27.3" java_version: "21.x" flutter_channel: "stable" jobs: build: runs-on: [ dev-office ] steps: - uses: actions/checkout@v3 - name: Set up JDK uses: actions/setup-java@v3 with: distribution: "zulu" java-version: ${{ env.java_version }} id: setup-jdk - name: Install Android SDK run: | apt-get update apt-get install -y openjdk-11-jdk wget wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip -O commandlinetools.zip unzip commandlinetools.zip mkdir -p $HOME/Android/Sdk/cmdline-tools/latest mv cmdline-tools/* $HOME/Android/Sdk/cmdline-tools/latest/ export ANDROID_SDK_ROOT=$HOME/Android/Sdk export PATH=$PATH:$HOME/Android/Sdk/cmdline-tools/latest/bin yes | sdkmanager --licenses 2>/dev/null || true - name: Set up Android environment variables run: | echo "ANDROID_SDK_ROOT=$HOME/Android/Sdk" >> $GITHUB_ENV echo "PATH=$PATH:$HOME/Android/Sdk/cmdline-tools/latest/bin:$HOME/Android/Sdk/platform-tools:$HOME/Android/Sdk/build-tools/30.0.3" >> $GITHUB_ENV echo "ANDROID_HOME=$HOME/Android/Sdk" >> $GITHUB_ENV - name: Install jq run: | apt-get install -y jq - id: flutter-action uses: actions/flutter-action@v2 with: channel: ${{ env.flutter_channel }} flutter-version: ${{ env.flutter_version }} cache: true - name: Fix dir permissions run: | git config --global --add safe.directory /opt/hostedtoolcache/flutter/${{ env.flutter_channel }}-${{ env.flutter_version }}-${{ steps.flutter-action.outputs.ARCHITECTURE }} flutter config --android-sdk="$ANDROID_HOME" flutter doctor -v - name: Get dependencies run: flutter pub get - name: Native Analyze run: flutter analyze - name: Test run: | flutter test - name: Build apk run: | flutter build apk --profile - name: Rename and move apk run: | TIMESTAMP=$(date +'%Y-%m-%d-%H-%M') APK_NAME="eatvio_app_${TIMESTAMP}.apk" mv build/app/outputs/flutter-apk/app-profile.apk $APK_NAME echo "APK build finished $APK_NAME" echo "APK_NAME=$APK_NAME" >> $GITHUB_ENV - name: Upload APK artifact uses: actions/upload-artifact@v3 with: name: ${{ env.APK_NAME }} path: ${{ env.APK_NAME }}