diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index 6d3335e9..d4f6f724 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -1,100 +1,106 @@ name: Eatvio App Android Test -on: [pull_request] +on: [ pull_request ] jobs: build: - runs-on: [dev-office] + runs-on: [ dev-office ] env: extensions: gd flutter_version: "3.24.5" java_version: "21.x" flutter_channel: "stable" + key: "cache-v1" + ANDROID_HOME: /root/Android/Sdk + SDK_CACHE_DIR: /root/Android/Sdk/ steps: - - name: Checkout code - uses: actions/checkout@v3 + - uses: actions/checkout@v3 - name: Update system run: apt-get update - - name: Install jq - run: apt-get install -y jq - - - name: Cache JDK - uses: actions/cache@v3 + - name: Setup cache environment + id: extcache + uses: https://github.com/shivammathur/cache-extensions@v1 with: - path: ~/.sdkman/candidates/java - key: jdk-${{ env.java_version }} + extensions: ${{ env.extensions }} + key: ${{ env.key }} + - name: Set up JDK uses: actions/setup-java@v3 with: - distribution: "zulu" + distribution: zulu java-version: ${{ env.java_version }} - name: Cache Android SDK uses: actions/cache@v3 with: - path: | - $HOME/Android/Sdk - key: android-sdk-${{ runner.os }}-${{ hashFiles('**/build.gradle') }} + path: ${{ env.SDK_CACHE_DIR }} + key: ${{ steps.extcache.outputs.key }}-android-sdk-${{ env.java_version }}-${{ runner.os }} + restore-keys: | + ${{ steps.extcache.outputs.key }}-android-sdk-* - - name: Install Android SDK + - name: Install Android SDK Command Line Tools run: | - mkdir -p $HOME/Android/Sdk/cmdline-tools/latest - wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip -O commandlinetools.zip - unzip commandlinetools.zip -d $HOME/Android/Sdk/cmdline-tools/latest/ - export ANDROID_SDK_ROOT=$HOME/Android/Sdk - yes | $HOME/Android/Sdk/cmdline-tools/latest/bin/sdkmanager --licenses || true + apt-get update + apt-get install -y wget openjdk-11-jdk + wget -qO - https://dl.google.com/android/repository/commandlinetools-linux-latest.zip | \ + unzip -d "$HOME/Android/Sdk/cmdline-tools" + export ANDROID_HOME="${ANDROID_HOME}" + export PATH="$PATH:${ANDROID_HOME}/cmdline-tools/latest/bin" + sdkmanager --licenses - 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" >> $GITHUB_ENV - echo "ANDROID_HOME=$HOME/Android/Sdk" >> $GITHUB_ENV + echo "$ANDROID_HOME" >> $GITHUB_ENV + echo "PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/30.0.3" >> $GITHUB_ENV # Corrected path - - name: Cache Flutter - uses: actions/cache@v3 - with: - path: ~/.flutter - key: flutter-${{ env.flutter_channel }}-${{ env.flutter_version }} + - name: Install jq + run: apt-get install -y jq - - id: flutter-action + - name: Set up Flutter uses: actions/flutter-action@v2 with: channel: ${{ env.flutter_channel }} flutter-version: ${{ env.flutter_version }} cache: true + architecture: ${{ runner.os }}-x64 - - name: Fix directory permissions and run Flutter doctor + + - name: Fix dir permissions (Avoids potential issues) run: | + #This is no longer needed if flutter-action@v2 uses appropriate caching + #Remove this step or add specific checks flutter config --android-sdk="$ANDROID_HOME" flutter doctor -v + - name: Get dependencies run: flutter pub get - - name: Analyze code + - name: Native Analyze run: flutter analyze - - name: Run tests + - name: Test run: flutter test - - name: Build APK - run: flutter build apk + - name: Build apk + run: flutter build apk --split-per-abi - - name: Rename and move 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" + 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 }} + path: ${{ env.APK_NAME }} \ No newline at end of file