diff --git a/.gitea/workflows/docker-run-tests.yml b/.gitea/workflows/docker-run-tests.yml new file mode 100644 index 00000000..99cc866e --- /dev/null +++ b/.gitea/workflows/docker-run-tests.yml @@ -0,0 +1,57 @@ +name: Eatvio App Android Test on custom docker + +on: [ pull_request ] + +env: + flutter_version: "3.24.5" + java_version: "21.x" + flutter_channel: "stable" + my_local_cache_dir: "/opt/hostedtoolcache/" + ANDROID_SDK_ROOT: "/opt/hostedtoolcache/Android/Sdk" + PUB_CACHE: "/opt/hostedtoolcache/.pub-cache" + +jobs: + build: + runs-on: [ dev-office-flutter ] + + steps: + - uses: actions/checkout@v3 + + - name: Set up Android environment variables + id: "android-env-setup" + run: | + echo "ANDROID_SDK_ROOT=${{ env.my_local_cache_dir }}Android/Sdk" >> $GITHUB_ENV + echo "PATH=$PATH:${{ env.my_local_cache_dir }}Android/Sdk/cmdline-tools/latest/bin:${{ env.my_local_cache_dir }}Android/Sdk/platform-tools:${{ env.my_local_cache_dir }}Android/Sdk/build-tools/30.0.3:${{ env.my_local_cache_dir }}Android/Sdk/build-tools/34.0.0" >> $GITHUB_ENV + echo "ANDROID_HOME=${{ env.my_local_cache_dir }}Android/Sdk" >> $GITHUB_ENV + + - 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 + + # - name: Rename and move apk + # run: | + # TIMESTAMP=$(TZ=Europe/Moscow 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 }} diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index 0c90ced6..24078471 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -6,6 +6,8 @@ env: flutter_version: "3.24.5" java_version: "21.x" flutter_channel: "stable" + my_local_cache_dir: "/opt/hostedtoolcache/" + ANDROID_SDK_ROOT: "/opt/hostedtoolcache/Android/Sdk" jobs: build: @@ -14,38 +16,73 @@ jobs: steps: - uses: actions/checkout@v3 + - name: Cache Android SDK + id: cache-sdk + uses: "https://gitea.com/actions/cache@v4" + with: + path: ${{ env.my_local_cache_dir }} + key: ${{ runner.os }}-cache-sdk + - name: Set up JDK uses: actions/setup-java@v3 with: distribution: "zulu" java-version: ${{ env.java_version }} + cache: gradle - - name: Install Android SDK + - name: Install utils for Android SDK run: | apt-get update - apt-get install -y openjdk-11-jdk wget + apt-get install -y openjdk-11-jdk wget jq clang cmake ninja-build libgtk-3-dev + + - name: Install Android SDK + if: steps.cache-sdk.outputs.cache-hit != 'true' + run: | 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 + mkdir -p ${{ env.my_local_cache_dir }}Android/Sdk/cmdline-tools/latest + mv cmdline-tools/* ${{ env.my_local_cache_dir }}Android/Sdk/cmdline-tools/latest/ + export ANDROID_SDK_ROOT=${{ env.my_local_cache_dir }}Android/Sdk + export PATH=$PATH:${{ env.my_local_cache_dir }}Android/Sdk/cmdline-tools/latest/bin + yes | sdkmanager --licenses 2>/dev/null || true + sdkmanager --list | egrep "platform-tools|build-tools|ndk" + sdkmanager "platform-tools" + sdkmanager "platform-tools" "platforms;android-35" "platforms;android-34" "platforms;android-33" "platforms;android-31" + sdkmanager "build-tools;34.0.0" + sdkmanager "ndk;25.1.8937393" + sdkmanager --install "cmake;3.22.1" - name: Set up Android environment variables + id: "android-env-setup" 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 + echo "ANDROID_SDK_ROOT=${{ env.my_local_cache_dir }}Android/Sdk" >> $GITHUB_ENV + echo "PATH=$PATH:${{ env.my_local_cache_dir }}Android/Sdk/cmdline-tools/latest/bin:${{ env.my_local_cache_dir }}Android/Sdk/platform-tools:${{ env.my_local_cache_dir }}Android/Sdk/build-tools/30.0.3:${{ env.my_local_cache_dir }}Android/Sdk/build-tools/34.0.0" >> $GITHUB_ENV + echo "ANDROID_HOME=${{ env.my_local_cache_dir }}Android/Sdk" >> $GITHUB_ENV - id: flutter-action uses: actions/flutter-action@v2 with: channel: ${{ env.flutter_channel }} flutter-version: ${{ env.flutter_version }} + cache: true + cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:" # optional, change this to force refresh cache + cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:" # optional, change this to specify the cache path + pub-cache-key: "flutter-pub:os:-:channel:-:version:-:arch:-:hash:" # optional, change this to force refresh cache of dart pub get dependencies + pub-cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:" # optional, change this to specify the cache path + + # - name: Print flutter-action outputs + # shell: bash + # 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 }} + # echo "PATH is $PATH" + # echo "ANDROID_SDK_ROOT is $ANDROID_SDK_ROOT" + # echo "ANDROID_HOME is $ANDROID_HOME" - name: Fix dir permissions run: | @@ -67,7 +104,7 @@ jobs: - name: Rename and move apk run: | - TIMESTAMP=$(date +'%Y-%m-%d-%H-%M') + TIMESTAMP=$(TZ=Europe/Moscow 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"