name: Eatvio App Android Test on: [ pull_request ] env: flutter_version: "3.22.0" java_version: "12.x" flutter_channel: "stable" jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up JDK uses: actions/setup-java@v3 with: distribution: "zulu" java-version: ${{ env.java_version }} cache: "gradle" - 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: Debug Environment Variables run: | echo "ANDROID_SDK_ROOT: $ANDROID_SDK_ROOT" echo "ANDROID_HOME: $ANDROID_HOME" echo "PATH: $PATH" - uses: actions/cache@v2 with: path: ${{ runner.tool_cache }}/flutter key: flutter-${{ env.flutter_version }}-${{ env.flutter_channel }} - 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: Show cache keys run: | echo CACHE-PATH=${{ steps.flutter-action.outputs.CACHE-PATH }} echo CACHE-KEY=${{ steps.flutter-action.outputs.CACHE-KEY }} echo CHANNEL=${{ steps.flutter-action.outputs.CHANNEL }} echo VERSION=${{ steps.flutter-action.outputs.VERSION }} echo ARCHITECTURE=${{ steps.flutter-action.outputs.ARCHITECTURE }} echo PUB-CACHE-PATH=${{ steps.flutter-action.outputs.PUB-CACHE-PATH }} echo PUB-CACHE-KEY=${{ steps.flutter-action.outputs.PUB-CACHE-KEY }} shell: bash - 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: Run Code Metrics # run: flutter pub run dart_code_metrics:metrics lib --disable-sunset-warning --fatal-warnings --fatal-performance - name: Test run: | flutter test - name: Build apk run: | flutter build apk - 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-release.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 }}