diff --git a/.gitea/workflows/android.yaml b/.gitea/workflows/android.yaml index 6073214..61a2248 100644 --- a/.gitea/workflows/android.yaml +++ b/.gitea/workflows/android.yaml @@ -41,6 +41,12 @@ jobs: export JAVA_HOME="$JAVA_DIR" echo "JAVA_HOME set to $JAVA_HOME" + - name: Cache Android SDK + uses: actions/cache@v3 + with: + path: ~/android-sdk + key: android-sdk-34 + - name: Install Android SDK run: | export ANDROID_HOME="$HOME/android-sdk" @@ -65,6 +71,14 @@ jobs: echo "ANDROID_HOME=$ANDROID_HOME" >> $GITHUB_ENV echo "ANDROID_SDK_ROOT=$ANDROID_HOME" >> $GITHUB_ENV + - name: Cache Gradle wrapper + uses: actions/cache@v3 + with: + path: | + ~/.gradle/wrapper/dists + ~/.gradle/caches + key: gradle-wrapper-8.14.3 + - name: Restore debug keystore run: | mkdir -p ~/.android @@ -76,10 +90,28 @@ jobs: - name: Setup Gradle wrapper run: | chmod +x ./gradlew - ./gradlew --version + GRADLE_VERSION="8.14.3" + GRADLE_DIST_DIR="$HOME/.gradle/wrapper/dists/gradle-${GRADLE_VERSION}-bin" + + # Проверяем — если Gradle уже распакован в кэше, пропускаем скачивание + if find "$GRADLE_DIST_DIR" -name "gradle-${GRADLE_VERSION}" -type d 2>/dev/null | grep -q .; then + echo "Gradle ${GRADLE_VERSION} found in cache, skipping download" + else + echo "Gradle not found in cache, downloading..." + mkdir -p /opt/gradle-download + curl -fL --retry 3 --retry-delay 5 \ + "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" \ + -o "/opt/gradle-download/gradle-${GRADLE_VERSION}-bin.zip" + mkdir -p /opt/gradle + unzip -q "/opt/gradle-download/gradle-${GRADLE_VERSION}-bin.zip" -d /opt/gradle + export PATH="/opt/gradle/gradle-${GRADLE_VERSION}/bin:$PATH" + echo "PATH=/opt/gradle/gradle-${GRADLE_VERSION}/bin:$PATH" >> $GITHUB_ENV + fi + + ./gradlew --no-daemon --version - name: Build Release APK - run: ./gradlew assembleRelease + run: ./gradlew --no-daemon assembleRelease - name: Check if APK exists run: |