From ad34497019cc418f76bdb808e80e2f2d3665246d Mon Sep 17 00:00:00 2001 From: mso7nueh Date: Mon, 18 Nov 2024 15:41:06 +0300 Subject: [PATCH] fix: try --- .gitea/workflows/test.yml | 88 +++++++++++++++++++++++++++------------ 1 file changed, 61 insertions(+), 27 deletions(-) diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index c7c530b8..93e76b48 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -6,55 +6,91 @@ env: flutter_version: "3.24.5" java_version: "21.x" flutter_channel: "stable" + ANDROID_SDK_ROOT: /root/Android/Sdk # Define this consistently + ANDROID_HOME: ${{ env.ANDROID_SDK_ROOT }} # Link ANDROID_HOME to ANDROID_SDK_ROOT + CACHE_KEY: ${{ runner.os }}-jdk-${{ env.java_version }}-flutter-${{ env.flutter_version }} jobs: build: - runs-on: [dev-office] + runs-on: [ dev-office ] steps: - uses: actions/checkout@v3 + - name: Cache JDK + uses: actions/cache@v3 + with: + path: ${{ env.JDK_HOME }} # You'll need to define JDK_HOME in a subsequent step + key: ${{ env.CACHE_KEY }}-jdk + restore-keys: | + ${{ env.CACHE_KEY }}-jdk- + - name: Set up JDK uses: actions/setup-java@v3 with: distribution: "zulu" java-version: ${{ env.java_version }} - id: setup-jdk + id: setup-jdk + # Set the JDK_HOME after the JDK installation. + # This is necessary for caching. + run: | + echo "JDK_HOME=$(echo "${{ steps.setup-jdk.outputs.java-home }}")" >> $GITHUB_ENV - - name: Install Android SDK + + - name: Cache Android SDK, NDK & CMake + uses: actions/cache@v3 + with: + path: ${{ env.ANDROID_SDK_ROOT }} + key: ${{ env.CACHE_KEY }}-android + restore-keys: | + ${{ env.CACHE_KEY }}-android- + + + - name: Install Android SDK, NDK and CMake (if needed) + if: steps.cache-android.outputs.cache-hit != 'true' 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 + apt-get install -y wget zip + wget https://dl.google.com/android/repository/commandlinetools-linux-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 + mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools/latest" + mv cmdline-tools/* "$ANDROID_SDK_ROOT/cmdline-tools/latest/" + yes | "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" --licenses 2>/dev/null || true + # Install NDK and CMake if you need them. Add the commands here (example) + # yes | "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" "ndk;cmake" 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 + echo "ANDROID_SDK_ROOT=${{ env.ANDROID_SDK_ROOT }}" >> $GITHUB_ENV + echo "PATH=$PATH:${{ env.ANDROID_SDK_ROOT }}/cmdline-tools/latest/bin:${{ env.ANDROID_SDK_ROOT }}/platform-tools:${{ env.ANDROID_SDK_ROOT }}/build-tools/30.0.3" >> $GITHUB_ENV + echo "ANDROID_HOME=${{ env.ANDROID_HOME }}" >> $GITHUB_ENV + - name: Install jq - run: | - apt-get install -y jq + run: apt-get install -y jq - - id: flutter-action + - name: Cache Flutter + uses: actions/cache@v3 + with: + path: ~/.flutter + key: ${{ env.CACHE_KEY }}-flutter + restore-keys: | + ${{ env.CACHE_KEY }}-flutter- + + + - name: Set up Flutter uses: actions/flutter-action@v2 with: channel: ${{ env.flutter_channel }} flutter-version: ${{ env.flutter_version }} - cache: true + cache: true # This is redundant because we use actions/cache above - - name: Fix dir permissions + + - name: Fix dir permissions (Often unnecessary with actions/flutter-action) 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 + flutter doctor -v - name: Get dependencies run: flutter pub get @@ -63,23 +99,21 @@ jobs: run: flutter analyze - name: Test - run: | - flutter test + run: flutter test - name: Build apk - run: | - flutter build apk + run: flutter build apk --split-per-abi - 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 + mv build/app/outputs/flutter-apk/app-release.apk "$APK_NAME" echo "APK build finished $APK_NAME" - echo "APK_NAME=$APK_NAME" >> $GITHUB_ENV + 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